Ctrl K
ComunidadGuías…

api/openapi.snapshot.json

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "components": {
    "schemas": {
      "Application": {
        "description": "A Hook0 application.",
        "properties": {
          "application_id": {
            "description": "Unique identifier of the application.",
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "description": "Name of the application. Length: 2-50 characters.",
            "type": "string"
          },
          "organization_id": {
            "description": "UUID of the organization this application belongs to.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "application_id",
          "name",
          "organization_id"
        ],
        "type": "object"
      },
      "ApplicationInfo": {
        "description": "Detailed information about a Hook0 application.",
        "properties": {
          "application_id": {
            "description": "Unique identifier of the application.",
            "format": "uuid",
            "type": "string"
          },
          "consumption": {
            "description": "Current consumption metrics for this application.",
            "properties": {
              "events_per_day": {
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "name": {
            "description": "Name of the application. Length: 2-50 characters.",
            "type": "string"
          },
          "onboarding_steps": {
            "description": "Onboarding completion status for this application.",
            "properties": {
              "event": {
                "enum": [
                  "ToDo",
                  "Done"
                ],
                "type": "string"
              },
              "event_type": {
                "enum": [
                  "ToDo",
                  "Done"
                ],
                "type": "string"
              },
              "subscription": {
                "enum": [
                  "ToDo",
                  "Done"
                ],
                "type": "string"
              }
            },
            "required": [
              "event",
              "event_type",
              "subscription"
            ],
            "type": "object"
          },
          "organization_id": {
            "description": "UUID of the organization this application belongs to.",
            "format": "uuid",
            "type": "string"
          },
          "quotas": {
            "description": "Quota limits for this application.",
            "properties": {
              "days_of_events_retention_limit": {
                "format": "int32",
                "type": "integer"
              },
              "events_per_day_limit": {
                "format": "int32",
                "type": "integer"
              }
            },
            "required": [
              "days_of_events_retention_limit",
              "events_per_day_limit"
            ],
            "type": "object"
          }
        },
        "required": [
          "application_id",
          "consumption",
          "name",
          "onboarding_steps",
          "organization_id",
          "quotas"
        ],
        "type": "object"
      },
      "ApplicationPost": {
        "description": "Request body to create a new application.",
        "properties": {
          "name": {
            "description": "Name of the application. Length: 2-50 characters.",
            "type": "string"
          },
          "organization_id": {
            "description": "UUID of the organization this application belongs to.",
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "name",
          "organization_id"
        ],
        "type": "object"
      },
      "ApplicationSecret": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "token": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "created_at",
          "token"
        ],
        "type": "object"
      },
      "ApplicationSecretPost": {
        "properties": {
          "application_id": {
            "format": "uuid",
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "application_id"
        ],
        "type": "object"
      },
      "Event": {
        "properties": {
          "event_id": {
            "format": "uuid",
            "type": "string"
          },
          "event_type_name": {
            "type": "string"
          },
          "ip": {
            "type": "string"
          },
          "labels": {
            "type": "object"
          },
          "metadata": {
            "type": "object"
          },
          "occurred_at": {
            "format": "date-time",
            "type": "string"
          },
          "payload_content_type": {
            "type": "string"
          },
          "received_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "event_type_name",
          "ip",
          "labels",
          "occurred_at",
          "payload_content_type",
          "received_at"
        ],
        "type": "object"
      },
      "EventPost": {
        "description": "Event to be ingested into Hook0.",
        "properties": {
          "application_id": {
            "description": "UUID of the application this event belongs to.",
            "format": "uuid",
            "type": "string"
          },
          "event_id": {
            "description": "Optional unique identifier for this event (client-generated UUID). If not provided, a UUIDv7 will be generated by the server.",
            "format": "uuid",
            "type": "string"
          },
          "event_type": {
            "description": "The type of event (e.g., 'user.created', 'order.completed'). Length: 1-200 characters.",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Labels for event filtering and routing to subscriptions.",
            "type": "object"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Optional metadata key-value pairs associated with the event.",
            "type": "object"
          },
          "occurred_at": {
            "description": "Timestamp when the event occurred.",
            "format": "date-time",
            "type": "string"
          },
          "payload": {
            "description": "The event payload. For binary content, use base64 encoding. Max length: 699050 characters (512 KiB base64-encoded).",
            "type": "string"
          },
          "payload_content_type": {
            "description": "Content type of the payload. Valid values: text/plain, application/json, application/octet-stream+base64. Length: 1-100 characters.",
            "type": "string"
          }
        },
        "required": [
          "application_id",
          "event_type",
          "labels",
          "occurred_at",
          "payload",
          "payload_content_type"
        ],
        "type": "object"
      },
      "EventType": {
        "properties": {
          "event_type_name": {
            "type": "string"
          },
          "resource_type_name": {
            "type": "string"
          },
          "service_name": {
            "type": "string"
          },
          "verb_name": {
            "type": "string"
          }
        },
        "required": [
          "event_type_name",
          "resource_type_name",
          "service_name",
          "verb_name"
        ],
        "type": "object"
      },
      "EventTypePost": {
        "properties": {
          "application_id": {
            "format": "uuid",
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          },
          "service": {
            "type": "string"
          },
          "verb": {
            "type": "string"
          }
        },
        "required": [
          "application_id",
          "resource_type",
          "service",
          "verb"
        ],
        "type": "object"
      },
      "EventWithPayload": {
        "properties": {
          "event_id": {
            "format": "uuid",
            "type": "string"
          },
          "event_type_name": {
            "type": "string"
          },
          "ip": {
            "type": "string"
          },
          "labels": {
            "type": "object"
          },
          "metadata": {
            "type": "object"
          },
          "occurred_at": {
            "format": "date-time",
            "type": "string"
          },
          "payload": {
            "type": "string"
          },
          "payload_content_type": {
            "type": "string"
          },
          "received_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "event_type_name",
          "ip",
          "labels",
          "occurred_at",
          "payload",
          "payload_content_type",
          "received_at"
        ],
        "type": "object"
      },
      "EventsPerDayEntry": {
        "properties": {
          "amount": {
            "format": "int32",
            "type": "integer"
          },
          "application_id": {
            "format": "uuid",
            "type": "string"
          },
          "application_name": {
            "type": "string"
          },
          "date": {
            "format": "date",
            "type": "string"
          },
          "is_provisional": {
            "type": "boolean"
          }
        },
        "required": [
          "amount",
          "application_id",
          "application_name",
          "date",
          "is_provisional"
        ],
        "type": "object"
      },
      "IngestedEvent": {
        "properties": {
          "application_id": {
            "format": "uuid",
            "type": "string"
          },
          "event_id": {
            "format": "uuid",
            "type": "string"
          },
          "received_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "application_id",
          "event_id",
          "received_at"
        ],
        "type": "object"
      },
      "InstanceConfig": {
        "properties": {
          "application_secret_compatibility": {
            "type": "boolean"
          },
          "auto_db_migration": {
            "type": "boolean"
          },
          "biscuit_public_key": {
            "type": "string"
          },
          "cloudflare_turnstile_site_key": {
            "type": "string"
          },
          "formbricks": {
            "properties": {
              "api_host": {
                "type": "string"
              },
              "environment_id": {
                "type": "string"
              }
            },
            "required": [
              "api_host",
              "environment_id"
            ],
            "type": "object"
          },
          "matomo": {
            "properties": {
              "site_id": {
                "format": "int32",
                "type": "integer"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "site_id",
              "url"
            ],
            "type": "object"
          },
          "password_minimum_length": {
            "format": "int32",
            "type": "integer"
          },
          "quota_enforcement": {
            "type": "boolean"
          },
          "registration_disabled": {
            "type": "boolean"
          },
          "support_email_address": {
            "type": "string"
          }
        },
        "required": [
          "application_secret_compatibility",
          "auto_db_migration",
          "biscuit_public_key",
          "password_minimum_length",
          "quota_enforcement",
          "registration_disabled",
          "support_email_address"
        ],
        "type": "object"
      },
      "Organization": {
        "properties": {
          "name": {
            "type": "string"
          },
          "organization_id": {
            "format": "uuid",
            "type": "string"
          },
          "plan": {
            "properties": {
              "label": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "label",
              "name"
            ],
            "type": "object"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "organization_id",
          "role"
        ],
        "type": "object"
      },
      "OrganizationInfo": {
        "properties": {
          "consumption": {
            "properties": {
              "applications": {
                "format": "int64",
                "type": "integer"
              },
              "events_per_day": {
                "format": "int64",
                "type": "integer"
              },
              "members": {
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "onboarding_steps": {
            "properties": {
              "application": {
                "enum": [
                  "ToDo",
                  "Done"
                ],
                "type": "string"
              },
              "event": {
                "enum": [
                  "ToDo",
                  "Done"
                ],
                "type": "string"
              },
              "event_type": {
                "enum": [
                  "ToDo",
                  "Done"
                ],
                "type": "string"
              },
              "subscription": {
                "enum": [
                  "ToDo",
                  "Done"
                ],
                "type": "string"
              }
            },
            "required": [
              "application",
              "event",
              "event_type",
              "subscription"
            ],
            "type": "object"
          },
          "organization_id": {
            "format": "uuid",
            "type": "string"
          },
          "plan": {
            "properties": {
              "label": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "label",
              "name"
            ],
            "type": "object"
          },
          "quotas": {
            "properties": {
              "applications_per_organization_limit": {
                "format": "int32",
                "type": "integer"
              },
              "days_of_events_retention_limit": {
                "format": "int32",
                "type": "integer"
              },
              "events_per_day_limit": {
                "format": "int32",
                "type": "integer"
              },
              "members_per_organization_limit": {
                "format": "int32",
                "type": "integer"
              }
            },
            "required": [
              "applications_per_organization_limit",
              "days_of_events_retention_limit",
              "events_per_day_limit",
              "members_per_organization_limit"
            ],
            "type": "object"
          },
          "users": {
            "items": {
              "properties": {
                "email": {
                  "type": "string"
                },
                "first_name": {
                  "type": "string"
                },
                "last_name": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "user_id": {
                  "format": "uuid",
                  "type": "string"
                }
              },
              "required": [
                "email",
                "first_name",
                "last_name",
                "role",
                "user_id"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "consumption",
          "name",
          "onboarding_steps",
          "organization_id",
          "quotas",
          "users"
        ],
        "type": "object"
      },
      "Problem": {
        "description": "The body every Hook0 error answers with, in RFC 7807 problem format.\n\n Its members are exactly the ones the API writes on the wire, so a client generated from the\n published schema can read an error response whole rather than the part of it somebody\n remembered to declare.",
        "properties": {
          "detail": {
            "type": "string"
          },
          "id": {
            "description": "Identifier of the problem that occurred, stable across releases",
            "enum": [
              "OrganizationNameMissing",
              "UserAlreadyExist",
              "RegistrationDisabled",
              "PasswordTooShort",
              "PasswordTooLong",
              "PasswordSimilarToEmail",
              "PasswordSimilarToName",
              "PasswordTooCommon",
              "PasswordNotDiverseEnough",
              "OrganizationIsNotEmpty",
              "InvitedUserDoesNotExist",
              "InvitedUserAlreadyInOrganization",
              "ApplicationNameMissing",
              "InvalidRole",
              "EventTypeAlreadyExist",
              "EventTypeDoesNotExist",
              "UnauthorizedWorkers",
              "EventAlreadyIngested",
              "EventInvalidPayloadContentType",
              "EventInvalidBase64Payload",
              "EventInvalidJsonPayload",
              "LabelsAmbiguity",
              "InvalidDateRange",
              "AuthNoAuthorizationHeader",
              "AuthInvalidAuthorizationHeader",
              "AuthApplicationSecretLookupError",
              "AuthInvalidApplicationSecret",
              "AuthBiscuitLookupError",
              "AuthInvalidBiscuit",
              "AuthFailedLogin",
              "AuthEmailNotVerified",
              "AuthEmailAlreadyVerified",
              "AuthFailedRefresh",
              "AuthEmailExpired",
              "TooManyOrganizationsPerUser",
              "TooManyMembersPerOrganization",
              "TooManyApplicationsPerOrganization",
              "TooManyEventsToday",
              "TooManySubscriptionsPerApplication",
              "TooManyEventTypesPerApplication",
              "JsonPayload",
              "Validation",
              "NotFound",
              "InternalServerError",
              "Forbidden",
              "RateLimited",
              "ServiceUnavailable"
            ],
            "type": "string"
          },
          "status": {
            "format": "int32",
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "description": "Documentation page of this problem, which is also what distinguishes one problem type from\n another as RFC 7807 asks. Prefer matching on `id`: it says the same thing without parsing\n a URL.",
            "type": "string"
          },
          "validation": {
            "description": "Which submitted values were rejected and why, keyed by the name of the field they were\n submitted under. Carried by validation failures (`Validation`, status 422) and `null` for\n every other problem, as nothing else has a field to point at.\n\n The value of a key is either the list of failures on that field — each one a `code`, an\n optional `message` and the `params` the check was run with — or the same structure again\n for a nested object, or a map from index to that structure for a list. Nesting follows the\n shape of the submitted body and is therefore left free-form rather than modelled.",
            "type": "object"
          }
        },
        "required": [
          "detail",
          "id",
          "status",
          "title",
          "type"
        ],
        "type": "object"
      },
      "QuotasResponse": {
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "limits": {
            "properties": {
              "global_applications_per_organization_limit": {
                "format": "int32",
                "type": "integer"
              },
              "global_days_of_events_retention_limit": {
                "format": "int32",
                "type": "integer"
              },
              "global_event_types_per_application_limit": {
                "format": "int32",
                "type": "integer"
              },
              "global_events_per_day_limit": {
                "format": "int32",
                "type": "integer"
              },
              "global_free_organizations_per_user_limit": {
                "format": "int32",
                "type": "integer"
              },
              "global_members_per_organization_limit": {
                "format": "int32",
                "type": "integer"
              },
              "global_subscriptions_per_application_limit": {
                "format": "int32",
                "type": "integer"
              }
            },
            "required": [
              "global_applications_per_organization_limit",
              "global_days_of_events_retention_limit",
              "global_event_types_per_application_limit",
              "global_events_per_day_limit",
              "global_free_organizations_per_user_limit",
              "global_members_per_organization_limit",
              "global_subscriptions_per_application_limit"
            ],
            "type": "object"
          }
        },
        "required": [
          "enabled",
          "limits"
        ],
        "type": "object"
      },
      "ReplayEvent": {
        "properties": {
          "application_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "application_id"
        ],
        "type": "object"
      },
      "RequestAttempt": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "delay_until": {
            "format": "date-time",
            "type": "string"
          },
          "event": {
            "properties": {
              "event_id": {
                "format": "uuid",
                "type": "string"
              },
              "event_type_name": {
                "type": "string"
              }
            },
            "required": [
              "event_id",
              "event_type_name"
            ],
            "type": "object"
          },
          "event_id": {
            "format": "uuid",
            "type": "string"
          },
          "failed_at": {
            "format": "date-time",
            "type": "string"
          },
          "http_response_status": {
            "format": "int32",
            "type": "integer"
          },
          "picked_at": {
            "format": "date-time",
            "type": "string"
          },
          "request_attempt_id": {
            "format": "uuid",
            "type": "string"
          },
          "response_id": {
            "format": "uuid",
            "type": "string"
          },
          "retry_count": {
            "format": "int32",
            "type": "integer"
          },
          "status": {
            "description": "Status of a request attempt. The 'type' field indicates the status variant. - waiting: {type, since, until} - Scheduled for future delivery - pending: {type, since} - Ready to be processed - paused: {type, since} - Held back because the subscription's endpoint has recently been failing; released gradually - in_progress: {type, since} - Currently being delivered - successful: {type, at, full_processing_ms} - Delivered successfully - failed: {type, at, full_processing_ms} - Delivery failed",
            "properties": {
              "at": {
                "description": "Timestamp when completed (present in successful, failed)",
                "format": "date-time",
                "type": "string"
              },
              "full_processing_ms": {
                "description": "Total processing time in milliseconds (present in successful, failed)",
                "format": "int64",
                "type": "integer"
              },
              "since": {
                "description": "Timestamp when the status started (present in waiting, pending, paused, in_progress)",
                "format": "date-time",
                "type": "string"
              },
              "type": {
                "description": "Status type discriminator. One of: waiting, pending, paused, in_progress, successful, failed",
                "enum": [
                  "waiting",
                  "pending",
                  "paused",
                  "in_progress",
                  "successful",
                  "failed"
                ],
                "type": "string"
              },
              "until": {
                "description": "Timestamp until which waiting (only present in waiting status)",
                "format": "date-time",
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          },
          "subscription": {
            "properties": {
              "description": {
                "type": "string"
              },
              "subscription_id": {
                "format": "uuid",
                "type": "string"
              }
            },
            "required": [
              "subscription_id"
            ],
            "type": "object"
          },
          "succeeded_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "created_at",
          "event",
          "event_id",
          "request_attempt_id",
          "retry_count",
          "status",
          "subscription"
        ],
        "type": "object"
      },
      "Response": {
        "properties": {
          "body": {
            "type": "string"
          },
          "elapsed_time_ms": {
            "format": "int32",
            "type": "integer"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "http_code": {
            "format": "int32",
            "type": "integer"
          },
          "response_error_name": {
            "type": "string"
          },
          "response_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "response_id"
        ],
        "type": "object"
      },
      "ServiceToken": {
        "properties": {
          "biscuit": {
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "token_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "biscuit",
          "created_at",
          "name",
          "token_id"
        ],
        "type": "object"
      },
      "ServiceTokenPost": {
        "properties": {
          "name": {
            "type": "string"
          },
          "organization_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "name",
          "organization_id"
        ],
        "type": "object"
      },
      "Subscription": {
        "properties": {
          "application_id": {
            "format": "uuid",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "dedicated_workers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "event_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "label_key": {
            "description": "_Kept for backward compatibility, you should use `labels`_",
            "type": "string"
          },
          "label_value": {
            "description": "_Kept for backward compatibility, you should use `labels`_",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "secret": {
            "description": "HMAC signing secret shared with the receiver. Present only for\n configuration-capable callers (Editor, service or master token); omitted\n entirely for a read-only Viewer. Absent field, never `null`.",
            "format": "uuid",
            "type": "string"
          },
          "subscription_id": {
            "format": "uuid",
            "type": "string"
          },
          "target": {
            "properties": {
              "headers": {
                "type": "object"
              },
              "method": {
                "type": "string"
              },
              "type": {
                "example": "http",
                "type": "string"
              },
              "url": {
                "format": "url",
                "type": "string"
              }
            },
            "required": [
              "headers",
              "method",
              "type",
              "url"
            ],
            "type": "object"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "application_id",
          "created_at",
          "dedicated_workers",
          "event_types",
          "is_enabled",
          "label_key",
          "label_value",
          "labels",
          "metadata",
          "subscription_id",
          "target",
          "updated_at"
        ],
        "type": "object"
      },
      "SubscriptionPost": {
        "properties": {
          "application_id": {
            "format": "uuid",
            "type": "string"
          },
          "dedicated_workers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "event_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "label_key": {
            "description": "_Kept for backward compatibility, you should use `labels`_",
            "type": "string"
          },
          "label_value": {
            "description": "_Kept for backward compatibility, you should use `labels`_",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "target": {
            "properties": {
              "headers": {
                "type": "object"
              },
              "method": {
                "type": "string"
              },
              "type": {
                "example": "http",
                "type": "string"
              },
              "url": {
                "format": "url",
                "type": "string"
              }
            },
            "required": [
              "headers",
              "method",
              "type",
              "url"
            ],
            "type": "object"
          }
        },
        "required": [
          "application_id",
          "event_types",
          "is_enabled",
          "target"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "biscuit": {
        "description": "Authentication using a Biscuit token (use the format `Bearer TOKEN`)",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "description": "Core REST API of Hook0 — Open-Source Webhooks as a service for SaaS",
    "title": "Hook0 API",
    "version": "3.0.0"
  },
  "openapi": "3.0.0",
  "paths": {
    "/api/v1/application_secrets/": {
      "get": {
        "description": "Retrieves all active API tokens for a given application.",
        "operationId": "applicationSecrets.read",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApplicationSecret"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List application secrets",
        "tags": [
          "Applications Management",
          "sdk"
        ]
      },
      "post": {
        "description": "Generates a new API token for an application.",
        "operationId": "applicationSecrets.create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationSecretPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationSecret"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Create a new application secret",
        "tags": [
          "Applications Management",
          "sdk"
        ]
      }
    },
    "/api/v1/application_secrets/{application_secret_token}": {
      "delete": {
        "description": "Marks an API token as revoked, preventing any further use. This operation is irreversible.",
        "operationId": "applicationSecrets.delete",
        "parameters": [
          {
            "in": "path",
            "name": "application_secret_token",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Delete an application secret",
        "tags": [
          "Applications Management",
          "sdk"
        ]
      },
      "put": {
        "description": "Updates the name of an existing API token.",
        "operationId": "applicationSecrets.update",
        "parameters": [
          {
            "in": "path",
            "name": "application_secret_token",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationSecretPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationSecret"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Update an application secret",
        "tags": [
          "Applications Management",
          "sdk"
        ]
      }
    },
    "/api/v1/applications/": {
      "get": {
        "description": "Retrieves all applications within an organization. Each application contains event types, subscriptions, and events. Use organization_id query parameter to filter by organization.",
        "operationId": "applications.list",
        "parameters": [
          {
            "in": "query",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Application"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List applications",
        "tags": [
          "Applications Management",
          "mcp",
          "sdk"
        ]
      },
      "post": {
        "description": "Creates a new Hook0 application within an organization. An application is the container for event types, subscriptions, and events. Use this when setting up a new service that will emit or receive webhook events. Creation also provisions an application secret named 'Default', so there is no need to create a first API key afterwards: read it with applicationSecrets.read. That secret is scoped to this application alone, but within it grants full control (sending events, and managing event types, subscriptions and secrets), so it must be handled as a credential.",
        "operationId": "applications.create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Create a new application",
        "tags": [
          "Applications Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/applications/{application_id}": {
      "delete": {
        "description": "Permanently deletes an application. No more events will be emitted, and all active webhook subscriptions will be removed. All pending request attempts will be automatically marked as failed. This action is irreversible.",
        "operationId": "applications.delete",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Delete an application",
        "tags": [
          "Applications Management",
          "mcp",
          "sdk"
        ]
      },
      "get": {
        "description": "Retrieves details about a specific application, including quotas, consumption statistics, and onboarding progress. Use this to check application health and usage limits.",
        "operationId": "applications.get",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationInfo"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get an application by its ID",
        "tags": [
          "Applications Management",
          "mcp",
          "sdk"
        ]
      },
      "put": {
        "description": "Updates the name of an existing application. Use this to rename applications for better organization.",
        "operationId": "applications.update",
        "parameters": [
          {
            "in": "path",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Edit an application",
        "tags": [
          "Applications Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/errors/": {
      "get": {
        "description": "List of every possible errors that Hook0 can return. Each error is in RFC7807 problem format.",
        "operationId": "errors.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Problem"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "List errors",
        "tags": [
          "Hook0",
          "sdk"
        ]
      }
    },
    "/api/v1/event/": {
      "post": {
        "description": "Sends an event to Hook0 for processing. The event will be matched against active subscriptions based on event type and labels, triggering webhook deliveries to matching endpoints. Requires event_type, payload, payload_content_type, labels, and occurred_at.",
        "operationId": "events.ingest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestedEvent"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Ingest an event",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/event_types/": {
      "get": {
        "description": "Retrieves all active event types for an application. Event types follow the pattern 'service.resource.verb'. Use application_id query parameter to filter by application.",
        "operationId": "eventTypes.list",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EventType"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List event types",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      },
      "post": {
        "description": "Registers a new event type for an application. Event types follow the pattern 'service.resource.verb' (e.g., 'order.payment.completed'). Subscriptions can filter which event types trigger webhooks.",
        "operationId": "eventTypes.create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventTypePost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventType"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Create a new event type",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/event_types/{event_type_name}": {
      "delete": {
        "description": "Deactivates an event type, preventing it from being used for new events. Existing events using this type remain unaffected. Use this to clean up unused event types.",
        "operationId": "eventTypes.delete",
        "parameters": [
          {
            "in": "path",
            "name": "event_type_name",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Delete an event type",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      },
      "get": {
        "description": "Retrieves details of a specific event type by its name (e.g., 'order.payment.completed'). Returns the service, resource type, and verb components.",
        "operationId": "eventTypes.get",
        "parameters": [
          {
            "in": "path",
            "name": "event_type_name",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventType"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get an event type by its name",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/events/": {
      "get": {
        "description": "Retrieves the 100 most recently ingested events for an application. Each event includes its type, payload content type, metadata, labels, and timestamps. Use application_id query parameter to filter by application.",
        "operationId": "events.list",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Event"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List latest events",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/events/{event_id}": {
      "get": {
        "description": "Retrieves full details of a specific event including its payload (base64-encoded), event type, content type, metadata, labels, and timestamps. The event must belong to the specified application.",
        "operationId": "events.get",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventWithPayload"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get an event by its ID",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/events/{event_id}/replay": {
      "post": {
        "description": "Re-triggers webhook deliveries for an existing event. All active subscriptions matching the event type and labels will receive the event again. Useful for retrying failed deliveries or testing webhooks.",
        "operationId": "events.replay",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplayEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Replay an event",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/events_per_day/application": {
      "get": {
        "description": "Retrieves the number of events ingested per day for a specific application.",
        "operationId": "events_per_day.list_for_application",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "Start of date range (inclusive). Defaults to 30 days before `to`.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "End of date range (inclusive). Defaults to today.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EventsPerDayEntry"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List events per day for an application",
        "tags": [
          "Events Management",
          "sdk"
        ]
      }
    },
    "/api/v1/events_per_day/organization": {
      "get": {
        "description": "Retrieves the number of events ingested per day across all applications in an organization.",
        "operationId": "events_per_day.list_for_organization",
        "parameters": [
          {
            "description": "Start of date range (inclusive). Defaults to 30 days before `to`.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date",
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "End of date range (inclusive). Defaults to today.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EventsPerDayEntry"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List events per day for an organization",
        "tags": [
          "Events Management",
          "sdk"
        ]
      }
    },
    "/api/v1/instance/": {
      "get": {
        "description": "Get an object that shows how this instance is configured.",
        "operationId": "instance.get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstanceConfig"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Get instance configuration",
        "tags": [
          "Hook0",
          "sdk"
        ]
      }
    },
    "/api/v1/organizations/": {
      "get": {
        "description": "Retrieves all organizations the current API token has access to, with the associated roles and plan information. Use this to discover which organizations you can manage.",
        "operationId": "organizations.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Organization"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List organizations",
        "tags": [
          "Organizations Management",
          "mcp"
        ]
      }
    },
    "/api/v1/organizations/{organization_id}/": {
      "get": {
        "description": "Retrieves details about a specific organization, including members, quotas, consumption statistics, and onboarding progress. Use this to check organization health and usage limits.",
        "operationId": "organizations.get",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationInfo"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get organization's info by its ID",
        "tags": [
          "Organizations Management",
          "mcp"
        ]
      }
    },
    "/api/v1/payload_content_types/": {
      "get": {
        "description": "Returns the list of valid content types for event payloads: 'text/plain' for plain text, 'application/json' for JSON data, 'application/octet-stream+base64' for binary data encoded as base64.",
        "operationId": "payload_content_types.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "List supported event payload content types",
        "tags": [
          "Events Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/quotas/": {
      "get": {
        "description": "Get the current quotas limitations on the instance.",
        "operationId": "quotas.get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotasResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "summary": "Get quotas",
        "tags": [
          "Hook0",
          "sdk"
        ]
      }
    },
    "/api/v1/request_attempts/": {
      "get": {
        "description": "Retrieves webhook delivery attempts for an application. Each attempt shows the delivery status (pending, paused, in_progress, successful, failed, waiting), retry count, and timestamps. Filter by event_id, subscription_id, date range, or event types. Paginated via Link header.",
        "operationId": "requestAttempts.read",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "Comma-separated event types",
            "in": "query",
            "name": "event.event_type_names",
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "event_id",
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "max_created_at",
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "min_created_at",
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "pagination_cursor",
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "query",
            "name": "subscription_id",
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RequestAttempt"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List request attempts",
        "tags": [
          "Subscriptions Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/request_attempts/{request_attempt_id}": {
      "get": {
        "description": "Retrieves a single webhook delivery attempt by ID, including delivery status, retry count, timestamps, and HTTP response status.",
        "operationId": "requestAttempts.get",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "path",
            "name": "request_attempt_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestAttempt"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get a request attempt by its ID",
        "tags": [
          "Subscriptions Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/responses/{response_id}": {
      "get": {
        "description": "A response is produced when a request attempt is processed. Response IDs can be obtained from request attempts details.",
        "operationId": "response.get",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          },
          {
            "in": "path",
            "name": "response_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get a response by its ID",
        "tags": [
          "Subscriptions Management",
          "sdk"
        ]
      }
    },
    "/api/v1/service_token/": {
      "get": {
        "description": "Retrieves all active service tokens for a given organization. Expired or revoked tokens are not included in the response.",
        "operationId": "serviceToken.list",
        "parameters": [
          {
            "in": "query",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ServiceToken"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List service tokens",
        "tags": [
          "Service Tokens Management",
          "sdk"
        ]
      },
      "post": {
        "description": "Creates a new organization-wide API key (service token) that allows external applications to send API requests to Hook0. The token can be attenuated to limit its scope for better security.",
        "operationId": "serviceToken.create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceTokenPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceToken"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Create a new service token",
        "tags": [
          "Service Tokens Management",
          "sdk"
        ]
      }
    },
    "/api/v1/service_token/{service_token_id}": {
      "delete": {
        "description": "Marks a service token as expired, effectively revoking its access. This operation is irreversible.",
        "operationId": "serviceToken.delete",
        "parameters": [
          {
            "in": "path",
            "name": "service_token_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Delete a service token",
        "tags": [
          "Service Tokens Management",
          "sdk"
        ]
      },
      "get": {
        "description": "Retrieves details of a specific service token if it belongs to the specified organization and is still active.",
        "operationId": "serviceToken.get",
        "parameters": [
          {
            "in": "path",
            "name": "service_token_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "organization_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceToken"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get a service token",
        "tags": [
          "Service Tokens Management",
          "sdk"
        ]
      },
      "put": {
        "description": "Updates the name of an existing service token. The token must belong to the specified organization and still be active (not expired or revoked).",
        "operationId": "serviceToken.edit",
        "parameters": [
          {
            "in": "path",
            "name": "service_token_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceTokenPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceToken"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Edit a service token",
        "tags": [
          "Service Tokens Management",
          "sdk"
        ]
      }
    },
    "/api/v1/subscriptions/": {
      "get": {
        "description": "Retrieves all active webhook subscriptions for an application. Each subscription defines which event types to listen for and where to deliver them (HTTP endpoint). Use application_id query parameter to filter by application.",
        "operationId": "subscriptions.list",
        "parameters": [
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Subscription"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "List subscriptions",
        "tags": [
          "Subscriptions Management",
          "mcp",
          "sdk"
        ]
      },
      "post": {
        "description": "Creates a webhook subscription that listens for specific event types and delivers them to an HTTP endpoint. Configure the target URL, HTTP method, headers, event type filters, labels for routing, and optional metadata.",
        "operationId": "subscriptions.create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Create a new subscription",
        "tags": [
          "Subscriptions Management",
          "mcp",
          "sdk"
        ]
      }
    },
    "/api/v1/subscriptions/{subscription_id}": {
      "delete": {
        "description": "Permanently deletes a webhook subscription. No more events will be delivered to this endpoint, and all pending deliveries are marked as failed. This action is irreversible.",
        "operationId": "subscriptions.delete",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          },
          {
            "in": "query",
            "name": "application_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Delete a subscription",
        "tags": [
          "Subscriptions Management",
          "mcp",
          "sdk"
        ]
      },
      "get": {
        "description": "Retrieves full details of a specific webhook subscription including target URL, HTTP method, headers, event types, labels, and metadata. The subscription must exist and not be deleted.",
        "operationId": "subscriptions.get",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Get a subscription by its ID",
        "tags": [
          "Subscriptions Management",
          "mcp",
          "sdk"
        ]
      },
      "put": {
        "description": "Modifies an existing webhook subscription. You can update the target URL, HTTP method, headers, event types, labels, metadata, and enabled status. Disabling a subscription marks all pending webhook deliveries as failed (they won't retry if re-enabled).",
        "operationId": "subscriptions.update",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Conflict"
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Gone"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "biscuit": []
          }
        ],
        "summary": "Update a subscription",
        "tags": [
          "Subscriptions Management",
          "mcp",
          "sdk"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://app.hook0.com"
    }
  ]
}