Event
An event records a change or action in your account. Each event has a `type` field that determines its category and the shape of its `data` payload. Events fall into four categories: envelope events, recipient events, deliverable events, and sender events. You can receive events through webhooks or retrieve them through the API.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/signatureapi-com/json-schema/signatureapi-com-event-event-schema.json",
"title": "Event",
"description": "An event records a change or action in your account. Each event has a `type` field that determines its category and the shape of its `data` payload. Events fall into four categories: envelope events, recipient events, deliverable events, and sender events. You can receive events through webhooks or retrieve them through the API.",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/signatureapi-com-openapi.yml#/components/schemas/Event.Event",
"x-schema-role": "model",
"x-schema-direction": "output",
"oneOf": [
{
"$ref": "#/$defs/Event.EnvelopeCreated"
},
{
"$ref": "#/$defs/Event.EnvelopeStarted"
},
{
"$ref": "#/$defs/Event.EnvelopeCompleted"
},
{
"$ref": "#/$defs/Event.EnvelopeFailed"
},
{
"$ref": "#/$defs/Event.EnvelopeCanceled"
},
{
"$ref": "#/$defs/Event.RecipientReleased"
},
{
"$ref": "#/$defs/Event.RecipientSent"
},
{
"$ref": "#/$defs/Event.RecipientAccessed"
},
{
"$ref": "#/$defs/Event.RecipientIdentityVerificationStarted"
},
{
"$ref": "#/$defs/Event.RecipientIdentityVerified"
},
{
"$ref": "#/$defs/Event.RecipientIdentityRejected"
},
{
"$ref": "#/$defs/Event.RecipientViewed"
},
{
"$ref": "#/$defs/Event.RecipientCompleted"
},
{
"$ref": "#/$defs/Event.RecipientSoftBounced"
},
{
"$ref": "#/$defs/Event.RecipientHardBounced"
},
{
"$ref": "#/$defs/Event.RecipientRejected"
},
{
"$ref": "#/$defs/Event.RecipientFailed"
},
{
"$ref": "#/$defs/Event.RecipientReplaced"
},
{
"$ref": "#/$defs/Event.RecipientResent"
},
{
"$ref": "#/$defs/Event.DeliverableGenerated"
},
{
"$ref": "#/$defs/Event.DeliverableFailed"
},
{
"$ref": "#/$defs/Event.SenderCreated"
},
{
"$ref": "#/$defs/Event.SenderVerified"
},
{
"$ref": "#/$defs/Event.SenderFailed"
},
{
"$ref": "#/$defs/Event.SenderDeleted"
}
],
"$defs": {
"Ceremony.IdentityEvidenceReference": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "string",
"title": "Identity Evidence Reference",
"description": "The provider's own handle on the completed verification. Quote this value back to the provider to retrieve the underlying proof.\n\nThis reference never carries personal data. It appears in the `recipient.identity_verified` and `recipient.identity_rejected` events and in the envelope audit log.\n"
},
"Ceremony.IdentityVerificationMethod": {
"x-schema-role": "property",
"x-schema-direction": "any",
"type": "string",
"title": "Identity Verification Method",
"description": "The identity verification the recipient must complete. Required — there is no automatic selection.\n\n- `document_selfie` -- The recipient photographs a government-issued identity document and takes a selfie for a liveness and face match.\n- `eid` -- The recipient authenticates with a national or government-issued electronic identity scheme.\n- `video_ident` -- The recipient completes a video session with an agent who checks their identity document.\n- `reuse_credential` -- The recipient reuses an identity credential they already hold with the provider, without verifying again.\n",
"x-enum-descriptions": {
"document_selfie": "Identity document photo plus a selfie liveness and face match.",
"eid": "National or government-issued electronic identity scheme.",
"video_ident": "Live video session with an agent.",
"reuse_credential": "Reuse of an identity credential the recipient already holds with the provider."
},
"enum": [
"document_selfie",
"eid",
"video_ident",
"reuse_credential"
]
},
"Ceremony.IdentityVerificationProvider": {
"x-schema-role": "property",
"x-schema-direction": "any",
"type": "string",
"title": "Identity Verification Provider",
"description": "The identity verification provider that performs the check. Optional — defaults to `stub`.\n\n- `stub` -- A built-in test provider that simulates the verification without contacting a real identity service.\n",
"x-enum-descriptions": {
"stub": "Built-in test provider that simulates the verification."
},
"default": "stub",
"enum": [
"stub"
]
},
"Deliverable.FailDetail": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "string",
"title": "Deliverable Fail Detail",
"description": "A human-readable explanation of why the deliverable failed to generate. Only present when the deliverable status is `failed`."
},
"Deliverable.Id": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "string",
"title": "Deliverable Id",
"description": "The unique identifier of the deliverable."
},
"Deliverable.IncludedDocuments": {
"x-schema-role": "model",
"x-schema-direction": "any",
"title": "Included Documents",
"type": "array",
"description": "The keys of the documents to include in the deliverable.\n\nBy default, all documents in the envelope are included. Use this field to create a deliverable with only a subset of documents, for example to generate separate deliverables for different recipients.",
"items": {
"$ref": "#/$defs/Document.Key"
},
"minItems": 1,
"maxItems": 10
},
"Deliverable.Name": {
"x-schema-role": "property",
"x-schema-direction": "any",
"title": "Deliverable Name",
"description": "A user-provided name for this deliverable. Use this to identify deliverables when an envelope has more than one.\n\nMust start with a lowercase letter and contain only lowercase letters, numbers, and underscores.",
"type": [
"string",
"null"
],
"pattern": "^[a-z][a-z0-9_]*$",
"minLength": 1,
"maxLength": 32
},
"Deliverable.Type": {
"x-schema-role": "property",
"x-schema-direction": "any",
"type": "string",
"title": "Deliverable Type",
"enum": [
"simple",
"standard"
],
"description": "The type of the deliverable.\n\n- `standard` -- Includes signed documents and an audit log with a certificate of completion.\n- `simple` -- Includes signed documents only, without an audit log.\n"
},
"Deliverable.Url": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": [
"string",
"null"
],
"title": "Deliverable Url",
"format": "uri",
"description": "The URL to download the deliverable once it has been generated. If the deliverable has not yet been generated, this will be `null`.\n\n## Pre-signed URLs (Default)\n\nBy default, this is a short-lived, pre-signed URL that requires no further authentication to download.\n\nThe URL expires after 1 hour. If the link has expired, you can generate a new one by retrieving the deliverable again.\n\n## Authenticated URLs\n\nIf you requested authenticated URLs, for example to achieve HIPAA compliance, the URL must be accessed using the API key, in the same way as other requests to this API.\n\nAuthenticated URLs do not expire.\n"
},
"Document.Key": {
"x-schema-role": "property",
"x-schema-direction": "any",
"title": "Document Key",
"description": "A user-provided identifier for this document within the envelope. Must be unique within the envelope. Use the key to reference this document in other parts of the API.\n\nOnly lowercase letters, numbers, and underscores are allowed. Must start with a letter.\n\nIf not provided, a key is generated automatically.",
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$",
"minLength": 1,
"maxLength": 32
},
"Envelope.CancelReason": {
"x-schema-role": "property",
"x-schema-direction": "any",
"type": [
"string",
"null"
],
"title": "Envelope Cancel Reason",
"description": "An optional explanation for why the envelope was canceled. This is for internal use only and is not shown to recipients.\n\nThe reason is included in the `envelope.canceled` webhook event payload, making it available for your records and automated workflows.\n",
"minLength": 1,
"maxLength": 2000
},
"Envelope.FailDetail": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "string",
"title": "Envelope Fail Detail",
"description": "A human-readable explanation of what caused the envelope to fail. This detail is included in the `envelope.failed` webhook event payload. Failures are very rare and automatically trigger an alert to the SignatureAPI team.\n"
},
"Envelope.Id": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "string",
"format": "uuid",
"title": "Envelope Id",
"description": "The unique identifier of the envelope, in UUID format."
},
"Envelope.Metadata": {
"x-schema-role": "property",
"x-schema-direction": "any",
"type": "object",
"title": "Envelope Metadata",
"description": "Set of key-value pairs to store additional information about the envelope. Use metadata to attach internal reference IDs, tracking numbers, or other data that connects envelopes to your systems.\n\nMetadata is included in all API responses and webhook payloads (in the `data.envelope_metadata` field), making it useful for correlating events with your records.\n\nUp to 10 keys are allowed. Keys can be up to 32 characters (letters, digits, and underscores). Values can be up to 1,000 characters.\n\nUse metadata only for ordinary business identifiers that are appropriate to store with an envelope.\n",
"unevaluatedProperties": false,
"maxProperties": 10,
"default": {},
"additionalProperties": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"propertyNames": {
"type": "string",
"pattern": "^[a-zA-Z0-9_]*$",
"minLength": 1,
"maxLength": 32
}
},
"Event.DeliverableEventData": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "object",
"description": "Data payload for deliverable events. Contains the deliverable identifier, the parent envelope identifier, envelope metadata, deliverable type, name, and the list of included documents.",
"properties": {
"envelope_id": {
"$ref": "#/$defs/Envelope.Id"
},
"object_type": {
"allOf": [
{
"$ref": "#/$defs/Event.ObjectType"
},
{
"const": "deliverable"
}
]
},
"object_id": {
"$ref": "#/$defs/Deliverable.Id"
},
"envelope_metadata": {
"$ref": "#/$defs/Envelope.Metadata"
},
"deliverable_type": {
"$ref": "#/$defs/Deliverable.Type"
},
"deliverable_name": {
"$ref": "#/$defs/Deliverable.Name"
},
"included_documents": {
"$ref": "#/$defs/Deliverable.IncludedDocuments"
}
},
"required": [
"envelope_id",
"object_type",
"object_id",
"envelope_metadata",
"deliverable_type",
"deliverable_name",
"included_documents"
]
},
"Event.DeliverableFailed": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Deliverable Failed Event",
"description": "Fired when the signed document fails to generate. The `data.detail` field contains the failure reason.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "deliverable.failed"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.DeliverableEventData"
},
{
"type": "object",
"properties": {
"detail": {
"$ref": "#/$defs/Deliverable.FailDetail"
}
},
"required": [
"detail"
]
}
]
}
}
}
]
},
"Event.DeliverableGenerated": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Deliverable Generated Event",
"description": "Fired when the signed document is generated and available for download. The `data.url` field contains a pre-signed, short-lived download link. If the link expires, retrieve a new one through the Get Deliverable endpoint.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "deliverable.generated"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.DeliverableEventData"
},
{
"type": "object",
"properties": {
"url": {
"$ref": "#/$defs/Deliverable.Url"
}
},
"required": [
"url"
]
}
]
}
}
}
]
},
"Event.EnvelopeCanceled": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Envelope Canceled Event",
"description": "Fired when the envelope is canceled through the Cancel Envelope endpoint. The envelope status changes to `canceled`. The `data.reason` field contains the cancellation reason, if one was provided.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "envelope.canceled"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.EnvelopeEventData"
},
{
"type": "object",
"properties": {
"reason": {
"$ref": "#/$defs/Envelope.CancelReason"
}
},
"required": [
"reason"
]
}
]
}
}
}
]
},
"Event.EnvelopeCompleted": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Envelope Completed Event",
"description": "Fired when all recipients have completed (for example, signed) the envelope. The envelope status changes from `in_progress` to `completed`.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "envelope.completed"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.EnvelopeEventData"
}
]
}
}
}
]
},
"Event.EnvelopeCreated": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Envelope Created Event",
"description": "Fired when a new envelope is created. This is the first event in the envelope lifecycle.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "envelope.created"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.EnvelopeEventData"
}
]
}
}
}
]
},
"Event.EnvelopeEventData": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "object",
"description": "Data payload for envelope events. Contains the envelope identifier, object type, and any metadata attached to the envelope.",
"properties": {
"envelope_id": {
"$ref": "#/$defs/Envelope.Id"
},
"object_type": {
"allOf": [
{
"$ref": "#/$defs/Event.ObjectType"
},
{
"const": "envelope"
}
]
},
"object_id": {
"$ref": "#/$defs/Envelope.Id"
},
"envelope_metadata": {
"$ref": "#/$defs/Envelope.Metadata"
}
},
"required": [
"envelope_id",
"object_type",
"object_id",
"envelope_metadata"
]
},
"Event.EnvelopeFailed": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Envelope Failed Event",
"description": "Fired when the envelope encounters an error. The envelope status changes to `failed`. The `data.detail` field contains the reason for the failure.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "envelope.failed"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.EnvelopeEventData"
},
{
"type": "object",
"properties": {
"detail": {
"$ref": "#/$defs/Envelope.FailDetail"
}
},
"required": [
"detail"
]
}
]
}
}
}
]
},
"Event.EnvelopeStarted": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Envelope Started Event",
"description": "Fired when the envelope finishes processing and is ready to send to recipients. The envelope status changes from `processing` to `in_progress`.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "envelope.started"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.EnvelopeEventData"
}
]
}
}
}
]
},
"Event.EventBase": {
"x-schema-role": "property",
"x-schema-direction": "output",
"description": "Base properties shared by all events. Every event includes a unique identifier and a timestamp recording when the event occurred.",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/Event.Id"
},
"timestamp": {
"$ref": "#/$defs/Event.Timestamp"
}
},
"required": [
"id",
"timestamp"
]
},
"Event.Id": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "string",
"description": "Unique identifier for the event. Uses the `evt_` prefix."
},
"Event.ObjectType": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "string",
"description": "The type of object this event refers to. Indicates whether the event relates to an envelope, recipient, deliverable, or sender.",
"x-enum-descriptions": {
"envelope": "The event relates to an envelope.",
"recipient": "The event relates to a recipient.",
"deliverable": "The event relates to a deliverable (signed document).",
"sender": "The event relates to a sender."
},
"enum": [
"envelope",
"recipient",
"deliverable",
"sender"
]
},
"Event.RecipientAccessed": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Recipient Accessed Event",
"description": "Fired when the recipient enters the signing ceremony. Emitted at most once every 60 seconds per IP address and user agent to reduce duplicates. The `data` includes the recipient's IP address, user agent, and session ID.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "recipient.accessed"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.RecipientEventData"
},
{
"type": "object",
"properties": {
"ip": {
"$ref": "#/$defs/Recipient.IP"
},
"user_agent": {
"$ref": "#/$defs/Recipient.UserAgent"
},
"session_id": {
"$ref": "#/$defs/Recipient.SessionId"
}
},
"required": [
"ip",
"user_agent",
"session_id"
]
}
]
}
}
}
]
},
"Event.RecipientCompleted": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Recipient Completed Event",
"description": "Fired when the recipient finishes signing. The recipient status changes to `completed`. The `data` includes the session ID.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "recipient.completed"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.RecipientEventData"
},
{
"type": "object",
"properties": {
"session_id": {
"$ref": "#/$defs/Recipient.SessionId"
}
}
}
]
}
}
}
]
},
"Event.RecipientEventData": {
"x-schema-role": "property",
"x-schema-direction": "output",
"type": "object",
"description": "Data payload for recipient events. Contains the recipient identifier, the parent envelope identifier, envelope metadata, and recipient details such as type and key.",
"properties": {
"envelope_id": {
"$ref": "#/$defs/Envelope.Id"
},
"object_type": {
"allOf": [
{
"$ref": "#/$defs/Event.ObjectType"
},
{
"const": "recipient"
}
]
},
"object_id": {
"$ref": "#/$defs/Recipient.Id"
},
"envelope_metadata": {
"$ref": "#/$defs/Envelope.Metadata"
},
"recipient_type": {
"$ref": "#/$defs/Recipient.Type"
},
"recipient_key": {
"$ref": "#/$defs/Recipient.Key"
}
},
"required": [
"envelope_id",
"object_type",
"object_id",
"envelope_metadata",
"recipient_type",
"recipient_key"
]
},
"Event.RecipientFailed": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Recipient Failed Event",
"description": "Fired when the recipient encounters a general failure. The `data.detail` field contains the failure reason.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "recipient.failed"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.RecipientEventData"
},
{
"type": "object",
"properties": {
"detail": {
"$ref": "#/$defs/Recipient.FailDetail"
}
},
"required": [
"detail"
]
}
]
}
}
}
]
},
"Event.RecipientHardBounced": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Recipient Hard Bounced Event",
"description": "Fired when the email to the recipient permanently bounces. Common causes include an invalid email address. After a hard bounce, you cannot send additional requests to this recipient without using the Replace Recipient endpoint. The `data.detail` field contains the bounce reason.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "recipient.hard_bounced"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.RecipientEventData"
},
{
"type": "object",
"properties": {
"detail": {
"$ref": "#/$defs/Recipient.BounceDetail"
}
},
"required": [
"detail"
]
}
]
}
}
}
]
},
"Event.RecipientIdentityRejected": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Recipient Identity Rejected Event",
"description": "Fired when the identity verification provider does not confirm the recipient's identity. The recipient can retry until the attempt cap is reached. The `data` includes the verification `method`, the `provider`, and the `evidence_reference` the provider left behind.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "recipient.identity_rejected"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.RecipientEventData"
},
{
"type": "object",
"properties": {
"method": {
"$ref": "#/$defs/Ceremony.IdentityVerificationMethod"
},
"provider": {
"$ref": "#/$defs/Ceremony.IdentityVerificationProvider"
},
"evidence_reference": {
"$ref": "#/$defs/Ceremony.IdentityEvidenceReference"
}
},
"required": [
"method",
"provider"
]
}
]
}
}
}
]
},
"Event.RecipientIdentityVerificationStarted": {
"x-schema-role": "model",
"x-schema-direction": "output",
"title": "Recipient Identity Verification Started Event",
"description": "Fired when the recipient is sent to the identity verification provider. Nothing is proven yet at this point. The `data` includes the verification `method` and the `provider` handling the check.",
"allOf": [
{
"$ref": "#/$defs/Event.EventBase"
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/Event.Type"
},
{
"const": "recipient.identity_verification_started"
}
]
},
"data": {
"allOf": [
{
"$ref": "#/$defs/Event.RecipientEventData"
},
{
"type": "object",
"properties": {
"method": {
"$ref": "#/$defs/Ceremony.IdentityVerificationMethod"
},
"provider": {
"$ref": "#/$defs/Ceremony.IdentityVerificationProvider"
}
},
"required": [
"method",
"provider"
]
}
]
}
}
}
]
},
"Event.RecipientIdentityVerified": {
"x-schema-role": "model",
"x-schema
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://artifacts.apis.io/signatureapi-com/json-schema/signatureapi-com-event-event-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/signatureapi-com-event-event"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.