Análisis guardados
Recupera, lista con filtros y paginación por cursor, exporta y borra análisis con /v1/analyses, y descarga exportaciones con las URLs firmadas de /v1/files.
Cada llamada a POST /v1/analyze o POST /v1/classify crea un análisis con id an_…. Si no pediste keep_results: false, sus resultados quedan guardados y puedes consultarlos con estos endpoints.
| Método y ruta | Qué hace |
|---|---|
GET /v1/analyses/{id} | Recupera un análisis. |
GET /v1/analyses | Lista análisis con filtros y paginación. |
DELETE /v1/analyses/{id} | Borra fichero, resultados y exportaciones. |
GET /v1/analyses/{id}/export | Descarga el análisis en json, csv, xlsx, xml, vcard o pdf. |
GET /v1/files/{id} | Descarga firmada de las URLs de exports. Sin clave. |
Guardar resultados no implica guardar el fichero: eso lo decide storage. Ver Almacenamiento y privacidad.
Recuperar un análisis
GET /v1/analyses/{id}Devuelve el objeto analysis (o classification) con su estado actual y las URLs firmadas vigentes en exports. Funciona con claves de cualquier modo, siempre que el análisis sea de tu cuenta.
Devuelve 404 resource_missing si el análisis no existe, es de otra cuenta, lo borraste o se creó con keep_results: false.
Es la forma de consultar un análisis asíncrono si no usas webhooks. Consulta con espera creciente y para cuando status sea completed o failed. Los webhooks son preferibles: no gastan peticiones de tu límite.
curl https://api.constaia.com/v1/analyses/an_01J9Z8Q3K4M5N6P7Q8R9S0T1V2 \
-H "Authorization: Bearer $CONSTAIA_API_KEY"Listar análisis
GET /v1/analyses| Parámetro | Tipo | Descripción |
|---|---|---|
limit | entero 1–100 | Elementos por página. Por defecto 10. |
starting_after | string | Id del último análisis de la página anterior (cursor). |
status | queued | processing | completed | failed | Filtra por estado. |
type | string | Filtra por tipo detectado, p. ej. es_dni. |
metadata[clave] | string | Filtra por un valor de metadata. Puedes combinar varias claves: deben coincidir todas. |
El listado solo incluye análisis del modo de tu clave (test o live), del más reciente al más antiguo. No incluye los borrados ni los creados con keep_results: false.
{
"object": "list",
"data": [
{ "id": "an_01J9Z8Q3K4M5N6P7Q8R9S0T1V2", "object": "analysis", "status": "completed", "…": "…" }
],
"has_more": true,
"url": "/v1/analyses"
}Paginación
La paginación es por cursor: mientras has_more sea true, pide la página siguiente pasando el id del último elemento como starting_after. No existe un campo next_cursor. Más detalles en Paginación.
#!/usr/bin/env bash
set -euo pipefail
after=""
while :; do
page=$(curl -sf -G https://api.constaia.com/v1/analyses \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
--data-urlencode "limit=100" \
--data-urlencode "status=completed" \
--data-urlencode "metadata[event]=42" \
${after:+--data-urlencode "starting_after=$after"})
echo "$page" | jq -r '.data[] | [.id, .document.type, .verdict.status] | @tsv'
[ "$(echo "$page" | jq -r .has_more)" = "true" ] || break
after=$(echo "$page" | jq -r '.data[-1].id')
done-G con --data-urlencode evita que curl interprete los corchetes de metadata[event].
Borrar un análisis
DELETE /v1/analyses/{id}Borra el fichero (si se guardó), los resultados extraídos y las exportaciones. No se puede deshacer. Después, GET devuelve 404. Los metadatos de facturación (páginas, créditos, tipo) se conservan para tu consumo.
curl -X DELETE https://api.constaia.com/v1/analyses/an_01J9Z8Q3K4M5N6P7Q8R9S0T1V2 \
-H "Authorization: Bearer $CONSTAIA_API_KEY"{ "id": "an_01J9Z8Q3K4M5N6P7Q8R9S0T1V2", "object": "analysis", "deleted": true }En los SDK: await constaia.analyses.delete(id) (JavaScript) y $constaia->analyses->delete($id) (PHP). Si solo quieres que el fichero no se guarde nunca, usa storage: "none" y keep_results: false al analizar; ver Analizar sin guardar nada.
Exportar un análisis
GET /v1/analyses/{id}/export?format=json|csv|xlsx|xml|vcard|pdfGenera el fichero al momento (por defecto json) y lo devuelve como descarga con Content-Disposition: attachment; filename="an_….xlsx". No caduca como las URLs de exports: puedes pedirlo siempre que el análisis exista. Si el análisis aún no ha terminado, responde 409 analysis_not_completed. Formatos en Exportaciones.
curl -o analisis.xlsx \
"https://api.constaia.com/v1/analyses/an_01J9Z8Q3K4M5N6P7Q8R9S0T1V2/export?format=xlsx" \
-H "Authorization: Bearer $CONSTAIA_API_KEY"Descargas firmadas (/v1/files)
Cuando analizas con export, el campo exports trae URLs como esta:
https://api.constaia.com/v1/files/exp_01J9Z8Q3K4M5N6P7Q8R9S0T1V2?expires=1790157602&sig=…- No necesitan clave: la firma
sigautoriza la descarga. Trátalas como un secreto temporal y no las publiques. - Caducan a las 24 horas. Después devuelven
404.GET /v1/analyses/{id}solo incluye enexportslas que siguen vigentes; si necesitas el fichero más tarde, usaGET /v1/analyses/{id}/export. - Se sirven siempre desde
api.constaia.com, nunca desde una URL del almacenamiento. - Si modificas
expiresosig, la firma deja de ser válida y la respuesta es404.
Siguientes pasos
POST /v1/classify
Referencia de POST /v1/classify: identifica el tipo de un documento por 0,2 créditos, con candidatos y veredicto de tipo, para enrutarlo antes de analizarlo.
POST /v1/batches
Referencia de POST /v1/batches: analiza hasta 100 documentos en una llamada asíncrona, con opciones comunes o por documento y export combinado.