{
  "service": "humanitix",
  "displayName": "Humanitix",
  "categories": [
    "Productivity",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Public API Key",
      "placeholder": "HUMANITIX_API_KEY",
      "description": "Humanitix public API key sent with the x-api-key header. Generate it from your Humanitix account public API settings."
    }
  ],
  "homepageUrl": "https://humanitix.com",
  "actions": [
    {
      "id": "humanitix.get_event",
      "service": "humanitix",
      "name": "get_event",
      "description": "Retrieve full Humanitix metadata for a single event by event ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique Humanitix event identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "eventId"
        ],
        "description": "Input parameters for retrieving one Humanitix event."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "event": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The complete Humanitix event object."
          }
        },
        "additionalProperties": false,
        "required": [
          "event"
        ],
        "description": "Detailed Humanitix event returned by the API."
      }
    },
    {
      "id": "humanitix.list_events",
      "service": "humanitix",
      "name": "list_events",
      "description": "List Humanitix events accessible to the connected account, with optional pagination and update filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to fetch."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of events to fetch per page."
          },
          "since": {
            "type": "string",
            "description": "Return events updated since this ISO 8601 timestamp.",
            "format": "date-time"
          },
          "inFutureOnly": {
            "type": "boolean",
            "description": "Whether to return only events with an end date in the future."
          },
          "overrideLocation": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "ISO 3166-1 alpha-2 country code used to override user location."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Humanitix events."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Humanitix event identifier."
                },
                "name": {
                  "type": "string",
                  "description": "The event name."
                },
                "slug": {
                  "type": "string",
                  "description": "The event slug."
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The public event URL when one is returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "startDate": {
                  "type": "string",
                  "description": "The event start date returned by Humanitix."
                },
                "endDate": {
                  "type": "string",
                  "description": "The event end date returned by Humanitix."
                },
                "timezone": {
                  "type": "string",
                  "description": "The event timezone."
                },
                "currency": {
                  "type": "string",
                  "description": "The event currency code."
                },
                "public": {
                  "type": "boolean",
                  "description": "Whether the event is public."
                },
                "published": {
                  "type": "boolean",
                  "description": "Whether the event is published."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The event creation timestamp returned by Humanitix."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The event update timestamp returned by Humanitix."
                }
              },
              "additionalProperties": true,
              "description": "A Humanitix event object returned by the list events endpoint."
            },
            "description": "Humanitix event records."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "description": "The current result page number."
              },
              "pageSize": {
                "type": "integer",
                "description": "The number of records requested for each page."
              },
              "total": {
                "type": "integer",
                "description": "The total number of records matching the request."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Humanitix list endpoints."
          }
        },
        "additionalProperties": false,
        "required": [
          "events",
          "pagination"
        ],
        "description": "Humanitix events returned for the requested page."
      }
    },
    {
      "id": "humanitix.list_tags",
      "service": "humanitix",
      "name": "list_tags",
      "description": "List tags associated with the connected Humanitix account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to fetch."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Humanitix tags."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique Humanitix tag identifier."
                },
                "name": {
                  "type": "string",
                  "description": "The tag name."
                }
              },
              "additionalProperties": false,
              "description": "A Humanitix tag."
            },
            "description": "Humanitix tag records."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "description": "The current result page number."
              },
              "pageSize": {
                "type": "integer",
                "description": "The number of records requested for each page."
              },
              "total": {
                "type": "integer",
                "description": "The total number of records matching the request."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Humanitix list endpoints."
          }
        },
        "additionalProperties": false,
        "required": [
          "tags",
          "pagination"
        ],
        "description": "Humanitix tags returned for the requested page."
      }
    }
  ]
}
