Documentos IA — API Reference
API REST para la extracción automática de datos de escrituras públicas colombianas en PDF. Envía un archivo PDF y recibe un JSON estructurado con: número y fecha de escritura, matrículas inmobiliarias, tipo de acto jurídico, intervinientes (otorgantes y beneficiarios), cuantías y resumen — todo extraído de forma inteligente con IA.
🔗 Base URL
https://documentia.helppiu.com
📄 Formato
Todas las respuestas son JSON. Los uploads de PDF usan multipart/form-data. Tamaño máximo: 100 MB.
🤖 Motor de IA
Extracción inteligente con GPT-4o-mini de OpenAI. OCR con Tesseract para documentos escaneados.
⚡ Flujo Rápido
1. Obtén tu API Key → 2. Envía un PDF con POST /analyze → 3. Recibe el JSON con todos los datos extraídos.
Autenticación
Todos los endpoints que consumen cuota requieren una API Key. Se envía en el header X-API-Key.
API Key
Tu API Key tiene el formato docia_<32 caracteres hex> y se entrega al crear tu cuenta. Inclúyela en cada petición:
| 401 | API Key inválida o no proporcionada. |
| 403 | Cuenta desactivada o cuota de documentos agotada. |
Códigos de Error
Todos los errores retornan {"detail": "Mensaje descriptivo del error"}
| Código | Significado | Cuándo ocurre |
|---|---|---|
| 200 | Éxito | Operación completada correctamente |
| 400 | Petición inválida | Archivo no es PDF, campo requerido faltante |
| 401 | No autenticado | API Key inválida o no enviada |
| 403 | Prohibido | Cuenta inactiva o cuota agotada |
| 404 | No encontrado | Recurso no existe |
| 413 | Archivo muy grande | PDF excede 100 MB |
| 500 | Error interno | Error procesando el PDF |
Análisis de Escrituras
Endpoints para analizar escrituras públicas y consultar el catálogo de actos jurídicos.
Verifica que el servicio está activo. Ideal para monitoreo y health checks automatizados.
{
"status": "ok"
}
Endpoint principal. Envía un PDF de escritura pública colombiana y recibe toda la información extraída automáticamente: fecha, número, actos jurídicos, intervinientes, cuantías, matrículas inmobiliarias y un resumen. Consume 1 documento de tu cuota por cada llamada exitosa.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| file | binary (PDF) | Requerido | Archivo PDF de la escritura pública. Máximo 100 MB. |
| Header | Valor | |
|---|---|---|
| X-API-Key | docia_xxxxxxxx... | Requerido |
{
"Fecha escritura": "2023-11-15",
"Número escritura": "5021",
"actos": [
{
"tipo_de_acto": "LIQUIDACION DE LA COMUNIDAD",
"resumen": {
"pagina": "3",
"texto": "Se procede a liquidar la comunidad entre..."
},
"cuantias": [
{ "pagina": 1, "valor": "500000000" }
],
"intervinientes": {
"otorgantes": [
{
"nivel": 1,
"nombre": "JUAN PÉREZ GARCÍA",
"numero_identificacion": "79123456",
"pagina": "[1, 5, 8]"
}
],
"beneficiarios": []
}
}
],
"matriculas": [
{
"numero": "370-123456",
"pagina": "[1, 9, 10, 11, 15]"
}
],
"_metadata": {
"account": "Notaría Central",
"quota_used": 51,
"quota_total": 100,
"pages_total": 15,
"pages_scanned": 5,
"llm_usage": {
"prompt_tokens": 2500,
"completion_tokens": 1200,
"total_tokens": 3700
},
"estimated_cost_usd": 0.000891,
"ocr_time_s": 2.5,
"extraction_time_s": 3.1,
"total_time_s": 5.6
}
}
| Campo | Tipo | Descripción |
|---|---|---|
| Fecha escritura | string | null | Fecha del documento (formato YYYY-MM-DD cuando se detecta) |
| Número escritura | string | null | Número de la escritura pública |
| actos[] | array | Lista de actos jurídicos encontrados en el documento |
| actos[].tipo_de_acto | string | Clasificación del acto según catálogo de la Gobernación del Valle |
| actos[].resumen | object | null | Resumen del acto con pagina (donde inicia) y texto |
| actos[].cuantias[] | array | Valores monetarios: pagina (int) y valor (string en pesos) |
| actos[].intervinientes | object | Contiene otorgantes[] y beneficiarios[] |
| interviniente | object | Cada persona: nivel (1=principal), nombre, numero_identificacion, pagina |
| matriculas[] | array | Matrículas inmobiliarias: numero y pagina (páginas donde aparece) |
| _metadata | object | Info de consumo: cuota usada/total, tokens, costo estimado, tiempos de procesamiento |
| 400 | Solo se aceptan archivos PDF. |
| 401 | API Key inválida o no proporcionada. |
| 403 | Cuenta desactivada o cuota de documentos agotada. |
| 413 | Archivo demasiado grande. Máximo permitido: 100 MB. |
| 500 | Error procesando el archivo PDF. |
Retorna el catálogo completo de actos jurídicos registrales que usa la IA para clasificar. Basado en la Gobernación del Valle del Cauca. No requiere autenticación.
[
{
"grupo_general": "TRANSFERENCIAS",
"subgrupo_acto": "Venta de bien inmueble",
"es_correcta": true
},
...
]
Estadísticas acumuladas de tokens consumidos desde el último reinicio del servicio. No requiere autenticación.
{
"prompt_tokens": 12500,
"completion_tokens": 4800,
"total_tokens": 17300,
"estimated_cost_usd": 0.003045
}
Extracción Dinámica de Campos
Endpoint universal para extraer cualquier dato de cualquier documento PDF. Tú defines qué campos necesitas — el sistema aplica OCR e IA para encontrarlos. Funciona con cédulas, escrituras, RUT, certificados, facturas y cualquier documento en PDF.
Envía un PDF junto con la lista de campos que deseas extraer. La IA localiza y retorna exactamente los valores solicitados en formato JSON. Consume 1 documento de tu cuota por llamada exitosa.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| file | binary (PDF) | Requerido | Archivo PDF del documento. Máximo 100 MB. |
| fields | string (JSON) | Requerido | Array JSON con los campos a extraer. Cada elemento debe tener key (nombre en la respuesta) y description (qué buscar en el documento). Ver ejemplos abajo. |
| max_pages | integer | Opcional | Máximo de páginas a analizar. Default: 10. Para cédulas use 2, para escrituras largas hasta 50. |
fields[
{
"key": "nombre_del_campo",
"description": "Descripción de qué buscar en el documento y dónde"
}
]
Regla principal: mientras más específica sea la description (mencionando la etiqueta exacta del documento), más precisa es la extracción.
[
{ "key": "numero_cedula", "description": "Numero de cedula de ciudadania, retornar solo digitos sin puntos" },
{ "key": "nombre_completo", "description": "Nombres del titular sin apellidos, buscar cerca de la etiqueta NOMBRES" },
{ "key": "apellidos", "description": "Apellidos del titular, buscar cerca de la etiqueta APELLIDOS. El OCR puede fragmentar el texto, combina las lineas" },
{ "key": "fecha_nacimiento", "description": "Fecha de nacimiento en formato DD/MM/AAAA" },
{ "key": "lugar_nacimiento", "description": "Municipio exacto de nacimiento, no el departamento" },
{ "key": "fecha_expedicion", "description": "Fecha de expedicion del documento" },
{ "key": "lugar_expedicion", "description": "Municipio donde fue expedida la cedula" },
{ "key": "sexo", "description": "Sexo del titular: M o F. Buscar cerca de la etiqueta SEXO o en el codigo MRZ del reverso" },
{ "key": "grupo_sanguineo", "description": "Grupo sanguineo con RH del titular, ej: O+ A- B+ AB+. Buscar en reverso o inicio del codigo MRZ" }
]
[
{ "key": "numero_escritura", "description": "Numero de escritura publica, solo digitos" },
{ "key": "notaria", "description": "Numero y ciudad de la notaria donde se otorgo" },
{ "key": "fecha_otorgamiento", "description": "Fecha en que fue otorgada la escritura" },
{ "key": "acto_juridico", "description": "Tipo de acto: compraventa, hipoteca, donacion, etc." },
{ "key": "vendedor", "description": "Nombre completo del vendedor o enajenante" },
{ "key": "comprador", "description": "Nombre completo del comprador o adquirente" },
{ "key": "matricula", "description": "Numero de matricula inmobiliaria del inmueble" },
{ "key": "valor_venta", "description": "Valor o precio de venta en pesos colombianos" }
]
[
{ "key": "nit", "description": "NIT de la empresa, solo digitos sin guion ni digito de verificacion" },
{ "key": "razon_social", "description": "Razon social o nombre de la empresa tal como aparece en el RUT" },
{ "key": "actividad_economica", "description": "Codigo CIIU y descripcion de la actividad economica principal" },
{ "key": "representante_legal", "description": "Nombre completo del representante legal" },
{ "key": "direccion", "description": "Direccion principal del establecimiento o empresa" },
{ "key": "municipio", "description": "Municipio o ciudad donde esta registrada la empresa" }
]
[
{ "key": "matricula", "description": "Numero de matricula inmobiliaria" },
{ "key": "titular", "description": "Nombre del propietario actual del predio" },
{ "key": "descripcion", "description": "Descripcion del inmueble: tipo, area, direccion" },
{ "key": "municipio", "description": "Municipio donde esta ubicado el inmueble" },
{ "key": "gravamenes", "description": "Hipotecas, embargos, afectaciones o limitaciones vigentes" },
{ "key": "fecha_consulta", "description": "Fecha de expedicion del certificado" }
]
{
"fields": {
"numero_cedula": "1144070039",
"nombre_completo": "ALVARO JOSE",
"apellidos": "TORRES BARANDICA",
"fecha_nacimiento": "02/05/1994",
"lugar_nacimiento": "CALI",
"fecha_expedicion": "03/05/2012",
"lugar_expedicion": "CALI",
"sexo": "M",
"grupo_sanguineo": "A-"
},
"_metadata": {
"total_time_s": 5.2,
"ocr_time_s": 4.1,
"llm_time_s": 1.1,
"pages_total": 2,
"pages_scanned": 2,
"llm_usage": {
"prompt_tokens": 850,
"completion_tokens": 110,
"total_tokens": 960
},
"account": "Mi Cuenta",
"filename": "cedula.pdf",
"fields_requested": ["numero_cedula", "nombre_completo", "..."]
}
}
| Campo | Tipo | Descripción |
|---|---|---|
| fields | object | Cada key solicitado como propiedad. Valor extraído o null si no se encontró. |
| _metadata.total_time_s | number | Tiempo total de procesamiento en segundos |
| _metadata.ocr_time_s | number | Tiempo de OCR (solo documentos escaneados) |
| _metadata.llm_time_s | number | Tiempo de respuesta del modelo de IA |
| _metadata.pages_total | integer | Total de páginas del PDF |
| _metadata.llm_usage | object | Tokens consumidos: prompt_tokens, completion_tokens, total_tokens |
| 400 | Solo se aceptan archivos PDF / JSON inválido en fields / campo sin key. |
| 401 | API Key inválida o no proporcionada. |
| 403 | Cuenta desactivada o cuota de documentos agotada. |
| 413 | Archivo demasiado grande. Máximo permitido: 100 MB. |
| 500 | Error procesando el documento. |
Tabla de Endpoints
| Método | Path | Descripción | Auth |
|---|---|---|---|
| GET | /api/v1/health | Health check | — |
| POST | /api/v1/escrituras/analyze | Analizar escritura pública (PDF) | 🔑 API Key |
| POST | /api/v1/extract | Extraer campos de cualquier PDF (cédulas, escrituras, RUT, etc.) | 🔑 API Key |
| GET | /api/v1/actos | Catálogo de actos registrales | — |
| GET | /api/v1/stats | Estadísticas de consumo | — |