Citi · Schema
TransactionResponse
BankingFinancial ServicesOpen BankingPaymentsTreasuryISO 20022Commercial CardsForeign ExchangeCustodyTrade FinanceCorporate BankingAPI Gateway
Properties
| Name | Type | Description |
|---|---|---|
| count | integer | The total number of notifications returned in a GET request. |
| offset | integer | The offset value used in a GET request. |
| limit | integer | The limit value used in a GET request. |
| total | integer | The total number of notifications that fall within the scope of the GET request. This value may dynamically update in subsequent calls, to reflect new notifications or expired notifications |
| notifications | array | List of Notification requests |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-transaction-response-schema.json",
"title": "TransactionResponse",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/citi-get-notifications-api-openapi.yml#/components/schemas/TransactionResponse",
"properties": {
"count": {
"description": "The total number of notifications returned in a GET request.",
"type": "integer"
},
"offset": {
"description": "The offset value used in a GET request.",
"type": "integer"
},
"limit": {
"description": "The limit value used in a GET request.",
"type": "integer"
},
"total": {
"description": "The total number of notifications that fall within the scope of the GET request. This value may dynamically update in subsequent calls, to reflect new notifications or expired notifications",
"type": "integer"
},
"notifications": {
"description": "List of Notification requests",
"type": "array",
"items": {
"$ref": "#/$defs/NotificationResponse"
}
}
},
"$defs": {
"AuthMerchant": {
"properties": {
"merchantId": {
"description": "The ID created for a specific merchant by the card network",
"type": "string",
"maxLength": 50
},
"merchantCategoryCode": {
"description": "The category under which the merchant is been assigned by the network",
"type": "string",
"maxLength": 4
},
"merchantName": {
"description": "The merchant name that corresponds to merchant id defined by the card netwrok",
"type": "string",
"maxLength": 200
},
"merchantCity": {
"description": "Merchant city",
"type": "string",
"maxLength": 100
},
"merchantState": {
"description": "Alphabetic code for the Merchant state",
"type": "string",
"maxLength": 3
},
"merchantCountryCode": {
"description": "3 digit country code for the merchant country",
"type": "string",
"maxLength": 3
}
},
"required": [
"merchantId",
"merchantCategoryCode",
"merchantName",
"merchantCity",
"merchantState",
"merchantCountryCode"
],
"additionalProperties": false
},
"AuthTransactionContent": {
"properties": {
"messageTypeIndicator": {
"description": "Message Type Identifier<br>Possible values:<br>\"0100\" - Authorization<br>\"0110\" - Authorization Request Response<br>\"0120\" - Authorization Advice<br>\"0400\" - Reversal (full or partial)<br>\"0410\" - Reversal response<br>\"0420\" - Reversal advice (full or partial))<br>\"0430\" - Reversal advice response (full or partial)",
"type": "string",
"maxLength": 4
},
"transactionId": {
"description": "Unique identifier of the transaction",
"type": "string",
"maxLength": 50
},
"transactionAmount": {
"$ref": "#/$defs/TransactionAmount"
},
"billingAmount": {
"$ref": "#/$defs/BillingAmount"
},
"authorizationResponseDetail": {
"description": "Authorization Status/Reason Description from Issuer<br>Max legnth - MC: 100<br><br>Mastercard<br><br>00 - Approved or completed successfully<br>01 - Refer to card issuer<br>03 - Invalid merchant Decline<br>04 - Capture card Capture<br>05 - Do not honor<br>06 - Error<br>08 - Honor with ID<br>10 - Partial Approval<br>12 - Invalid transaction<br>13 - Invalid amount<br>14 - Invalid card number<br>15 - Invalid issuer<br>17 - Customer cancellation<br>30 - Format error<br>32 - Partial reversal<br>34 - Suspect Fraud<br>41 - Lost card<br>43 - Stolen card<br>51 - Insufficient funds/over credit limit<br>54 - Expired card<br>55 - Invalid PIN<br>57 - Transaction not permitted to issuer/cardholder<br>58 - Transaction not permitted to acquirer/terminal<br>61 - Exceeds withdrawal amount limit<br>62 - Restricted card<br>63 - Security violation<br>65 - Exceeds withdrawal count limit<br>68 - Response received late<br>70 - Contact Card Issuer<br>71 - PIN Not Changed<br>75 - Allowable number of PIN tries exceeded<br>76 - Invalid/nonexistent To Account specified<br>77 - Invalid/nonexistent From Account specified<br>78 - Invalid/nonexistent account specified (general)<br>81 - Domestic Debit Transaction Not Allowed<br>82 - Timeout at issuer<br>84 - Invalid Authorization Life Cycle<br>85 - Not declined Valid for all zero amount transactions.<br>86 - PIN Validation not possible<br>87 - Purchase Amount Only, No Cash Back Allowed<br>88 - Cryptographic failure<br>89 - Unacceptable PIN Transaction Declined Retry<br>91 - Authorization System or issuer system inoperative<br>92 - Unable to route transaction<br>94 - Duplicate transmission detected<br>96 - System error",
"type": "string",
"maxLength": 100
},
"authorizationCode": {
"description": "Transaction response ID assigned by the authorizing institution for Authorization transactions",
"type": "string",
"maxLength": 50
},
"transactionDate": {
"description": "Masercard: Convert UTC date to format YYYY-MM-DD (ISO-8601) and enrich the YYYY value based on the current year",
"type": "string",
"maxLength": 10
},
"transactionTime": {
"description": "The time of the transaction that was initiated. hh:mm:ss (24 hours format)",
"type": "string",
"maxLength": 8
},
"transactionType": {
"description": "Specifies the nature of the transaction whether it was authorized or returned etc<br>Visa : 107 max length MC: 40 Max length",
"type": "string",
"maxLength": 107
},
"preAuthorizationFlag": {
"description": "Pre Authorization flag<br>Possible values: 'Yes' - When posTransactionStatus is 4 'No' - For all other values",
"type": "string"
},
"merchant": {
"$ref": "#/$defs/Merchant"
},
"realCardDetails": {
"$ref": "#/$defs/RealCardDetails"
},
"virtualCardDetails": {
"$ref": "#/$defs/VirtualCardDetails"
},
"inControlOnBehalfServiceResult": {
"$ref": "#/$defs/InControlOnBehalfServiceResult"
},
"originalMessage": {
"$ref": "#/$defs/OriginalMessage"
},
"adviceReasonCode": {
"description": "Advice Reason Code indicates to the receiver of an Advice message the specific reason for the transmission of the Advice message",
"type": "string",
"format": "string",
"maxLength": 50
},
"replacementAmounts": {
"$ref": "#/$defs/ReplacementAmounts"
},
"purchaseRequest": {
"$ref": "#/$defs/PurchaseRequest"
},
"acquirerIdentifier": {
"description": "The identifier under which the acquirer has been categorised",
"type": "string",
"maxLength": 50
}
},
"required": [
"messageTypeIndicator",
"transactionId",
"transactionAmount",
"billingAmount",
"authorizationResponseDetail",
"authorizationCode",
"transactionDate",
"transactionTime",
"transactionType",
"merchant",
"inControlOnBehalfServiceResult",
"originalMessage"
]
},
"Authorization": {
"properties": {
"authorizationTransactionId": {
"description": "Specifies the Authorization Transaction ID used for matching.",
"type": "string"
},
"systemTraceAuditNumber": {
"description": "Systems Trace Audit Number (STAN) is a number a message initiator assigns to uniquely identify a transaction.",
"type": "string"
},
"type": {
"description": "Indicates the type of transaction.<br>Possible Values<ul><li>'0' - Auth</li><li>'1' - Advice</li><li>'2' - Reversal</li><li>'3' - Reversal advice</li><li>'4' - Offline Auth</li><li>'5' - Offline purchase return</li><li>'6' = Reserved for use internal to the Mastercard ICCP platform</li><li>'7' = Reserved for use internal to the Mastercard ICCP platform</l><li>'8' = Offline Auth for purchase return</li></ul>",
"type": "string",
"maxLength": 1
},
"merchantLocalDate": {
"description": "Transaction local date (month and day) in the format of MMDD on which the transaction takes place at the point of card acceptor location. This date is represneted in local time zone units, not in UTC time zone.",
"type": "string",
"maxLength": 4
},
"merchantLocalTime": {
"description": "Transaction local time at which the transaction takes place at the point of card acceptor location. Time is repreented in local time zone units, not in UTC time zone.",
"type": "string",
"maxLength": 6
},
"messageTypeIndicator": {
"description": "Message Type Identifier.<br>Possible values:<br>'0100' - Authorization<br>'0120' - Authorization Advice<br>'0400' - Reversal (full or partial)<br>'0420' - Reversal advice (full or partial)",
"type": "string",
"maxLength": 4
},
"billingCurrencyAmount": {
"$ref": "#/$defs/BillingCurrencyAmount"
},
"effectOnBalance": {
"description": "This value will be same as the billing currency amount in event of a Partial Replacement. In Partial replacement the actual billing currency amount will replace the billing currency amount ",
"type": "string"
},
"transactionCurrencyAmount": {
"$ref": "#/$defs/TransactionCurrencyAmount"
}
},
"required": [
"authorizationTransactionId",
"systemTraceAuditNumber",
"type",
"merchantLocalDate",
"messageTypeIndicator",
"billingCurrencyAmount"
]
},
"BillingAmount": {
"properties": {
"billingCurrencyAmount": {
"description": "Specifies the value of the transaction amount which is converted to the cardholder's billling currency, excluding cardholder billing fees.",
"type": "string",
"maxLength": 12
},
"billingCurrencyCode": {
"description": "Specifies the ISO currency code of accounts that was initially set up for billing the transactions",
"type": "string",
"maxLength": 3
}
},
"required": [
"billingCurrencyAmount",
"billingCurrencyCode"
]
},
"BillingCurrencyAmount": {
"properties": {
"amount": {
"description": "Specifies the value of the transaction amount which is converted to the cardholder's billling currency, excluding cardholder billing fees.",
"type": "string",
"maxLength": 12
},
"currencyCode": {
"description": "Specifies the ISO currency code of accounts that was initially set up for billing the transactions",
"type": "string",
"maxLength": 3
},
"currencyCodeAlphabetic": {
"description": "Indicates the currency name of the transaction amount in the issuer’s currency",
"type": "string",
"maxLength": 3
}
},
"required": [
"amount",
"currencyCode",
"currencyCodeAlphabetic"
]
},
"ClearingMerchant": {
"properties": {
"merchantCategoryCode": {
"description": "The category under which the merchant is been assigned by the network",
"type": "string",
"maxLength": 4
},
"mccDescription": {
"description": "The decsription of the category on which merchant has been assigned by the card network",
"type": "string",
"maxLength": 200
},
"merchantId": {
"description": "The ID created for a specific merchant by the card network",
"type": "string",
"maxLength": 50
},
"terminalId": {
"description": "The ID under which the terminal has been categorised",
"type": "string",
"maxLength": 50
},
"merchantName": {
"description": "The merchant name that corresponds to merchant id defined by the card netwrok",
"type": "string",
"maxLength": 200
},
"additionalMerchantName": {
"description": "Alternate Card Acceptor Description Data may provide a local language version of the data using a non-standard character set",
"type": "string",
"maxLength": 200
},
"retrievalReferenceNumber": {
"description": "Specifies the Terminal transaction Number in a number format",
"type": "string",
"maxLength": 50
},
"merchantStreetAddress": {
"description": "Specifies the address of the merchant",
"type": "string",
"maxLength": 200
},
"merchantCity": {
"description": "Merchant city",
"type": "string",
"maxLength": 100
},
"merchantState": {
"description": "Alphabetic code for the Merchant state",
"type": "string",
"maxLength": 3
},
"merchantPostalCode": {
"description": "Postal code for merchant address",
"type": "string",
"maxLength": 50
},
"merchantCountryCode": {
"description": "3 digit country code for the merchant country",
"type": "string",
"maxLength": 3
},
"merchantCountryCodeDescription": {
"description": "Merchant country name",
"type": "string",
"maxLength": 200
},
"transactionCurrencyAmount": {
"$ref": "#/$defs/TransactionCurrencyAmount"
}
},
"required": [
"merchantCategoryCode",
"mccDescription",
"merchantId",
"terminalId",
"merchantName",
"retrievalReferenceNumber",
"merchantStreetAddress",
"merchantCity",
"merchantCountryCode"
]
},
"ClearingTransactionContent": {
"properties": {
"clearingTransactionId": {
"description": "Unique identifier of the transaction",
"type": "string",
"maxLength": 50
},
"clearingType": {
"description": "Specifies the type of transaction whether it is Credit or Debit.If Mastercard returns 'C', then GRACE returns 'Credit'If Mastercard returns 'D', then GRACE returns 'Debit'",
"type": "string",
"maxLength": 6
},
"acquirerReferenceData": {
"description": "Data an acquirer supplies in an acquirer-originated message to an issuer",
"type": "string",
"maxLength": 23
},
"functionCode": {
"description": "Three-digit data element that indicates the specific purpose of a message in a message class.Uniquely identifies all transaction functions the clearing system performs.",
"type": "string",
"maxLength": 3
},
"messageTypeIndicator": {
"description": "Four-digit numeric field describing the type of message being interchanged.<br>Possible values:<ul><li>'1240' - Presentment</li><li>'1442' - Chargeback</li><li>'1644' - Administrative</li><li>'1740' - Fee Collection</li></ul>",
"type": "string",
"maxLength": 4
},
"transactionType": {
"description": "Specifies the type of transaction<br>Possible Values<ul><li>First Presentment</li><li>Second Presentment (Full)</li><li>Second Presentment (Partial)</li><li>First Chargeback (Full)</li><li>Arbitration Chargeback (Full)</li><li>First Chargeback (Partial)</li><li>Arbitration Chargeback (Partial)",
"type": "string",
"maxLength": 50
},
"messageReasonCode": {
"description": "Four-digit data element that indicates the reason for sending a message",
"type": "string",
"maxLength": 4
},
"originalMessageTransactionId": {
"description": "Original transaction ID indicates the transaction ID that was in the original message.",
"type": "string",
"maxLength": 50
},
"transactionExchangeRate": {
"description": "Currency exchange from transaction curency to cardholder billing curency.",
"type": "string",
"minLength": 1,
"maxLength": 7
},
"authorizationCode": {
"description": "Transaction response ID assigned by the authorizing institution for Authorization transactions",
"type": "string",
"maxLength": 50
},
"transactionDateTime": {
"description": "The date and timestamp the transaction ocurred at the card acceptor location.<br>Format<br>ISO Date Time format “yyyy-MM-dd HH:mm:ss”",
"type": "string",
"maxLength": 28
},
"settlementAmount": {
"$ref": "#/$defs/SettlementAmount"
},
"reversalIndicator": {
"description": "Flag which indicates the Reversal of a clearing. Supported values are true if this is a reversal, false otherwise.",
"type": "boolean"
},
"settledIndicator": {
"description": "Flag which indicates whether the transaction is settled or unsettled with an associated cleared transaction record.<br>Possible values: <br>'True' is transaction is settled <br>'False' is transaction is unsettled",
"type": "boolean"
},
"originalOrLinked": {
"description": "Determines if it is an Original or linked transaction.<br>Possible values<br>'O' - Original<br>'L' - Linked",
"type": "string",
"maxLength": 1
},
"settlementDate": {
"description": "Specifies the Settlement date. Represented in ISO Date Time format 'yyyy-MM-dd HH:mm:ss'. Defaults to System Date if not written by Settlement Process in Mastercard Incontrol platfrom.",
"type": "string"
},
"banknetReferenceNumber": {
"description": "Banknet Reference Number is generated by the Authorization Platform for each originating message it routes. The reference number is guaranteed to be a unique value for any transaction within the specified financial network on any processing day.",
"type": "string"
},
"billingCurrencyAmount": {
"$ref": "#/$defs/BillingCurrencyAmount"
},
"authorization": {
"$ref": "#/$defs/Authorization"
},
"virtualCardAccount": {
"$ref": "#/$defs/VirtualCardAccount"
},
"fundingAccount": {
"$ref": "#/$defs/FundingAccount"
},
"merchant": {
"$ref": "#/$defs/Merchant"
},
"virtualCard": {
"$ref": "#/$defs/VirtualCard"
}
},
"required": [
"clearingTransactionId",
"clearingType",
"acquirerReferenceData",
"functionCode",
"messageTypeIndicator",
"transactionType",
"messageReasonCode",
"transactionExchangeRate",
"authorizationCode",
"settlementAmount",
"reversalIndicator",
"settledIndicator",
"originalOrLinked",
"settlementDate",
"banknetReferenceNumber",
"billingCurrencyAmount",
"authorization",
"virtualCard"
]
},
"FundingAccount": {
"properties": {
"accountNumber": {
"description": "Account number of the real card. The value is masked and only last four digits are visible",
"type": "string",
"maxLength": 19
}
},
"required": [
"accountNumber"
]
},
"InControlOnBehalfServiceResult": {
"properties": {
"vcaAuthorizationResponseDetail": {
"description": "Authorization status/reason description from Networks Payment Control<br>MC: 100<br><br>Possbile Values<br><br>Mastercard<br><br>A - Virtual Card Number expiration date does not match<br>B - Virtual Card Number expiration date expired<br>C - Virtual Card Number Virtual CVC 2 does not match<br>D - In Control Validity Period Limit<br>E - In Control Transaction Amount Limit Check<br>F - In Control Cumulative Amount Limit Check<br>G - In Control Transaction Number Usage<br>H - In Control Merchant ID Limit<br>I - In Control Invalid Virtual Card Number Real Card Number mapping relationship<br>J - In Control MCC Limit<br>K - In Control Database Status Bad<br>L - In Control Geographic Restriction<br>M - In Control Transaction Type Restriction<br>P - In Control Transaction Time/Date Restriction<br>U - Unable to process<br>V - Valid (all controls passed)",
"type": "string",
"maxLength": 100
}
},
"required": [
"vcaAuthorizationResponseDetail"
]
},
"Merchant": {
"type": "object",
"oneOf": [
{
"$ref": "#/$defs/AuthMerchant"
},
{
"$ref": "#/$defs/ClearingMerchant"
}
]
},
"NotificationResponse": {
"properties": {
"eventType": {
"description": "The event type for which the client wants the notifications<br>Possible Values:<ul><li>PAYMENT_AUTHORIZATION</li><li>CLEARING</li></ul>",
"type": "string",
"maxLength": 100
},
"subscriptionName": {
"description": "The subscription that created the notification.",
"type": "string",
"maxLength": 50,
"minLength": 1
},
"pushStatus": {
"description": "PENDING: The notification is in the process of being delivered.<br><br>DELIVERED: The service has pushed the notification to the push endpointsuccessfully.<br><br>FAILED: The service s attempts to deliver the notification have failed and nofuture deliveries will be performed. The notification is available via the pullapproach until its retention period expires.",
"type": "string"
},
"createdTimestamp": {
"description": "Indicates the UTC date and time when the notification was created. This does not refer to the time when the event has occurred.",
"type": "string"
},
"transactionContent": {
"$ref": "#/$defs/TransactionContent"
}
}
},
"OriginalMessage": {
"properties": {
"messageTypeIndicator": {
"description": "The data elements in the original message, intended to identify a transaction for correction or reversal.<br>Original Message Type Identifier indicates the Message Type Identifier (MTI) of the original message.<br><br>Possible Values<br>\"0110\" - Authorization Request Response<br>\"0120\" - Authorization Advice<br>\"0400\" - Reversal (full or partial)<br>\"0420\" - Reversal Response (full or partial)",
"type": "string",
"maxLength": 4
},
"transactionId": {
"description": "Original transaction ID indicates the transaction ID that was in the original message.",
"type": "string",
"maxLength": 50
},
"transactionDate": {
"description": "The date of the transaction that was initiated<br><br>YYYY-MM-DD (ISO-8601)",
"type": "string",
"maxLength": 10
},
"transactionTime": {
"description": "The time of the transaction that was initiated<br><br>hh:mm:ss (24 hours format)",
"type": "string",
"maxLength": 8
}
}
},
"PurchaseRequest": {
"properties": {
"vcaId": {
"description": "A reference number that uniquely identifies the virtual card account.",
"type": "string",
"format": "string",
"maxLength": 19
},
"fundingSourceName": {
"description": "Name of the funding source to which the virtual card rolls up.",
"type": "string",
"maxLength": 200
},
"programId": {
"description": "Unique ID of the company record defined in the virtual cards system.",
"type": "string",
"format": "string",
"maxLength": 19
}
},
"required": [
"vcaId",
"fundingSourceName",
"programId"
]
},
"RealCardDetails": {
"properties": {
"accountNumber": {
"description": "Account number of the real card<br>Account number is masked with only the last 4 digits",
"type": "string",
"maxLength": 16
}
},
"required": [
"accountNumber"
]
},
"ReplacementAmounts": {
"properties": {
"transactionCurrencyAmount": {
"description": "Replacement Amounts - corrected transaction amounts for a reversal. Values must be zero or not present for a full reversal, corrected amount for a partial reversal. Indicates the actual transaction amount.<br><br>12, Upto 4 decimal (depends on currency exponent)",
"type": "string",
"format": "string",
"maxLength": 12
},
"settlementCurrencyAmount": {
"description": "Indicates the actual settlement amount in the settlement currency.<br><br>12, Upto 4 decimal (depends on currency exponent)",
"type": "string",
"format": "string",
"maxLength": 12
},
"billingCurrencyAmount": {
"description": "The actual amount in the issuer currency.<br><br>12, Upto 4 decimal (depends on currency exponent)",
"type": "string",
"format": "string",
"maxLength": 12
}
}
},
"SettlementAmount": {
"properties": {
"amount": {
"description": "Specifies the amount of funds to be transferred between the acquirer and the issuer in the settlement currency.",
"type": "string",
"maxLength": 12
},
"currencyCode": {
"description": "Specifies the currency code of funds to be transferred between the acquirer and the issuer.",
"type": "string"
},
"currencyCodeAlphabetic": {
"description": "Specifies the currency name of funds to be transferred between the acquirer and the issuer.",
"type": "string"
}
},
"required": [
"amount",
"currencyCode",
"currencyCodeAlphabetic"
]
},
"TransactionAmount": {
"properties": {
"transactionCurrencyAmount": {
"description": "Specifies the value of the transaction amount in the local currency of the merchant or acquirer of the transaction",
"type": "string",
"maxLength": 12
},
"transactionCurrencyCode": {
"description": "Specifies the ISO currency code of the local currency of the merchant or acquirer of the transaction",
"type": "string",
"maxLength": 3
}
},
"required": [
"transactionCurrencyAmount",
"transactionCurrencyCode"
]
},
"TransactionContent": {
"type": "object",
"oneOf": [
{
"$ref": "#/$defs/ClearingTransactionContent"
},
{
"$ref": "#/$defs/AuthTransactionContent"
}
]
},
"TransactionCurrencyAmount": {
"properties": {
"amount": {
"description": "Specifies the value of the transaction amount in the local currency of the merchant or acquirer of the transaction",
"type": "string",
"maxLength": 12
},
"currencyCode": {
"description": "Specifies the ISO currency code of the local currency of the merchant or acquirer of the transaction",
"type": "string",
"maxLength": 3
},
"currencyCodeAlphabetic": {
"description": "Indicates the currency name local currency of the merchant or acquirer of the transaction",
"type": "string",
"maxLength": 3
}
},
"required": [
"amount",
"currencyCode",
"currencyCodeAlphabetic"
]
},
"VirtualCard": {
"properties": {
"vcaId": {
"description": "A reference number that uniquely identifies the virtual card account. ",
"type": "string",
"maxLength": 19
},
"fundingSourceName": {
"description": "Name of the funding source to which the virtual card rolls up.",
"type": "string",
"maxLength": 200
},
"programId": {
"description": "Unique ID of the company record defined in the virtual cards system.",
"type": "string",
"format": "string",
"maxLength": 19
}
},
"required": [
"vcaId"
]
},
"VirtualCardAccount": {
"properties": {
"virtualCardAccountNumber": {
"description": "The virtual card account number associated to the PAN that was used for the transaction",
"type": "string",
"maxLength": 19
}
},
"required": [
"virtualCardAccountNumber"
]
},
"VirtualCardDetails": {
"properties": {
"virtualCardAccountNumber": {
"description": "The virtual card account number associated to the PAN that was used for the transaction<br>Mastercard: The virtual card account number is masked with only the last 4 digits <br><br>Max legnth - MC :19",
"type": "string",
"maxLength": 19
}
},
"required": [
"virtualCardAccountNumber"
]
}
}
}
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/citi-transaction-response"
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.