Notarize · Schema
transaction_object
CompanyPropTechNotarizationRemote Online NotarizationIdentity VerificationE-SignatureDigital CredentialsReal EstateMortgageLegal Tech
Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| activation_time | stringnull | An ISO-8601 formatted DateTime String. |
| allowed_notary_states | arraynull | The 2-letter US state abbreviations the transaction restricts notary routing to; absent when unrestricted. |
| attachments | array | |
| audit_trail_url | stringnull | |
| cc_recipient_emails | array | |
| charge_statement_url | stringnull | |
| config_id | stringnull | |
| cost_center_id | stringnull | The cost center attributed to this transaction, if any. |
| cosigner_info | object | |
| cost | number | Cost of the transaction. |
| date_created | string | Date Transaction was created/uploaded. |
| date_updated | string | Date Transaction was updated. |
| default_text_tag_syntax | stringnull | |
| detailed_status | string | |
| documents | array | |
| expiry | stringnull | |
| external_id | stringnull | |
| identity_report | objectnull | |
| idv_use_case | stringnull | |
| message_signature | stringnull | |
| message_subject | stringnull | |
| message_to_signer | stringnull | |
| notarization_record | object | |
| notarization_records | array | |
| notary_id | stringnull | |
| notary_instructions | arraynull | |
| notary_meeting_time | stringnull | |
| organization_id | string | |
| payer | string | |
| recall_reason | stringnull | Reason for recalling the transaction. |
| recipient_details_config | arraynull | An array of recipient details configuration objects. This is used to configure the recipients experience |
| redirect | objectnull | |
| referral_campaign_id | stringnull | The ID of the referral campaign that the transaction is associated with. |
| referral_code | stringnull | The referral code that the transaction is associated with. |
| require_secondary_photo_id | boolean | |
| sender_logo | stringnull | |
| sender_name | string | Name of the sending organization. |
| signer_info | object | |
| signers | array | |
| status | string | |
| transaction_name | string | |
| transaction_type | stringnull |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/notarize/main/json-schema/notarize-transaction-object-schema.json",
"title": "transaction_object",
"x-generated": "2026-10-14",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/notarize-proof-business-api-specification-openapi.yml#/components/schemas/transaction_object",
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 5000
},
"activation_time": {
"type": [
"string",
"null"
],
"maxLength": 100,
"description": "An ISO-8601 formatted DateTime String."
},
"allowed_notary_states": {
"type": [
"array",
"null"
],
"items": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"description": "The 2-letter US state abbreviations the transaction restricts notary routing to; absent when unrestricted."
},
"attachments": {
"type": "array",
"items": {
"$ref": "#/$defs/attachment"
}
},
"audit_trail_url": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"cc_recipient_emails": {
"type": "array",
"items": {
"$ref": "#/$defs/cc_recipient_email"
}
},
"charge_statement_url": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"config_id": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"cost_center_id": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "The cost center attributed to this transaction, if any."
},
"cosigner_info": {
"$ref": "#/$defs/signer",
"nullable": true
},
"cost": {
"type": "number",
"format": "float",
"description": "Cost of the transaction."
},
"date_created": {
"type": "string",
"maxLength": 100,
"format": "date-time",
"description": "Date Transaction was created/uploaded."
},
"date_updated": {
"type": "string",
"maxLength": 100,
"format": "date-time",
"description": "Date Transaction was updated."
},
"default_text_tag_syntax": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"detailed_status": {
"type": "string",
"enum": [
"draft",
"recalled",
"order_placed",
"sent_to_title_agent",
"sent_to_signer",
"active",
"viewed",
"started",
"partially_complete",
"attempted",
"awaiting_payment",
"open_order",
"review_now",
"sign_now",
"payment_required",
"meeting_in_progress",
"complete",
"complete_with_rejections",
"expired",
"esign_complete",
"wet_sign_complete",
"on_hold",
"converted_to_wet_sign",
"identify_complete_idv_passed",
"identify_complete_idv_failed",
"ready_for_review",
"add_document",
"processing",
"held_for_review",
"declined",
"screened",
"canceled"
]
},
"documents": {
"type": "array",
"items": {
"$ref": "#/$defs/document"
}
},
"expiry": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"external_id": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"identity_report": {
"type": [
"object",
"null"
],
"properties": {
"name": {
"type": "string",
"maxLength": 5000
},
"url": {
"type": "string",
"maxLength": 5000
}
}
},
"idv_use_case": {
"type": [
"string",
"null"
],
"maxLength": 50,
"enum": [
"STANDARD",
"ACCOUNT_RECOVERY"
]
},
"message_signature": {
"type": [
"string",
"null"
],
"maxLength": 30000
},
"message_subject": {
"type": [
"string",
"null"
],
"maxLength": 30000
},
"message_to_signer": {
"type": [
"string",
"null"
],
"maxLength": 30000
},
"notarization_record": {
"$ref": "#/$defs/notarization_record_object",
"nullable": true
},
"notarization_records": {
"type": "array",
"items": {
"$ref": "#/$defs/notarization_record_object"
}
},
"notary_id": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"notary_instructions": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/notary_instructions"
}
},
"notary_meeting_time": {
"type": [
"string",
"null"
],
"maxLength": 100,
"format": "date-time"
},
"organization_id": {
"type": "string",
"maxLength": 5000
},
"payer": {
"type": "string",
"enum": [
"sender",
"signer"
]
},
"recall_reason": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "Reason for recalling the transaction."
},
"recipient_details_config": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/recipient_details_config"
},
"description": "An array of recipient details configuration objects. This is used to configure the recipients experience"
},
"redirect": {
"type": [
"object",
"null"
],
"properties": {
"redirect_msg": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"redirect_url": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"forced_redirect": {
"type": "boolean"
}
}
},
"referral_campaign_id": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "The ID of the referral campaign that the transaction is associated with."
},
"referral_code": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "The referral code that the transaction is associated with."
},
"require_secondary_photo_id": {
"type": "boolean"
},
"sender_logo": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"sender_name": {
"type": "string",
"description": "Name of the sending organization."
},
"signer_info": {
"$ref": "#/$defs/signer"
},
"signers": {
"type": "array",
"items": {
"$ref": "#/$defs/signers"
}
},
"status": {
"type": "string",
"maxLength": 5000
},
"transaction_name": {
"type": "string",
"maxLength": 5000
},
"transaction_type": {
"type": [
"string",
"null"
],
"maxLength": 5000
}
},
"$defs": {
"address": {
"type": "object",
"properties": {
"line1": {
"type": "string",
"maxLength": 5000,
"description": "House number and Street name"
},
"line2": {
"type": "string",
"maxLength": 5000,
"description": "Unit number"
},
"city": {
"type": "string",
"maxLength": 5000,
"description": "Town name"
},
"state": {
"type": "string",
"maxLength": 2,
"description": "Only two character state abbreviations are accepted. i.e. \"CO\"."
},
"postal": {
"type": "string",
"maxLength": 10,
"description": "Five or ten digit postal code."
},
"country": {
"type": "string",
"maxLength": 2,
"description": "Only two character country codes are accepted. i.e. \"US\"."
}
}
},
"attachment": {
"type": "object",
"properties": {
"date_created": {
"type": "string",
"maxLength": 100,
"description": "Date Attachment was created/uploaded."
},
"name": {
"type": "string",
"maxLength": 5000,
"description": "Name of the attachment"
},
"url": {
"type": "string",
"maxLength": 5000,
"description": "URL of the attachment"
}
}
},
"cc_recipient_email": {
"type": "string",
"maxLength": 5000,
"description": "Email address of the recipient to be CC'd on the transaction."
},
"credential_asset_object": {
"type": "object",
"properties": {
"credential_type": {
"type": "string",
"enum": [
"primary",
"secondary",
"selfie"
]
},
"credential_images": {
"type": "array",
"items": {
"$ref": "#/$defs/credential_image"
}
}
}
},
"credential_image": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 5000,
"description": "URL of the image"
},
"descriptor": {
"type": "string",
"enum": [
"back",
"front"
]
}
}
},
"document": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 5000
},
"allowed_actions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 5000
},
"description": "List of allowed actions on document."
},
"bundle_position": {
"type": "integer",
"description": "Position to put document in bundle"
},
"completion_state": {
"type": "string",
"maxLength": 5000
},
"data": {
"type": [
"string",
"null"
],
"description": "base64 encoded document. Present if base64 encoding was specified in request. Currently supported for get_document only."
},
"date_created": {
"type": "string",
"maxLength": 100,
"description": "Date document was created/uploaded."
},
"date_updated": {
"type": "string",
"maxLength": 100,
"description": "Date document was last updated."
},
"document_name": {
"type": "string",
"maxLength": 5000,
"description": "Name of document."
},
"esign_required": {
"type": "boolean",
"description": "Boolean flag indicating whether the document requires esigning."
},
"final_document_url": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"identification_reviewed": {
"type": "boolean"
},
"identity_confirmation_required": {
"type": "boolean",
"description": "Boolean flag indicating whether the document requires identity confirmation."
},
"is_enote": {
"type": [
"boolean",
"null"
],
"description": "Boolean flag indicating whether the document is an eNote."
},
"notarization_required": {
"type": "boolean",
"description": "Boolean flag indicating whether the document requires notarization. If `true`, identity_confirmation_required must be `false`. If `false`, the document may still be e-signed in the notary meeting. At least one document in a transaction must require notarization or identity confirmation."
},
"permissions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 5000
},
"description": "List of allowed actions on document."
},
"processing_error": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "Error message if document processing failed."
},
"processing_state": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "State of document processing."
},
"rejection_anecdote": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "Anecdote for document rejection."
},
"rejection_reason": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "Reason for document rejection."
},
"requirement": {
"type": "string",
"maxLength": 5000,
"description": "Completion requirement for the document. Accepted values can be `notarization`, `esign`, `identity_confirmation` **([identity confirmation feature](https://dev.proof.com/docs/enterprise-features))**, `readonly`, and `non_essential`. Completion requirement for the document. If the value is set to `non_essential`, the document will be hidden from signers before the notary meeting and values for `customer_can_annotate` and `witness_required` will be ignored and set to false. `identity_confirmation` is used to support signing of PS Form 1583 for signers without a US SSN. Note: if `identity_confirmation` is set as the document requirement, ensure that all documents requiring notarization in the transaction also use `identity confirmation` as the requirement to avoid requiring KBA on the transaction. [Read more](https://dev.proof.com/docs/document-requirements) about document requirements."
},
"signed_url": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "Signed URL for the final document PDF."
},
"signing_designation_groups": {
"type": "array",
"items": {
"$ref": "#/$defs/signing_designation_group"
},
"description": "This array contains a prescribed list of groups of designations for signers and/or a notary to annotate the document."
},
"signing_designations": {
"type": "array",
"items": {
"$ref": "#/$defs/signing_designation"
},
"description": "This array contains a prescribed list of designations for signers and/or a notary to annotate the document."
},
"signing_type": {
"type": "string",
"enum": [
"NOTARIZATION",
"ESIGN"
]
},
"tracking_id": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "The external tracking ID of the document."
},
"vaulted": {
"type": "boolean",
"description": "Boolean flag indicating whether the document is vaulted."
}
}
},
"id_allow_list_by_country": {
"type": [
"object",
"null"
],
"description": "A dictionary of id allow lists by country code, e.g. { \"US\": [ \"driver_license\", \"passport\" ], \"CA\": [\"passport\"] }, where the key is a 2 digit ISO-3166 country code, and the value is an array of id types. Primary ID lists must only contain government IDs ([\"driver_license\", \"passport\", \"id_card\", \"passport_card\", \"work_permit\", \"permanent_resident_card\", \"matricula_consular\"]). Secondary ID lists can contain government IDs or supplemental documents ([\"driver_license\", \"passport\", \"id_card\", \"passport_card\", \"work_permit\", \"permanent_resident_card\", \"social_security_card\", \"us_visa\", \"birth_certificate\", \"property_tax_bill\", \"voter_registration_card\", \"organizational_membership_card\", \"bank_investment_loan_statement\", \"paycheck_stub\", \"property_insurance\", \"utility_bill\", \"other\", \"lease\", \"mortgage\", \"deed_of_trust\", \"vehicle_registration\"]). By default, validation is only run on the primary ID. Validation can be run on the secondary ID (if it is a government ID) by changing your organization's configuration. To use Proof's default ID options, use null, or do not pass this field."
},
"notarization_record_object": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 5000
},
"meeting_start": {
"type": "string",
"maxLength": 100,
"format": "date-time"
},
"meeting_end": {
"type": "string",
"maxLength": 100,
"format": "date-time"
},
"notary_name": {
"type": "string",
"maxLength": 5000
},
"notary_county_city": {
"type": "string",
"maxLength": 5000
},
"notary_registration": {
"type": "string",
"maxLength": 5000
},
"notary_source": {
"type": "string",
"enum": [
"In-house notary",
"Custom Panel",
"Notarize Network"
],
"description": "Indicates how the notary who fulfilled this session was sourced: In-house notary, Custom Panel, or Notarize Network. Reflects actual session fulfillment, not original routing."
},
"signer_info": {
"$ref": "#/$defs/notarization_record_signer_object"
},
"signers": {
"type": "array",
"items": {
"allOf": [
{
"$ref": "#/$defs/notarization_record_signer_object"
},
{
"$ref": "#/$defs/photo_identification"
}
]
}
},
"cosigner_info": {
"$ref": "#/$defs/notarization_record_signer_object",
"nullable": true
},
"witnesses": {
"type": "array",
"items": {
"$ref": "#/$defs/witness"
}
},
"notarized_documents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"document_url": {
"type": "string",
"maxLength": 5000
},
"notorial_acts": {
"type": "array",
"items": {
"type": "string",
"enum": [
"acknowledgement",
"copy_certification",
"jurat",
"oath_affirmation",
"verification_of_fact",
"vof_ps1583",
"affidavit",
"attestation"
]
}
},
"tracking_id": {
"oneOf": [
{
"type": [
"integer",
"null"
]
},
{
"type": [
"string",
"null"
],
"maxLength": 5000
}
]
}
}
}
},
"verification_credentials": {
"type": "object",
"properties": {
"retrieval_id": {
"type": "string",
"maxLength": 5000
},
"retrieval_pin": {
"type": "string",
"maxLength": 5000
},
"last_name": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"date_completed": {
"type": "string",
"maxLength": 100
}
}
},
"signer_photo_identification": {
"$ref": "#/$defs/photo_identification"
},
"video_url": {
"type": "string",
"maxLength": 5000,
"description": "Download URL of the video recording of the meeting."
},
"chat_url": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"description": "Download URL of the chat transcript of the meeting."
}
}
},
"notarization_record_signer_object": {
"type": "object",
"properties": {
"signer_id": {
"type": [
"string",
"null"
],
"maxLength": 38,
"description": "Signer ID"
},
"email": {
"type": "string",
"maxLength": 100,
"description": "Email"
},
"first_name": {
"type": "string",
"maxLength": 30,
"description": "First name"
},
"middle_name": {
"type": [
"string",
"null"
],
"maxLength": 30,
"description": "Middle name"
},
"last_name": {
"type": "string",
"maxLength": 30,
"description": "Last name"
},
"address": {
"$ref": "#/$defs/address",
"description": "The most recent known address for the signer."
},
"dob": {
"type": "string",
"maxLength": 30,
"description": "The signer's date of birth."
}
}
},
"notary_instructions": {
"type": "object",
"properties": {
"notary_note": {
"type": "string",
"maxLength": 500,
"description": "500 character limit."
}
}
},
"photo_identification": {
"type": "object",
"properties": {
"primary_front": {
"type": "string",
"maxLength": 5000,
"description": "URL of the front of the primary photo identification document."
},
"primary_back": {
"type": "string",
"maxLength": 5000,
"description": "URL of the back of the primary photo identification document."
},
"primary_type": {
"type": "string",
"maxLength": 5000,
"description": "Type of the primary photo identification document."
},
"primary_issuer": {
"type": "string",
"maxLength": 5000,
"description": "Issuer of the primary photo identification document."
},
"primary_expiry_date": {
"type": "string",
"maxLength": 100,
"description": "Expiry date of the primary photo identification document."
},
"secondary_front": {
"type": "string",
"maxLength": 5000,
"description": "URL of the front of the secondary photo identification document."
}
}
},
"photo_validation_attempt": {
"type": "object",
"properties": {
"validation_source": {
"type": [
"string",
"null"
],
"maxLength": 5000,
"enum": [
"lexis-flex",
"identity-verification-service",
"lexis",
"noop",
"persona",
"firebase",
null,
"none",
"notakred"
]
},
"verified_at": {
"type": "string",
"maxLength": 100,
"description": "An ISO-8601 formatted DateTime String."
},
"verification_method": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"images": {
"type": "object",
"properties": {
"front": {
"type": "string",
"maxLength": 5000
},
"back": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"selfie": {
"type": [
"string",
"null"
],
"maxLength": 5000
}
}
},
"status": {
"type": [
"string",
"null"
],
"enum": [
"success",
"failure",
"unknown",
"skipped",
"pending",
"action_required",
"deleted"
]
},
"document_address": {
"$ref": "#/$defs/address"
},
"document_claimed_type": {
"type": "string",
"enum": [
"bank_account_statement",
"bank_investment_loan_statement",
"birth_certificate",
"certificate_of_citizenship",
"citizen_id",
"credit_or_debit_card_statement",
"deed_of_trust",
"driver_license",
"foreigner_id",
"healthcare_insurance",
"i_94",
"id_card",
"internal_passport",
"keypass_id",
"lease",
"long_term_pass_card",
"matricula_consular",
"mortgage",
"municipal_id",
"my_number_card",
"nbi",
"nexus_card",
"ofw",
"organizational_membership_card",
"pan",
"passport",
"passport_card",
"paycheck_stub",
"permanent_resident_card",
"postal_id",
"property_insurance",
"property_tax_bill",
"residency_permit",
"school_id_card",
"seafarers_id",
"social_security_card",
"sss",
"tin",
"travel_document",
"tribal_id",
"umid",
"us_visa",
"utility_bill",
"vehicle_registration",
"voter_registration_card",
"work_permit",
"other",
"unknown"
]
},
"document_classification": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"document_date_of_birth": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"document_expiration_date": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"document_first_name": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"document_middle_name": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"document_last_name": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"document_issue_date": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"document_issuer": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"document_number": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"verified": {
"type": "boolean"
},
"failure_reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"check": {
"type": "string",
"maxLength": 5000
},
"category": {
"type": "string",
"enum": [
"aamva_failure",
"fraud",
"image_quality",
"ineligible_id",
"kba_mismatch",
"not_classified",
"user_action_required"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string",
"maxLength": 5000
}
},
"required": {
"type": "boolean"
},
"verification_type": {
"type": "string",
"enum": [
"id",
"selfie"
]
}
}
}
}
}
},
"proof_requirement": {
"type": "object",
"properties": {
"id_verification": {
"$ref": "#/$defs/proof_requirement_id_verification"
},
"knowledge_based_authentication": {
"type": "boolean",
"description": "(KBA) Signer answers a series of personal identity questions."
},
"multi_factor_authentication": {
"$ref": "#/$defs/proof_requirement_multi_factor_authentication"
}
},
"required": [
"knowledge_based_authentication"
]
},
"proof_requirement_id_verification": {
"type": "object",
"properties": {
"selfie": {
"type": "boolean",
"description": "Signer identity is verified through credential analysis and selfie comparison. SMS multi_factor_authentication is required with this for IAL2 compliant identity verification."
}
},
"required": [
"selfie"
]
},
"proof_requirement_multi_factor_authentication": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"sms"
],
"description": "Signer enters authentication code sent to their mobile phone."
}
},
"required": [
"type"
]
},
"recipient_details_config": {
"type": "object",
"properties": {
"field": {
"type": "string",
"maxLength": 50,
"enum": [
"name"
],
"description": "The field name"
},
"display": {
"type": "string",
"maxLength": 50,
"enum": [
"required",
"locked",
"optional",
"hidden"
],
"description": "Property of the field"
}
}
},
"recipient_group": {
"type": "object",
"properties": {
"shared_inbox_email": {
"type": "string",
"maxLength": 5000,
"description": "The email address that is shared by a group. Whomever has access to this email address can claim the transaction for themself."
}
}
},
"signer": {
"type": "object",
"properties": {
"signer_id": {
"type": "string",
"maxLength": 30,
"description": "Signer ID"
},
"email": {
"type": "string",
"maxLength": 5000,
"description": "Email is required unless you provide a recipient_group object."
},
"first_name": {
"type": "string",
"maxLength": 30,
"description": "First name"
},
"middle_name": {
"type": [
"string",
"null"
],
"maxLength": 30,
"description": "Middle name"
},
"last_name": {
"type": "string",
"maxLength": 30,
"description": "Last name"
},
"phone_number": {
"type": "string",
"maxLength": 30,
"description": "Signer phone number. A country code can be defined by using the `+` symbol. For example, `+11234567890` will set the country code to `+1` for the number `1234567890`. If no country code is specified the default will be the United States country code of `+1`."
},
"phone": {
"type": [
"object",
"null"
],
"properties": {
"countr
# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/notarize/refs/heads/main/json-schema/notarize-transaction-object-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
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/notarize-transaction-object"
All schemas
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.