{
  "service": "fairing",
  "displayName": "Fairing",
  "categories": [
    "Marketing",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "FAIRING_API_KEY",
      "description": "Fairing API key sent in the Authorization header. Create or copy a Fairing API key from the dashboard integration settings documented by Fairing: https://docs.fairing.co/docs/google-sheets",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://fairing.co",
  "actions": [
    {
      "id": "fairing.list_responses",
      "service": "fairing",
      "name": "list_responses",
      "description": "List paginated Fairing survey responses with optional time, cursor, and question filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "starting_after": {
            "type": "string",
            "minLength": 1,
            "description": "Response ID cursor used to fetch the page after this response in the active sort direction."
          },
          "ending_before": {
            "type": "string",
            "minLength": 1,
            "description": "Response ID cursor used to fetch the page before this response in the active sort direction."
          },
          "inserted_at_min": {
            "type": "string",
            "description": "Return responses inserted at or after this UTC timestamp.",
            "format": "date-time"
          },
          "inserted_at_max": {
            "type": "string",
            "description": "Return responses inserted at or before this UTC timestamp.",
            "format": "date-time"
          },
          "updated_at_min": {
            "type": "string",
            "description": "Return responses last updated at or after this UTC timestamp.",
            "format": "date-time"
          },
          "updated_at_max": {
            "type": "string",
            "description": "Return responses last updated at or before this UTC timestamp.",
            "format": "date-time"
          },
          "sort": {
            "type": "string",
            "enum": [
              "inserted_at_desc",
              "inserted_at_asc",
              "updated_at_desc",
              "updated_at_asc"
            ],
            "description": "The Fairing response ordering direction."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The number of responses to fetch per request. Fairing allows up to 1000."
          },
          "question_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Only return responses for this Fairing question ID."
          }
        },
        "additionalProperties": false,
        "description": "The query filters for listing Fairing responses. starting_after and ending_before are mutually exclusive."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "responses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The unique Fairing response ID."
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The customer email address associated with the response."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "question": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The question text associated with the response."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "question_id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Fairing question ID associated with the response."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "question_type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Fairing question type associated with the response."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "response": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The selected response text, or null for free-form responses."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "other_response": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The free-form response text when the answer is other."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "inserted_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The ISO 8601 timestamp when Fairing stored the response."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updated_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The ISO 8601 timestamp when Fairing last updated the response."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "response_provided_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The ISO 8601 timestamp when the customer provided the response."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A Fairing response object."
            },
            "description": "The Fairing responses returned for this page."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The full URL for the next page of Fairing responses."
              },
              {
                "type": "null"
              }
            ]
          },
          "prev": {
            "anyOf": [
              {
                "type": "string",
                "description": "The full URL for the previous page of Fairing responses."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "A paginated Fairing responses result."
      }
    }
  ]
}
