Properties
| Name | Type | Description |
|---|---|---|
| changes | array | Contains a single entry that communicates which record has changed and the manner in which it changed. |
| dataType | object | The type of data being pushed, eg invoices, customers. |
| companyId | object | |
| pushOperationKey | string | A unique identifier generated by Codat to represent this single push operation. This identifier can be used to track the status of the push, and should be persisted. |
| dataConnectionKey | object | |
| requestedOnUtc | object | The datetime when the push was requested. |
| completedOnUtc | object | The datetime when the push was completed, null if Pending. |
| timeoutInMinutes | integer | Number of minutes the push operation must complete within before it times out. |
| timeoutInSeconds | integer | Number of seconds the push operation must complete within before it times out. |
| status | object | |
| errorMessage | string | A message about the error. |
| validation | object | |
| statusCode | integer | Push status code. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/PushOperation",
"title": "Push operation",
"type": "object",
"x-internal": true,
"properties": {
"changes": {
"type": "array",
"nullable": true,
"description": "Contains a single entry that communicates which record has changed and the manner in which it changed. ",
"items": {
"$ref": "#/components/schemas/PushOperation/definitions/pushOperationChange"
}
},
"dataType": {
"$ref": "#/components/schemas/DataType",
"description": "The type of data being pushed, eg invoices, customers."
},
"companyId": {
"$ref": "#/components/parameters/companyId/schema"
},
"pushOperationKey": {
"type": "string",
"format": "uuid",
"description": "A unique identifier generated by Codat to represent this single push operation. This identifier can be used to track the status of the push, and should be persisted."
},
"dataConnectionKey": {
"$ref": "#/components/parameters/connectionId/schema"
},
"requestedOnUtc": {
"$ref": "#/components/schemas/DateTime",
"description": "The datetime when the push was requested."
},
"completedOnUtc": {
"$ref": "#/components/schemas/DateTime",
"description": "The datetime when the push was completed, null if Pending."
},
"timeoutInMinutes": {
"type": "integer",
"format": "int32",
"nullable": true,
"description": "Number of minutes the push operation must complete within before it times out."
},
"timeoutInSeconds": {
"type": "integer",
"format": "int32",
"nullable": true,
"deprecated": true,
"description": "Number of seconds the push operation must complete within before it times out."
},
"status": {
"$ref": "#/components/schemas/PushOperation/definitions/pushOperationStatus"
},
"errorMessage": {
"type": "string",
"nullable": true,
"description": "A message about the error."
},
"validation": {
"$ref": "#/components/schemas/PushOperation/definitions/validation"
},
"statusCode": {
"type": "integer",
"description": "Push status code."
}
},
"required": [
"companyId",
"pushOperationKey",
"dataConnectionKey",
"requestedOnUtc",
"status",
"statusCode"
],
"definitions": {
"validation": {
"type": "object",
"title": "Validation",
"description": "A human-readable object describing validation decisions Codat has made when pushing data into the platform. If a push has failed because of validation errors, they will be detailed here.",
"properties": {
"errors": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/PushOperation/definitions/validationItem"
}
},
"warnings": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/PushOperation/definitions/validationItem"
}
}
}
},
"validationItem": {
"title": "Validation item",
"type": "object",
"properties": {
"itemId": {
"type": "string",
"nullable": true,
"description": "Unique identifier for a validation item."
},
"message": {
"type": "string",
"nullable": true,
"description": "A message outlining validation item's issue."
},
"validatorName": {
"type": "string",
"nullable": true,
"description": "Name of validator."
}
},
"additionalProperties": false
},
"pushChangeType": {
"title": "Push change type",
"description": "Type of change being applied to record in third party platform.",
"type": "string",
"enum": [
"Unknown",
"Created",
"Modified",
"Deleted",
"AttachmentUploaded"
]
},
"pushOperationRef": {
"title": "Push operation reference",
"x-internal": true,
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for a push operation."
},
"dataType": {
"$ref": "#/components/schemas/DataType",
"nullable": true
}
},
"additionalProperties": false
},
"pushOperationStatus": {
"title": "Push operation status",
"type": "string",
"enum": [
"Pending",
"Failed",
"Success",
"TimedOut"
],
"description": "The current status of the push operation."
},
"pushOperationChange": {
"type": "object",
"properties": {
"type": {
"$ref": "#/components/schemas/PushOperation/definitions/pushChangeType"
},
"recordRef": {
"$ref": "#/components/schemas/PushOperation/definitions/pushOperationRef"
},
"attachmentId": {
"type": "string",
"description": "Unique identifier for the attachment created otherwise null.",
"nullable": true
}
}
}
}
}
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/codat-pushoperation"
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.