Saltar al contenido principal

Desarrolladores

Referencia de API

Catálogo completo de la API Pública de Inkspectra v1 — 9 endpoints para análisis, contratos y comparaciones.

Catálogo

9 endpoints

Todos los recursos están limitados a la organización autenticada y aislados por modo (las claves test nunca leen datos live). Handles: ana_* para análisis, ctr_* para contratos, cmp_* para comparaciones.

URL base: https://alpha.inkspectra.com/_api/v1

POST/v1/analysesanalyses:write

Create an analysis

Analyze a contract from text, URL, or PDF (multipart/form-data). Returns 202 immediately with an ana_* handle to poll. Test keys run a deterministic mock engine; live keys run the full LLM pipeline.

Cuerpo de solicitud

{ sourceType, text?, url?, title?, forceReanalysis? } or multipart { file, title? }

Respuesta 202

{ analysisId: "ana_*", status: "queued", links: { self, result } }
GET/v1/analysesanalyses:read

List analyses

List analyses for the authenticated API key, newest first. Results are isolated by organization and mode (test keys never see live analyses).

Parámetros

limitquery · optional1–100, default 20
cursorquery · optionalOpaque pagination cursor from nextCursor
statusquery · optionalqueued | processing | completed | failed

Respuesta 200

{ data: AnalysisListItem[], nextCursor? }
GET/v1/analyses/{analysisId}analyses:read

Get analysis status and metadata

Returns current status, sourceType, mode, and executionMode. Poll this until status is "completed" or "failed", then fetch the result.

Parámetros

analysisIdpath · requiredana_* handle

Respuesta 200

{ analysisId, status, title?, sourceType, mode, executionMode, createdAt }
GET/v1/analyses/{analysisId}/resultanalyses:read

Get structured analysis result

Returns the full analysis output: summary, risk score, risks, obligations, key dates, and evidence. Only available when status is "completed".

Parámetros

analysisIdpath · requiredana_* handle

Respuesta 200

{ analysisId, status, summary, riskScore, risks[], obligations[], keyDates[], evidence[], mock? }
POST/v1/contractscontracts:write

Save an analysis as a contract

Persists a completed analysis (ana_*) as a real contract (ctr_*) with version tracking. Idempotent: re-submitting the same analysisId returns the existing contract with 200.

Cuerpo de solicitud

{ analysisId: "ana_*" }

Respuesta 201

{ contractId: "ctr_*", versionNumber: 1, analysisId, links: { self } }
GET/v1/contractscontracts:read

List contracts

List saved contracts for the authenticated API key, newest first. Results are isolated by organization and mode.

Parámetros

limitquery · optional1–100, default 20
cursorquery · optionalOpaque pagination cursor

Respuesta 200

{ data: ContractListItem[], nextCursor? }
GET/v1/contracts/{contractId}contracts:read

Get a contract

Returns contract details including title, category, risk score, and the current version's analysisId.

Parámetros

contractIdpath · requiredctr_* handle

Respuesta 200

{ contractId, title?, status, riskScore?, currentVersion: { versionNumber, analysisId }, createdAt }
POST/v1/comparisonscomparisons:write

Compare two contracts or analyses

Compares two sides synchronously. Each side is either a contract handle (ctr_*, optionally a versionNumber) or an analysis handle (ana_*). Both sides must be completed and share the same mode. Returns cmp_* with a resolved field showing exactly which versions were compared.

Cuerpo de solicitud

{ left: { contractId? | analysisId?, versionNumber? }, right: { contractId? | analysisId?, versionNumber? } }

Respuesta 201

{ comparisonId: "cmp_*", status, resolved: { left, right }, links: { self } }
GET/v1/comparisons/{comparisonId}comparisons:read

Get a comparison

Returns the comparison result including summary, score, recommendation, per-dimension breakdown, and the resolved sides (which analysis versions were actually compared).

Parámetros

comparisonIdpath · requiredcmp_* handle

Respuesta 200

{ comparisonId, status, executionMode, summary, score, dimensions[], resolved: { left, right }, createdAt }

Notas

Conceptos clave

Convenciones que aplican a todos los endpoints.

Autenticación

Todos los endpoints requieren una clave fpk_test_* o fpk_live_* válida mediante Authorization: Bearer o header X-Api-Key.

Aislamiento test vs live

El prefijo de la clave determina el modo de ejecución. Las claves test siempre usan datos mock — sin llamadas LLM ni facturación. Los recursos están completamente aislados entre modos.

Handles opacos

ana_*, ctr_* y cmp_* son UUIDs codificados en base64url. Trátelos como cadenas opacas — no analices el UUID interno.

Paginación por cursor

Todos los endpoints de listado devuelven nextCursor (null cuando se agota). Pasa cursor en la siguiente solicitud para continuar. Los cursores son opacos y de vida corta.

¿Listo para construir?

Sigue el Quickstart para ejecutar tu primer análisis de extremo a extremo, o consulta el catálogo completo de errores.