Show JSON
{
"protocolVersion": "0.3",
"name": "Claix",
"description": "Claix turns unstructured documents into typed JSON and queryable memory for AI agents. Extract PDF, Excel, Word, images, and text; ask persisted documents by document_id; reason across a knowledge space with space_id.",
"author": "Claix",
"wellKnownURI": "https://claix.dev/.well-known/agent.json",
"url": "https://www.claix.dev/a2a",
"version": "1.0.0",
"provider": {
"organization": "Claix",
"url": "https://www.claix.dev/"
},
"documentationUrl": "https://www.claix.dev/documentation",
"iconUrl": "https://www.claix.dev/claix-logo.png",
"supportsAuthenticatedExtendedCard": false,
"security": [
{
"apiKey": []
}
],
"securitySchemes": {
"apiKey": {
"in": "header",
"name": "x-api-key",
"type": "apiKey",
"description": "Claix API key (same as the REST API)."
}
},
"capabilities": {
"streaming": false,
"pushNotifications": true,
"stateTransitionHistory": false,
"extensions": [
{
"uri": "https://claix.dev/a2a/extensions/openapi-skills",
"params": {
"extract-doc": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional. Knowledge space UUID to attach the persisted document when window_context is enabled."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the document to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "b980cfe7-61ef-4a5a-9724-881c8a5541e2",
"description": "UUID of a doc-json schema for this account."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded document (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/doc-json",
"openApiMethod": "POST",
"openApiOperationId": "docToJson"
},
"extract-img": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional. Knowledge space UUID to attach the persisted document when window_context is enabled."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the image to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f",
"description": "UUID of an img-json schema for this account."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded image (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/img-json",
"openApiMethod": "POST",
"openApiOperationId": "imgToJson"
},
"extract-pdf": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional. Knowledge space UUID to attach the persisted document when window_context is enabled."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the PDF to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f",
"description": "UUID of a pdf-json schema for this account."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded PDF (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/pdf-json",
"openApiMethod": "POST",
"openApiOperationId": "pdfToJson"
},
"extract-txt": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"content",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"content": {
"type": "string",
"example": "<html><body><h1>Factura F-2026-00456</h1></body></html>",
"description": "Plain text, HTML, or XML string to extract from."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional. Knowledge space UUID to attach the persisted document when window_context is enabled."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "b980cfe7-61ef-4a5a-9724-881c8a5541e2",
"description": "UUID of a txt-json schema for this account."
}
},
"additionalProperties": true
},
"openApiPath": "/txt-json",
"openApiMethod": "POST",
"openApiOperationId": "txtToJson"
},
"query-space": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"space_id",
"questions"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"space_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the knowledge space (path parameter)."
},
"questions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 400,
"minLength": 1
},
"example": [
"¿Qué proveedor factura más en total sumando todas las facturas?",
"¿Hay algún contrato cuyo importe no coincida con su factura?"
],
"maxItems": 5,
"minItems": 1,
"description": "Array of 1–5 question strings (max 400 characters each). Do not include space_id in the question text."
}
},
"additionalProperties": true
},
"openApiPath": "/space-context/{space_id}",
"openApiMethod": "POST",
"openApiOperationId": "spaceContextAsk"
},
"create-space": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"name"
],
"properties": {
"name": {
"type": "string",
"example": "Proveedores 2026",
"maxLength": 200,
"minLength": 1,
"description": "Display name of the knowledge space (max 200 characters)."
},
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
}
},
"additionalProperties": true
},
"openApiPath": "/create-space",
"openApiMethod": "POST",
"openApiOperationId": "createSpace"
},
"delete-space": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"space_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"space_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the knowledge space to delete (path parameter)."
}
},
"additionalProperties": true
},
"openApiPath": "/delete-space/{space_id}",
"openApiMethod": "DELETE",
"openApiOperationId": "deleteSpace"
},
"get-document": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"document_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"document_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the persisted document (path parameter)."
}
},
"additionalProperties": true
},
"openApiPath": "/get-document/{document_id}",
"openApiMethod": "GET",
"openApiOperationId": "getDocument"
},
"list-schemas": {
"inputSchema": {
"type": "object",
"required": [
"skill"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
}
},
"additionalProperties": true
},
"openApiPath": "/schemas",
"openApiMethod": "GET",
"openApiOperationId": "listSchemas"
},
"create-schema": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"name",
"type",
"schema_definition"
],
"properties": {
"name": {
"type": "string",
"example": "DNI cliente",
"maxLength": 200,
"description": "Visible schema name (max 200 characters)."
},
"type": {
"enum": [
"excel-json",
"json-excel",
"pdf-json",
"doc-json",
"img-json",
"txt-json"
],
"type": "string",
"example": "img-json",
"description": "Conversion type: excel-json, json-excel, pdf-json, doc-json, img-json, or txt-json."
},
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"window_time": {
"oneOf": [
{
"enum": [
5,
10,
15,
30,
45,
60,
90,
120,
180,
240,
360,
480,
720,
1440,
0
],
"type": "number"
},
{
"enum": [
"infinity"
],
"type": "string"
}
],
"example": null,
"nullable": true,
"description": "Required when window_context is true. Minutes: 5–1440, or 0 / \"infinity\" for no expiry."
},
"is_agent_mode": {
"type": "boolean",
"example": true,
"description": "When true, Agent Mode is enabled and agent_definition is required."
},
"resumen_agent": {
"type": "string",
"nullable": true,
"maxLength": 500,
"description": "Optional instruction for the Agent Mode reasoning phase (max 500 chars)."
},
"window_context": {
"type": "boolean",
"example": false,
"description": "When true, extractions persist a queryable document context window."
},
"agent_definition": {
"type": "object",
"description": "Agent Mode field definitions (boolean, string, closed, integer). Required when is_agent_mode is true.",
"additionalProperties": {
"$ref": "#/components/schemas/AgentFieldDefinition"
}
},
"schema_definition": {
"type": "object",
"description": "Object whose keys are output property names; each value has type and description.",
"additionalProperties": {
"$ref": "#/components/schemas/SchemaFieldDefinition"
}
}
},
"additionalProperties": true
},
"openApiPath": "/create-schema",
"openApiMethod": "POST",
"openApiOperationId": "createSchema"
},
"delete-schema": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "b980cfe7-61ef-4a5a-9724-881c8a5541e2",
"description": "UUID of the schema to delete."
}
},
"additionalProperties": true
},
"openApiPath": "/delete-schema",
"openApiMethod": "POST",
"openApiOperationId": "deleteSchema"
},
"extract-excel": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional. Knowledge space UUID to attach the persisted document when window_context is enabled on the schema."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the .xlsx or .csv file to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "8f14e45f-ceea-4e6f-8b23-1e2d3c4b5a6f",
"description": "UUID of an excel-json schema previously created for this account."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded .xlsx or .csv (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/excel-json",
"openApiMethod": "POST",
"openApiOperationId": "excelToJson"
},
"query-document": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"document_id",
"questions"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"questions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 400,
"minLength": 1
},
"example": [
"¿Cuál es la penalización exacta por cancelación anticipada?",
"¿Qué empresa figura como arrendataria y cuál es su CIF?"
],
"maxItems": 5,
"minItems": 1,
"description": "Array of 1–5 question strings (max 400 characters each). Do not include document_id in the question text."
},
"document_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the persisted document (path parameter)."
}
},
"additionalProperties": true
},
"openApiPath": "/document-context/{document_id}",
"openApiMethod": "POST",
"openApiOperationId": "documentContextAsk"
},
"delete-document": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"document_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"document_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the document to delete (path parameter)."
}
},
"additionalProperties": true
},
"openApiPath": "/delete-document/{document_id}",
"openApiMethod": "DELETE",
"openApiOperationId": "deleteDocument"
},
"agent-extract-doc": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional knowledge space UUID when window_context is enabled."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the document to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "b980cfe7-61ef-4a5a-9724-881c8a5541e2",
"description": "UUID of an agent-mode doc-json schema."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded document (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/agent/doc-json",
"openApiMethod": "POST",
"openApiOperationId": "agentDocToJson"
},
"agent-extract-img": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional knowledge space UUID when window_context is enabled."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the image to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f",
"description": "UUID of an agent-mode img-json schema."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded image (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/agent/img-json",
"openApiMethod": "POST",
"openApiOperationId": "agentImgToJson"
},
"agent-extract-pdf": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional knowledge space UUID when window_context is enabled."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the PDF to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f",
"description": "UUID of an agent-mode pdf-json schema."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded PDF (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/agent/pdf-json",
"openApiMethod": "POST",
"openApiOperationId": "agentPdfToJson"
},
"agent-extract-txt": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"content",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"content": {
"type": "string",
"example": "<html><body><h1>Factura F-2026-00456</h1></body></html>",
"description": "Plain text, HTML, or XML string to extract from."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional knowledge space UUID when window_context is enabled."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "b980cfe7-61ef-4a5a-9724-881c8a5541e2",
"description": "UUID of an agent-mode txt-json schema."
}
},
"additionalProperties": true
},
"openApiPath": "/agent/txt-json",
"openApiMethod": "POST",
"openApiOperationId": "agentTxtToJson"
},
"agent-extract-excel": {
"inputSchema": {
"type": "object",
"required": [
"skill",
"schema_id"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"filename": {
"type": "string",
"description": "Original filename with extension."
},
"space_id": {
"type": "string",
"format": "uuid",
"example": "5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c",
"description": "Optional knowledge space UUID when window_context is enabled."
},
"file_path": {
"type": "string",
"format": "uri",
"description": "Public https URL of the file to download."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "8f14e45f-ceea-4e6f-8b23-1e2d3c4b5a6f",
"description": "UUID of an agent-mode excel-json schema."
},
"file_base64": {
"type": "string",
"description": "Base64-encoded .xlsx or .csv (or data URL)."
}
},
"additionalProperties": true
},
"openApiPath": "/agent/excel-json",
"openApiMethod": "POST",
"openApiOperationId": "agentExcelToJson"
},
"convert-json-to-excel": {
"inputSchema": {
"type": "object",
"required": [
"skill"
],
"properties": {
"skill": {
"type": "string",
"description": "Skill identifier matching the Agent Card skill id."
},
"schema_id": {
"type": "string",
"format": "uuid",
"example": "1f9e6103-9221-4c22-8a3a-8592d8b0eb38",
"description": "UUID of a json-excel schema for this account."
}
},
"additionalProperties": true
},
"openApiPath": "/json-excel",
"openApiMethod": "POST",
"openApiOperationId": "jsonToExcel"
}
},
"required": false,
"description": "JSON Schema of each skill's input, generated from public/openapi.yaml. Binary file fields are exposed as file_base64/file_path for A2A DataParts."
}
]
},
"defaultInputModes": [
"application/json",
"text/plain"
],
"defaultOutputModes": [
"application/json",
"text/plain"
],
"skills": [
{
"id": "extract-excel",
"name": "Convert an Excel or CSV file to JSON using a schema",
"description": "Convert an Excel or CSV file to JSON using a schema. Accepts an .xlsx or .csv file and a schema_id, and returns transformed JSON whose keys match the schema properties exactly. If the workbook has multiple sheets, only the first sheet is processed. Max file size follows the REST /excel-json limits. A2A skill id: extract-excel. REST: POST /excel-json. JSON DataPart must include \"skill\": \"extract-excel\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. multipart/form-data equivalent: schema_id + file_base64 or file_path in the DataPart JSON. Optional space_id groups the persisted document. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"extract",
"excel",
"csv",
"json"
],
"examples": [
"{\"skill\":\"extract-excel\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "convert-json-to-excel",
"name": "Convert JSON documents to an Excel file",
"description": "Convert JSON documents to an Excel file. Accepts JSON data and a schema_id, and returns a binary .xlsx whose columns follow the schema order and names. In A2A send schema_id plus data (array or object). Aliases records and json_data are normalized to data. A2A skill id: convert-json-to-excel. REST: POST /json-excel. JSON DataPart must include \"skill\": \"convert-json-to-excel\". Required A2A parameters: skill. Body JSON fields: schema_id, data. JSON body: schema_id (required) and data (array or object). Aliases records/json_data also map to data. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"convert",
"excel",
"json"
],
"examples": [
"{\"skill\":\"convert-json-to-excel\",\"schema_id\":\"<uuid>\",\"data\":[{}]}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "extract-pdf",
"name": "Extract structured data from a PDF using a schema",
"description": "Extract structured data from a PDF using a schema. Accepts a .pdf (selectable text or scanned) and a schema_id, and returns a single JSON object for the whole document. Response data always contains exactly one record. Max file size: 15 MB. A2A skill id: extract-pdf. REST: POST /pdf-json. JSON DataPart must include \"skill\": \"extract-pdf\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. schema_id + file_base64 or file_path in the DataPart JSON. Optional space_id. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"extract",
"pdf",
"json"
],
"examples": [
"{\"skill\":\"extract-pdf\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "extract-doc",
"name": "Extract structured data from a text document using a schema",
"description": "Extract structured data from a text document using a schema. Accepts .docx, .txt, .md, or .rtf plus a schema_id, and returns a single JSON object for the whole document. Legacy .doc (Word 97-2003) is not supported. Max file size: 10 MB; extracted text max 300,000 characters. A2A skill id: extract-doc. REST: POST /doc-json. JSON DataPart must include \"skill\": \"extract-doc\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. schema_id + file_base64 or file_path (.docx, .txt, .md, .rtf). Optional space_id. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"extract",
"docx",
"json"
],
"examples": [
"{\"skill\":\"extract-doc\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "extract-img",
"name": "Extract structured data from an image using a schema",
"description": "Extract structured data from an image using a schema. Accepts .jpeg, .jpg, .png, .webp, .heic, or .heif plus a schema_id, and returns a single JSON object from the visible content. Unreadable images return HTTP 422. Max file size: 15 MB. A2A skill id: extract-img. REST: POST /img-json. JSON DataPart must include \"skill\": \"extract-img\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. schema_id + file_base64 or file_path (.jpeg, .png, .webp, .heic). Optional space_id. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"extract",
"image",
"json"
],
"examples": [
"{\"skill\":\"extract-img\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "extract-txt",
"name": "Extract structured data from plain text, HTML, or XML using a schema",
"description": "Extract structured data from plain text, HTML, or XML using a schema. Accepts a content string (plain text, HTML, or XML) and a txt-json schema_id. No file upload. Max 300,000 characters. A2A skill id: extract-txt. REST: POST /txt-json. JSON DataPart must include \"skill\": \"extract-txt\". Required A2A parameters: skill, content, schema_id. Form/DataPart fields: schema_id, content, space_id. schema_id + content (plain text/HTML/XML string, not a file). Optional space_id. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"extract",
"text",
"html",
"xml"
],
"examples": [
"{\"skill\":\"extract-txt\",\"schema_id\":\"<uuid>\",\"content\":\"<text>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get-document",
"name": "Return the raw content of a persisted document",
"description": "Return the raw content of a persisted document. Read-only. document_id is a path parameter only (no body). Returns markdown/text and metadata for a document created by an extraction with window_context enabled. Free call. A2A skill id: get-document. REST: GET /get-document/{document_id}. JSON DataPart must include \"skill\": \"get-document\". Required A2A parameters: skill, document_id. Path params: document_id. document_id is a path parameter only. No body and no questions. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"context",
"document"
],
"examples": [
"{\"skill\":\"get-document\",\"document_id\":\"<uuid>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "query-document",
"name": "Answer questions about a persisted document",
"description": "Answer questions about a persisted document. document_id goes in the URL path. questions (1–5 strings, max 400 chars each) go in the JSON body only — never embed document_id inside a question. Returns { user_ask, ia_response } aligned 1:1; ia_response items are null when the answer is not in the document. A2A skill id: query-document. REST: POST /document-context/{document_id}. JSON DataPart must include \"skill\": \"query-document\". Required A2A parameters: skill, document_id, questions. Path params: document_id. Body JSON fields: questions. document_id goes in the URL path. questions[] (1–5 strings, max 400 chars each) goes in the JSON body only — never inside the question text. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"context",
"qa",
"document"
],
"examples": [
"{\"skill\":\"query-document\",\"document_id\":\"<uuid>\",\"questions\":[\"What is the total?\"]}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "query-space",
"name": "Answer questions across every document in a knowledge space",
"description": "Answer questions across every document in a knowledge space. space_id goes in the URL path. questions (1–5 strings, max 400 chars each) go in the JSON body only — never embed space_id inside a question. Cross-references up to 50 active documents in the space. Returns { user_ask, ia_response }; null means no evidence in any document. A2A skill id: query-space. REST: POST /space-context/{space_id}. JSON DataPart must include \"skill\": \"query-space\". Required A2A parameters: skill, space_id, questions. Path params: space_id. Body JSON fields: questions. space_id goes in the URL path. questions[] (1–5 strings, max 400 chars each) goes in the JSON body only — never inside the question text. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"context",
"qa",
"space"
],
"examples": [
"{\"skill\":\"query-space\",\"space_id\":\"<uuid>\",\"questions\":[\"Compare notice periods\"]}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "create-space",
"name": "Create a knowledge space for the API key account",
"description": "Create a knowledge space for the API key account. Creates an empty knowledge space. Required JSON body field: name (max 200 chars). Returns space_id for use as optional space_id on extractions and for query-space. Free call. A2A skill id: create-space. REST: POST /create-space. JSON DataPart must include \"skill\": \"create-space\". Required A2A parameters: skill, name. Body JSON fields: name. JSON body with name (string, max 200 chars). Returns space_id. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"spaces"
],
"examples": [
"{\"skill\":\"create-space\",\"name\":\"Acme invoices\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "delete-space",
"name": "Delete a knowledge space",
"description": "Delete a knowledge space. space_id is a path parameter only (no body). Deletes the space owned by the API key account. Free call. A2A skill id: delete-space. REST: DELETE /delete-space/{space_id}. JSON DataPart must include \"skill\": \"delete-space\". Required A2A parameters: skill, space_id. Path params: space_id. space_id is a path parameter only. No body. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"spaces"
],
"examples": [
"{\"skill\":\"delete-space\",\"space_id\":\"<uuid>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "delete-document",
"name": "Delete a persisted document",
"description": "Delete a persisted document. document_id is a path parameter only (no body). Deletes the document owned by the API key account. Free call. A2A skill id: delete-document. REST: DELETE /delete-document/{document_id}. JSON DataPart must include \"skill\": \"delete-document\". Required A2A parameters: skill, document_id. Path params: document_id. document_id is a path parameter only. No body. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"context",
"document"
],
"examples": [
"{\"skill\":\"delete-document\",\"document_id\":\"<uuid>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "agent-extract-excel",
"name": "Excel/CSV to JSON with Agent Mode reasoning",
"description": "Excel/CSV to JSON with Agent Mode reasoning. Same inputs as extract-excel, but the schema must have is_agent_mode enabled. Returns extraction data plus agent_data from agent_definition. A2A skill id: agent-extract-excel. REST: POST /agent/excel-json. JSON DataPart must include \"skill\": \"agent-extract-excel\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. Same as extract-excel but schema must have is_agent_mode. schema_id + file_base64 or file_path. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"agent",
"excel"
],
"examples": [
"{\"skill\":\"agent-extract-excel\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "agent-extract-pdf",
"name": "PDF to JSON with Agent Mode reasoning",
"description": "PDF to JSON with Agent Mode reasoning. Same inputs as extract-pdf, but the schema must have is_agent_mode enabled. Returns data[] plus typed agent_data. Max PDF size: 15 MB. A2A skill id: agent-extract-pdf. REST: POST /agent/pdf-json. JSON DataPart must include \"skill\": \"agent-extract-pdf\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. Same as extract-pdf but schema must have is_agent_mode. schema_id + file_base64 or file_path. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"agent",
"pdf"
],
"examples": [
"{\"skill\":\"agent-extract-pdf\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "agent-extract-doc",
"name": "Document to JSON with Agent Mode reasoning",
"description": "Document to JSON with Agent Mode reasoning. Same inputs as extract-doc, but the schema must have is_agent_mode enabled. Formats: .docx, .txt, .md, .rtf. A2A skill id: agent-extract-doc. REST: POST /agent/doc-json. JSON DataPart must include \"skill\": \"agent-extract-doc\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. Same as extract-doc but schema must have is_agent_mode. schema_id + file_base64 or file_path. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"agent",
"docx"
],
"examples": [
"{\"skill\":\"agent-extract-doc\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "agent-extract-img",
"name": "Image to JSON with Agent Mode reasoning",
"description": "Image to JSON with Agent Mode reasoning. Same inputs as extract-img, but the schema must have is_agent_mode enabled. Formats: JPEG, PNG, WebP, HEIC/HEIF. A2A skill id: agent-extract-img. REST: POST /agent/img-json. JSON DataPart must include \"skill\": \"agent-extract-img\". Required A2A parameters: skill, schema_id. Form/DataPart fields: schema_id, file_base64, file_path, filename, space_id. Same as extract-img but schema must have is_agent_mode. schema_id + file_base64 or file_path. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"agent",
"image"
],
"examples": [
"{\"skill\":\"agent-extract-img\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "agent-extract-txt",
"name": "Text/HTML/XML to JSON with Agent Mode reasoning",
"description": "Text/HTML/XML to JSON with Agent Mode reasoning. Same inputs as extract-txt, but the schema must have is_agent_mode enabled. content string + schema_id; returns data[] and agent_data. A2A skill id: agent-extract-txt. REST: POST /agent/txt-json. JSON DataPart must include \"skill\": \"agent-extract-txt\". Required A2A parameters: skill, content, schema_id. Form/DataPart fields: schema_id, content, space_id. Same as extract-txt but schema must have is_agent_mode. schema_id + content string. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"agent",
"text"
],
"examples": [
"{\"skill\":\"agent-extract-txt\",\"schema_id\":\"<uuid>\",\"content\":\"<text>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "list-schemas",
"name": "List every schema for the API key account",
"description": "List every schema for the API key account. No parameters. Returns all schemas owned by the API key account (id, name, type, definition), newest first. Free call. A2A skill id: list-schemas. REST: GET /schemas. JSON DataPart must include \"skill\": \"list-schemas\". Required A2A parameters: skill. No parameters. Returns every schema in the account. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"schemas"
],
"examples": [
"{\"skill\":\"list-schemas\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "create-schema",
"name": "Create a schema for the API key account",
"description": "Create a schema for the API key account. JSON body: name, type (excel-json | json-excel | pdf-json | doc-json | img-json | txt-json), and schema_definition (object). Optional is_agent_mode, agent_definition, resumen_agent, window_context, window_time. Free call. A2A skill id: create-schema. REST: POST /create-schema. JSON DataPart must include \"skill\": \"create-schema\". Required A2A parameters: skill, name, type, schema_definition. Body JSON fields: name, type, schema_definition, is_agent_mode, agent_definition, resumen_agent, window_context, window_time. JSON body: name, type (excel-json|pdf-json|doc-json|img-json|txt-json|json-excel), schema_definition (object). Optional is_agent_mode, agent_definition, window_context, window_time. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"schemas"
],
"examples": [
"{\"skill\":\"create-schema\",\"name\":\"Invoice\",\"type\":\"pdf-json\",\"schema_definition\":{}}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "delete-schema",
"name": "Delete a schema from the API key account",
"description": "Delete a schema from the API key account. JSON body with schema_id (UUID). Deletes the schema if it belongs to the API key account. Free call. A2A skill id: delete-schema. REST: POST /delete-schema. JSON DataPart must include \"skill\": \"delete-schema\". Required A2A parameters: skill, schema_id. Body JSON fields: schema_id. JSON body with schema_id (UUID). Query ?schema_id= also accepted by REST. Use snake_case names exactly. OpenAPI multipart `file` → file_base64 or file_path in A2A JSON.",
"tags": [
"schemas"
],
"examples": [
"{\"skill\":\"delete-schema\",\"schema_id\":\"<uuid>\"}"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/plain"
]
}
],
"conformance": true,
"conformance_errors": null,
"homepage": null,
"repository": null,
"license": null,
"pricing": null,
"contact": null,
"id": "900d4d12-f8e3-4512-ab85-aac98fde7da8"
}