{"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.","version":"1.0.0","url":"https://www.claix.dev/a2a","preferredTransport":"JSONRPC","protocolVersion":"0.3","capabilities":{"streaming":false,"pushNotifications":true,"extensions":[{"uri":"https://claix.dev/a2a/extensions/openapi-skills","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.","required":false,"params":{"extract-excel":{"openApiOperationId":"excelToJson","openApiPath":"/excel-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"Excel/CSV a JSON\".\n","example":"8f14e45f-ceea-4e6f-8b23-1e2d3c4b5a6f"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"convert-json-to-excel":{"openApiOperationId":"jsonToExcel","openApiPath":"/json-excel","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"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 del schema a utilizar. Alternativa a incluirlo en el cuerpo JSON (solo aplica cuando se usa application/json puro sin sobre).\n"}}}},"extract-pdf":{"openApiOperationId":"pdfToJson","openApiPath":"/pdf-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"PDF a JSON\".\n","example":"3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"extract-doc":{"openApiOperationId":"docToJson","openApiPath":"/doc-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"Documento a JSON\".\n","example":"b980cfe7-61ef-4a5a-9724-881c8a5541e2"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"extract-img":{"openApiOperationId":"imgToJson","openApiPath":"/img-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"Imagen a JSON\".\n","example":"3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"extract-txt":{"openApiOperationId":"txtToJson","openApiPath":"/txt-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","content","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"content":{"type":"string","description":"Texto plano, HTML o XML ya procesado. No es un archivo. Máximo 300.000 caracteres.\n","example":"<html><body><h1>Factura F-2026-00456</h1></body></html>"},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo txt-json.\n","example":"b980cfe7-61ef-4a5a-9724-881c8a5541e2"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"get-document":{"openApiOperationId":"getDocument","openApiPath":"/get-document/{document_id}","openApiMethod":"GET","inputSchema":{"type":"object","additionalProperties":true,"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 del documento persistido en documents."}}}},"query-document":{"openApiOperationId":"documentContextAsk","openApiPath":"/document-context/{document_id}","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","document_id","questions"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"document_id":{"type":"string","format":"uuid","description":"UUID del documento persistido en documents."},"questions":{"type":"array","minItems":1,"maxItems":5,"items":{"type":"string","minLength":1,"maxLength":400},"description":"Preguntas a responder usando solo el markdown persistido. Máximo 5 por turno, 400 caracteres cada una.\n","example":["¿Cuál es la penalización exacta por cancelación anticipada?","¿Qué empresa figura como arrendataria y cuál es su CIF?"]}}}},"query-space":{"openApiOperationId":"spaceContextAsk","openApiPath":"/space-context/{space_id}","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"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 del espacio de conocimiento en espacios_conocimiento. Es el mismo valor que se envía como `space_id` opcional en los endpoints de extracción para agrupar el documento en ese espacio.\n"},"questions":{"type":"array","minItems":1,"maxItems":5,"items":{"type":"string","minLength":1,"maxLength":400},"description":"Preguntas a responder usando solo el markdown persistido de los documentos del espacio. Mismo formato y mismos límites que document-context: máximo 5 por turno, 400 caracteres cada una.\n","example":["¿Qué proveedor factura más en total sumando todas las facturas?","¿Hay algún contrato cuyo importe no coincida con su factura?"]}}}},"create-space":{"openApiOperationId":"createSpace","openApiPath":"/create-space","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","name"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"name":{"type":"string","minLength":1,"maxLength":200,"description":"Nombre del espacio de conocimiento. Es el único campo de entrada. Máximo 200 caracteres.\n","example":"Proveedores 2026"}}}},"delete-space":{"openApiOperationId":"deleteSpace","openApiPath":"/delete-space/{space_id}","openApiMethod":"DELETE","inputSchema":{"type":"object","additionalProperties":true,"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 del espacio de conocimiento a eliminar, el que devolvió POST /create-space.\n"}}}},"delete-document":{"openApiOperationId":"deleteDocument","openApiPath":"/delete-document/{document_id}","openApiMethod":"DELETE","inputSchema":{"type":"object","additionalProperties":true,"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 del documento persistido en documents."}}}},"agent-extract-excel":{"openApiOperationId":"agentExcelToJson","openApiPath":"/agent/excel-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"Excel/CSV a JSON\".\n","example":"8f14e45f-ceea-4e6f-8b23-1e2d3c4b5a6f"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"agent-extract-pdf":{"openApiOperationId":"agentPdfToJson","openApiPath":"/agent/pdf-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"PDF a JSON\".\n","example":"3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"agent-extract-doc":{"openApiOperationId":"agentDocToJson","openApiPath":"/agent/doc-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"Documento a JSON\".\n","example":"b980cfe7-61ef-4a5a-9724-881c8a5541e2"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"agent-extract-img":{"openApiOperationId":"agentImgToJson","openApiPath":"/agent/img-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"file_base64":{"type":"string","description":"Base64-encoded file (or data URL). A2A JSON equivalent of OpenAPI multipart `file`."},"file_path":{"type":"string","format":"uri","description":"Public https URL of the file to download."},"filename":{"type":"string","description":"Original filename with extension."},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo \"Imagen a JSON\".\n","example":"3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"agent-extract-txt":{"openApiOperationId":"agentTxtToJson","openApiPath":"/agent/txt-json","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","content","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"content":{"type":"string","description":"Texto plano, HTML o XML ya procesado. No es un archivo. Máximo 300.000 caracteres.\n","example":"<html><body><h1>Factura F-2026-00456</h1></body></html>"},"schema_id":{"type":"string","format":"uuid","description":"Identificador del schema (previamente creado) de tipo txt-json.\n","example":"b980cfe7-61ef-4a5a-9724-881c8a5541e2"},"space_id":{"type":"string","format":"uuid","description":"Opcional. Espacio de conocimiento al que se asocia el documento guardado. Debe pertenecer al mismo usuario dueño de la API key. Solo tiene efecto cuando el schema tiene la ventana de contexto activada, que es cuando el documento se guarda.\n","example":"5b9e2c14-7d3a-4f8b-9e1c-6a0d4b8f2e7c"}}}},"list-schemas":{"openApiOperationId":"listSchemas","openApiPath":"/schemas","openApiMethod":"GET","inputSchema":{"type":"object","additionalProperties":true,"required":["skill"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."}}}},"create-schema":{"openApiOperationId":"createSchema","openApiPath":"/create-schema","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","name","type","schema_definition"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"name":{"type":"string","maxLength":200,"description":"Nombre visible del schema.","example":"DNI cliente"},"type":{"type":"string","enum":["excel-json","json-excel","pdf-json","doc-json","img-json","txt-json"],"description":"Tipo de conversión para el que se usará este schema.","example":"img-json"},"schema_definition":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SchemaFieldDefinition"},"description":"Campos a extraer. Cada clave es el nombre de la propiedad JSON resultante; cada valor tiene type (string, integer, number o boolean) y description.\n"},"is_agent_mode":{"type":"boolean","description":"Activa el Modo Agente. Si omites este campo pero envías agent_definition, se asume true.\n","example":true},"agent_definition":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentFieldDefinition"},"description":"Obligatorio si is_agent_mode es true. Cada clave es el nombre del campo en agent_data. Types: boolean, string, closed, integer. Si type es closed, options es obligatorio.\n"},"resumen_agent":{"type":"string","maxLength":500,"nullable":true,"description":"Instrucción opcional para la fase de razonamiento."},"window_context":{"type":"boolean","description":"Activa la ventana temporal de contexto. Por defecto false.\n","example":false},"window_time":{"oneOf":[{"type":"number","enum":[5,10,15,30,45,60,90,120,180,240,360,480,720,1440,0]},{"type":"string","enum":["infinity"]}],"nullable":true,"description":"Obligatorio si window_context es true. Duración en minutos. Valores admitidos: 5, 10, 15, 30, 45, 60, 90, 120, 180, 240, 360, 480, 720, 1440. También puedes enviar 0 o la cadena `infinity` para ventana sin caducidad; requiere modo persistente activo en la cuenta. Se persiste como window_time 0.\n","example":null}}}},"delete-schema":{"openApiOperationId":"deleteSchema","openApiPath":"/delete-schema","openApiMethod":"POST","inputSchema":{"type":"object","additionalProperties":true,"required":["skill","schema_id"],"properties":{"skill":{"type":"string","description":"Skill identifier matching the Agent Card skill id."},"schema_id":{"type":"string","format":"uuid","description":"UUID del schema a eliminar.","example":"b980cfe7-61ef-4a5a-9724-881c8a5541e2"}}}}}}]},"defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json","text/plain"],"skills":[{"id":"extract-excel","name":"Convierte un archivo Excel o CSV a JSON según un schema","description":"Convierte un archivo Excel o CSV a JSON según un schema Recibe un archivo .xlsx o .csv y un schema_id, y devuelve los datos transformados en JSON con las claves exactamente iguales a las propiedades definidas en el schema. Si el archivo tiene varias hojas, solo se procesa la primera. A2A skill id: extract-excel. JSON DataPart must include \"skill\": \"extract-excel\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["extract","excel","csv","json","Excel a JSON"],"examples":["{\"skill\":\"extract-excel\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"convert-json-to-excel","name":"Convierte uno o varios documentos JSON a un archivo Excel","description":"Convierte uno o varios documentos JSON a un archivo Excel Recibe datos JSON (como archivo, texto plano o cuerpo JSON puro) y un schema_id, y devuelve un archivo .xlsx binario con las columnas en el orden y nombres definidos por el schema. Admite multipart/form-data (uno o varios campos con JSON) o application/json puro (array, objeto único, o sobre con schema_id + data/records). A2A skill id: convert-json-to-excel. JSON DataPart must include \"skill\": \"convert-json-to-excel\". Required parameters: skill. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["convert","excel","json","JSON a Excel"],"examples":["{\"skill\":\"convert-json-to-excel\",\"schema_id\":\"<uuid>\",\"data\":[{}]}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"extract-pdf","name":"Extrae datos estructurados de un archivo PDF según un schema","description":"Extrae datos estructurados de un archivo PDF según un schema Recibe un archivo .pdf (de texto seleccionable o escaneado) y un schema_id, y devuelve un único objeto JSON con los datos extraídos del documento completo, con las claves exactamente iguales a las propiedades definidas en el schema. A diferencia de excel-json, el documento se trata como una única fuente de datos: la respuesta siempre contiene exactamente un registro en \"data\", nunca una fila por cada elemento del documento. El tamaño máximo de archivo admitido es 15 MB. A2A skill id: extract-pdf. JSON DataPart must include \"skill\": \"extract-pdf\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["extract","pdf","json","PDF a JSON"],"examples":["{\"skill\":\"extract-pdf\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"extract-doc","name":"Extrae datos estructurados de un documento de texto según un schema","description":"Extrae datos estructurados de un documento de texto según un schema Recibe un archivo de documento (.docx, .txt, .md o .rtf) y un schema_id, y devuelve un único objeto JSON con los datos extraídos del documento completo, con las claves exactamente iguales a las propiedades definidas en el schema. El texto se extrae de forma determinista en el servidor ANTES de llamar a la IA (desempaquetado del .docx, decodificación UTF-8 para .txt/.md, stripping de códigos de control para .rtf); solo el texto plano resultante se envía al modelo. El formato legacy .doc (Word 97-2003) no está soportado. Igual que en pdf-json, el documento se trata como una única fuente de datos: la respuesta siempre contiene exactamente un registro en \"data\". El tamaño máximo de archivo admitido es 10 MB, y el texto extraído no puede superar los 300.000 caracteres. A2A skill id: extract-doc. JSON DataPart must include \"skill\": \"extract-doc\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["extract","docx","json","Documento a JSON"],"examples":["{\"skill\":\"extract-doc\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"extract-img","name":"Extrae datos estructurados de una imagen según un schema","description":"Extrae datos estructurados de una imagen según un schema Recibe una imagen (.jpeg, .jpg, .png, .webp, .heic o .heif) y un schema_id, y devuelve un único objeto JSON con los datos extraídos del contenido visible, con las claves exactamente iguales a las propiedades definidas en el schema. El análisis lo realiza un modelo multimodal de IA. Antes de extraer datos, el modelo evalúa si la imagen es legible (nitidez, enfoque, iluminación); si no lo es, responde con 422. Igual que en pdf-json, la imagen se trata como una única fuente de datos: la respuesta siempre contiene exactamente un registro en \"data\". El tamaño máximo de archivo admitido es 15 MB. A2A skill id: extract-img. JSON DataPart must include \"skill\": \"extract-img\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["extract","image","json","Imagen a JSON"],"examples":["{\"skill\":\"extract-img\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"extract-txt","name":"Extrae datos estructurados de Txt / HTML / XML según un schema","description":"Extrae datos estructurados de Txt / HTML / XML según un schema Recibe el campo `content` (texto plano, HTML o XML ya procesado) y un schema_id de tipo txt-json, y devuelve un único objeto JSON con los datos extraídos. No se sube ningún archivo. Máximo 300.000 caracteres. URL pública: POST https://claix.dev/api/txt-json. Tarifa fija €0,10 por llamada exitosa (HTTP 200) tras las 15 primeras gratis. A2A skill id: extract-txt. JSON DataPart must include \"skill\": \"extract-txt\". Required parameters: skill, content, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["extract","text","html","xml","Texto a JSON"],"examples":["{\"skill\":\"extract-txt\",\"schema_id\":\"<uuid>\",\"content\":\"<text>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"get-document","name":"Devuelve el contenido bruto de un documento procesado","description":"Devuelve el contenido bruto de un documento procesado Equivale a GET https://claix.dev/get-document/{document_id}. Endpoint de solo lectura, sin body ni query params. Recupera el contenido bruto (texto/markdown) y metadatos de un documento ya procesado por un endpoint de extracción con window_context activo. El documento debe pertenecer a la cuenta de la API key y no haber expirado. Esta llamada es gratuita: no se factura ni consume el cupo de extracciones. A2A skill id: get-document. JSON DataPart must include \"skill\": \"get-document\". Required parameters: skill, document_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["context","document","Ventana de Contexto"],"examples":["{\"skill\":\"get-document\",\"document_id\":\"<uuid>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"query-document","name":"Responde preguntas sobre un documento persistido","description":"Responde preguntas sobre un documento persistido Equivale a POST https://claix.dev/document-context/{document_id}. Recibe un document_id en la URL (el que devolvió una extracción con window_context activo) y un array `questions` en JSON. Carga markdown_content de la tabla documents, llama a Gemini 3.6 con el mismo modelo y generationConfig que el resto de funciones, y devuelve `{ user_ask, ia_response }`. Máximo 5 preguntas y 400 caracteres por pregunta. El documento debe pertenecer a la cuenta de la API key y no haber expirado. A2A skill id: query-document. JSON DataPart must include \"skill\": \"query-document\". Required parameters: skill, document_id, questions. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["context","qa","document","Ventana de Contexto"],"examples":["{\"skill\":\"query-document\",\"document_id\":\"<uuid>\",\"questions\":[\"What is the total?\"]}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"query-space","name":"Responde preguntas cruzando todos los documentos de un espacio","description":"Responde preguntas cruzando todos los documentos de un espacio Equivale a POST https://claix.dev/space-context/{space_id}. Mismo formato de entrada y de salida que POST /document-context/{document_id}: body con un array `questions` (máximo 5 preguntas, 400 caracteres cada una) y respuesta `{ user_ask, ia_response }` alineada 1:1. La única diferencia es el alcance: en vez de un único documento, carga el markdown_content de todos los documentos vigentes cuyo `espacio_id` sea ese space_id, y responde cruzando la información entre ellos (comparar, sumar, relacionar o consolidar datos repartidos en varios archivos). El espacio debe pertenecer a la cuenta de la API key. Los documentos expirados se ignoran. Para acotar coste y mantener la precisión del modelo se cargan como máximo 50 documentos y 200.000 caracteres en total, repartidos entre ellos. A2A skill id: query-space. JSON DataPart must include \"skill\": \"query-space\". Required parameters: skill, space_id, questions. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["context","qa","space","Espacios de Conocimiento"],"examples":["{\"skill\":\"query-space\",\"space_id\":\"<uuid>\",\"questions\":[\"Compare notice periods\"]}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"create-space","name":"Crea un espacio de conocimiento en la cuenta del API key","description":"Crea un espacio de conocimiento en la cuenta del API key Equivale a POST https://claix.dev/create-space. Crea un espacio de conocimiento vacío en la cuenta de la API key. El único campo obligatorio es `name`. Devuelve el `space_id` que luego se envía como `space_id` opcional en los endpoints de extracción para agrupar documentos, y que identifica el espacio en POST /space-context/{space_id}. Esta llamada es gratuita: no se factura ni consume el cupo de extracciones. A2A skill id: create-space. JSON DataPart must include \"skill\": \"create-space\". Required parameters: skill, name. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["spaces","Espacios de Conocimiento"],"examples":["{\"skill\":\"create-space\",\"name\":\"Acme invoices\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"delete-space","name":"Elimina un espacio de conocimiento","description":"Elimina un espacio de conocimiento Equivale a DELETE https://claix.dev/delete-space/{space_id}. Borra el espacio indicado en la ruta, filtrando a la vez por espacio y por cuenta de la API key, de modo que un espacio ajeno nunca se puede borrar. No admite body ni query params. Si no se elimina ninguna fila (no existe o es ajeno), responde 404 con mensaje genérico. Llamada gratuita. A2A skill id: delete-space. JSON DataPart must include \"skill\": \"delete-space\". Required parameters: skill, space_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["spaces","Espacios de Conocimiento"],"examples":["{\"skill\":\"delete-space\",\"space_id\":\"<uuid>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"delete-document","name":"Elimina un documento persistido","description":"Elimina un documento persistido Equivale a DELETE https://claix.dev/delete-document/{document_id}. Borra de la tabla documents el documento indicado por document_id, filtrando simultáneamente por id y user_id de la API key. No admite body ni query params. Si no se elimina ninguna fila (no existe, es ajeno o ya fue purgado), responde 404 con mensaje genérico. Llamada gratuita. A2A skill id: delete-document. JSON DataPart must include \"skill\": \"delete-document\". Required parameters: skill, document_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["context","document","Ventana de Contexto"],"examples":["{\"skill\":\"delete-document\",\"document_id\":\"<uuid>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"agent-extract-excel","name":"Excel/CSV a JSON con extracción y razonamiento Modo Agente","description":"Excel/CSV a JSON con extracción y razonamiento Modo Agente Equivalente a POST /api/excel-json seguido de una fase agente con Gemini. Devuelve la respuesta de extracción (data, mapa_columnas, etc.) más agent_data según agent_definition. El schema debe tener is_agent_mode activado. Misma petición multipart (file + schema_id) y mismos códigos de error que /api/excel-json; además puede devolver 400 si el schema no tiene Modo Agente o agent_definition inválida, o 502 si falla la fase agente. A2A skill id: agent-extract-excel. JSON DataPart must include \"skill\": \"agent-extract-excel\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["agent","excel","Modo Agente"],"examples":["{\"skill\":\"agent-extract-excel\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"agent-extract-pdf","name":"PDF a JSON con extracción y razonamiento Modo Agente","description":"PDF a JSON con extracción y razonamiento Modo Agente Equivalente a POST /api/pdf-json más fase agente. Devuelve data[] con la extracción del schema principal y agent_data con evaluaciones tipadas (booleanos, enteros, strings, opciones cerradas). Requiere is_agent_mode en el schema. Tamaño máximo del PDF: 15 MB. A2A skill id: agent-extract-pdf. JSON DataPart must include \"skill\": \"agent-extract-pdf\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["agent","pdf","Modo Agente"],"examples":["{\"skill\":\"agent-extract-pdf\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"agent-extract-doc","name":"Documento a JSON con extracción y razonamiento Modo Agente","description":"Documento a JSON con extracción y razonamiento Modo Agente Equivalente a POST /api/doc-json más fase agente. Devuelve data[] y agent_data. Requiere is_agent_mode. Formatos admitidos: .docx, .txt, .md, .rtf. Tamaño máximo: 10 MB; texto extraído máx. 300.000 caracteres. A2A skill id: agent-extract-doc. JSON DataPart must include \"skill\": \"agent-extract-doc\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["agent","docx","Modo Agente"],"examples":["{\"skill\":\"agent-extract-doc\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"agent-extract-img","name":"Imagen a JSON con extracción y razonamiento Modo Agente","description":"Imagen a JSON con extracción y razonamiento Modo Agente Equivalente a POST /api/img-json más fase agente. Devuelve data[] y agent_data. Requiere is_agent_mode. Formatos: JPEG, PNG, WebP, HEIC/HEIF. Tamaño máximo: 15 MB. A2A skill id: agent-extract-img. JSON DataPart must include \"skill\": \"agent-extract-img\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["agent","image","Modo Agente"],"examples":["{\"skill\":\"agent-extract-img\",\"schema_id\":\"<uuid>\",\"file_base64\":\"<base64>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"agent-extract-txt","name":"Txt / HTML / XML a JSON con extracción y razonamiento Modo Agente","description":"Txt / HTML / XML a JSON con extracción y razonamiento Modo Agente Equivalente a POST /api/txt-json más fase agente. Recibe content + schema_id (multipart). Devuelve data[] y agent_data. Requiere is_agent_mode. Máximo 300.000 caracteres. URL pública: POST https://claix.dev/agent/txt-json. Misma tarifa que extracción txt-json (€0,10 por llamada exitosa tras el free tier). A2A skill id: agent-extract-txt. JSON DataPart must include \"skill\": \"agent-extract-txt\". Required parameters: skill, content, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["agent","text","Modo Agente"],"examples":["{\"skill\":\"agent-extract-txt\",\"schema_id\":\"<uuid>\",\"content\":\"<text>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"list-schemas","name":"Devuelve todos los schemas de la cuenta asociada al API key","description":"Devuelve todos los schemas de la cuenta asociada al API key Endpoint de solo lectura, sin body ni parámetros. Llama `GET https://claix.dev/api/schemas`. Dado un API key válido, devuelve la lista completa de schemas creados por el usuario dueño de esa key, con toda su información (id, nombre, tipo y definición), ordenados del más reciente al más antiguo. Esta llamada es gratuita: no se factura ni consume el cupo de extracciones. A2A skill id: list-schemas. JSON DataPart must include \"skill\": \"list-schemas\". Required parameters: skill. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["schemas","Schemas"],"examples":["{\"skill\":\"list-schemas\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"create-schema","name":"Crea un schema en la cuenta asociada al API key","description":"Crea un schema en la cuenta asociada al API key Llama `POST https://claix.dev/api/create-schema`. Crea un schema listo para usar en los endpoints de extracción o Modo Agente. `name`, `type` y `schema_definition` son obligatorios. Si `is_agent_mode` es true (o se envía `agent_definition`), hay que incluir `agent_definition` con al menos un parámetro. El tipo json-excel no admite Modo Agente. Esta llamada es gratuita: no se factura ni consume el cupo de extracciones. A2A skill id: create-schema. JSON DataPart must include \"skill\": \"create-schema\". Required parameters: skill, name, type, schema_definition. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["schemas","Schemas"],"examples":["{\"skill\":\"create-schema\",\"name\":\"Invoice\",\"type\":\"pdf-json\",\"schema_definition\":{}}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]},{"id":"delete-schema","name":"Elimina un schema de la cuenta asociada al API key","description":"Elimina un schema de la cuenta asociada al API key Llama `POST https://claix.dev/api/delete-schema`. Borra el schema identificado por `schema_id` si pertenece a la cuenta del API key. También admite DELETE y el query param `?schema_id=<uuid>`. Esta llamada es gratuita: no se factura ni consume el cupo de extracciones. A2A skill id: delete-schema. JSON DataPart must include \"skill\": \"delete-schema\". Required parameters: skill, schema_id. Binary OpenAPI `file` fields are accepted as file_base64 or file_path in A2A JSON.","tags":["schemas","Schemas"],"examples":["{\"skill\":\"delete-schema\",\"schema_id\":\"<uuid>\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"security":[{"apiKey":[]}]}],"provider":{"url":"https://www.claix.dev","organization":"Claix"},"documentationUrl":"https://www.claix.dev/documentation","iconUrl":"https://www.claix.dev/claix-logo.png","supportsAuthenticatedExtendedCard":false,"securitySchemes":{"apiKey":{"type":"apiKey","name":"x-api-key","in":"header","description":"Claix API key (same as the REST API)."}},"security":[{"apiKey":[]}],"supportedInterfaces":[{"url":"https://www.claix.dev/a2a","protocolBinding":"JSONRPC","tenant":"","protocolVersion":"1.0"},{"url":"https://www.claix.dev/a2a","protocolBinding":"JSONRPC","tenant":"","protocolVersion":"0.3"}]}