Quick start
La API de Parsear expone dos endpoints principales para automatizar el ciclo completo del contrato de alquiler argentino:
POST /extract
Enviás un PDF en base64 y recibís un objeto JSON con los datos estructurados del contrato — partes, inmueble, fechas, montos, ajuste y más.
POST /generate
Enviás los datos del contrato en JSON y recibís un archivo .docx listo para firmar, con todos los campos completados.
Autenticación
Todas las requests a /api/v1/* requieren el header x-api-key con tu API key. Podés obtener una gratis en /register.
x-api-key: sk_live_your_key_here
Base URL
https://parsear.dev/api/v1
POST /extract
Extrae los datos estructurados de un contrato de alquiler en PDF. El PDF debe ser nativo (con texto seleccionable), no escaneado. Tamaño máximo: 500 KB.
Headers
| Header | Requerido | Descripción |
|---|---|---|
x-api-key | Requerido | Tu API key de Parsear |
Content-Type | Requerido | application/json |
Body (JSON)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
pdf | string | Sí | PDF codificado en base64. Máx 500 KB. Solo PDFs nativos (con texto, no escaneados). |
Ejemplo de request
curl -X POST https://parsear.dev/api/v1/extract \
-H "x-api-key: sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"pdf": "base64encodedpdf..."}'Response schema
En caso de éxito, la API devuelve HTTP 200 con el siguiente objeto. Los campos no encontrados en el contrato se devuelven como null.
| Campo | Tipo | Descripción |
|---|---|---|
locador.nombre | string | null | Nombre completo del locador |
locador.dni | string | null | DNI del locador (solo dígitos) |
locatario.nombre | string | null | Nombre completo del locatario |
locatario.dni | string | null | DNI del locatario (solo dígitos) |
inmueble.direccion | string | null | Dirección completa del inmueble |
inmueble.tipo | string | null | Tipo de inmueble (ej: vivienda familiar, comercial) |
fecha_inicio | string | null | Fecha de inicio en formato ISO (YYYY-MM-DD) |
duracion_meses | number | null | Duración del contrato en meses |
fecha_vencimiento | string | null | Fecha de vencimiento en formato ISO (YYYY-MM-DD) |
alquiler_inicial | number | null | Canon mensual inicial en pesos (entero) |
deposito | number | null | Monto del depósito en pesos (entero) |
ajuste.indice | string | null | Índice: ICL, IPC, UVA, CVS o 'acuerdo de partes' |
ajuste.frecuencia | string | null | Frecuencia de ajuste (ej: trimestral, semestral) |
dia_pago | string | null | Período de pago (ej: '1 al 10 de cada mes') |
garante.nombre | string | null | Nombre del garante, o null si no hay |
rescision.preaviso_meses | number | null | Meses de preaviso para rescindir |
rescision.penalidad | string | null | Descripción de la penalidad por rescisión anticipada |
clausulas_especiales | string[] | Lista de cláusulas especiales encontradas en el contrato |
Ejemplo de respuesta
{
"data": {
"locador": { "nombre": "Juan Pérez", "dni": "30123456" },
"locatario": { "nombre": "María Gómez", "dni": "35987654" },
"inmueble": { "direccion": "Lavalle 567 3° B, CABA", "tipo": "vivienda familiar" },
"fecha_inicio": "2026-04-01",
"duracion_meses": 24,
"fecha_vencimiento": "2028-03-31",
"alquiler_inicial": 350000,
"deposito": 350000,
"ajuste": { "indice": "IPC", "frecuencia": "trimestral" },
"dia_pago": "1 al 10 de cada mes",
"garante": null,
"rescision": null,
"clausulas_especiales": [
"Prohibido subarrendar",
"Servicios a cargo del locatario"
]
},
"request_id": "a1b2c3d4-e5f6-..."
}Errores
Todos los errores incluyen el campo request_id para facilitar el soporte.
| HTTP | error | Descripción |
|---|---|---|
400 | Missing pdf field | El campo pdf es requerido en el body |
400 | PDF too large | El PDF supera los 500 KB |
400 | Scanned PDFs are not supported | Solo PDFs con texto nativo (no escaneados) |
401 | Missing API key | Falta el header x-api-key |
401 | Invalid API key | La key no existe o está inactiva |
429 | Request limit reached | Límite mensual alcanzado — upgrade en /pricing |
429 | Too many requests | Más de 10 requests / minuto |
500 | Internal error | Error interno — contactar soporte con request_id |
502 | Could not parse contract | Claude no devolvió un JSON válido — reintentá |
504 | Extraction timed out | Claude tardó más de 8 segundos — reintentá |
Ejemplos de código
curl -X POST https://parsear.dev/api/v1/extract \
-H "x-api-key: sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"pdf": "base64encodedpdf..."}'Límites
Tamaño máximo de PDF
500 KB
Tipo de PDF
Nativo (no escaneado)
Rate limit por key
10 requests / minuto
Límite mensual
Según plan (ver /pricing)
Timeout de extracción
20 segundos
Caracteres procesados
Primeros 32.000 del PDF
POST /generate
Genera un contrato de locación en formato .docx a partir de datos estructurados. Devuelve el archivo Word listo para firmar.
Headers
| Header | Requerido | Descripción |
|---|---|---|
x-api-key | Requerido | Tu API key de Parsear |
Content-Type | Requerido | application/json |
Body (JSON)
| Campo | Tipo | Descripción |
|---|---|---|
locador_nombre | string | Nombre completo del locador |
locador_dni | string | DNI del locador |
locador_domicilio | string | Domicilio del locador |
locador_email | string | Email del locador |
locatario_nombre | string | Nombre completo del locatario |
locatario_dni | string | DNI del locatario |
locatario_email | string | Email del locatario |
inmueble_direccion | string | Dirección completa del inmueble |
fecha_inicio | string | Fecha de inicio en formato YYYY-MM-DD |
duracion_meses | number | Duración del contrato en meses (entero positivo) |
alquiler_inicial | number | Canon mensual inicial en pesos |
ajuste_descripcion | string | Descripción del índice de ajuste (ej: ICL trimestral) |
deposito | number | Monto del depósito en pesos |
primer_mes_monto | number | Monto del primer mes en pesos |
primer_mes_fecha | string | Fecha del primer mes en formato YYYY-MM-DD |
banco_nombre | string | Nombre del banco para transferencias |
banco_cuenta | string | Número de cuenta bancaria |
banco_cuit | string | CUIT del locador |
banco_cbu | string | CBU del locador |
garantia | string | Tipo de garantía (ver valores válidos abajo) |
lugar_firma | string | Ciudad o lugar de firma del contrato |
fecha_firma | string | Fecha de firma en formato YYYY-MM-DD |
Valores válidos para garantia
| Valor | Descripción |
|---|---|
fianza personal | Fianza personal de un tercero |
seguro de caución | Póliza de seguro de caución |
garantía propietaria | Garante propietario de un inmueble |
depósito reforzado | Depósito adicional como garantía |
Response
En caso de éxito, la API devuelve HTTP 200 con el archivo .docx como respuesta binaria. El header X-Request-Id contiene el ID de correlación para soporte. Los contratos del plan Free incluyen una marca en el pie de página.
| Header de respuesta | Valor |
|---|---|
Content-Type | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
Content-Disposition | attachment; filename="contrato-locacion.docx" |
X-Request-Id | UUID de correlación para soporte |
Errores
Todos los errores incluyen el campo request_id. Los errores de autenticación y rate limiting son comunes a ambos endpoints.
| HTTP | error | Descripción |
|---|---|---|
400 | Campo requerido faltante o inválido: <campo> | El campo indicado es inválido o está ausente en el body |
400 | El campo <campo> debe ser una fecha en formato YYYY-MM-DD | Formato de fecha incorrecto |
400 | El campo <campo> debe ser un número positivo | Valor numérico inválido o menor que 1 |
400 | El campo garantia debe ser uno de: … | Valor de garantía no reconocido |
401 | Missing API key | Falta el header x-api-key |
401 | Invalid API key | La key no existe o está inactiva |
429 | Request limit reached | Límite mensual alcanzado — upgrade en /pricing |
429 | Too many requests | Más de 10 requests / minuto |
500 | Error interno | Error interno — contactar soporte con request_id |
503 | Plantilla de contrato no disponible | La plantilla .docx no está configurada en el servidor |
Ejemplos de código
curl -X POST https://parsear.dev/api/v1/generate \
-H "x-api-key: sk_live_your_key_here" \
-H "Content-Type: application/json" \
-o contrato-locacion.docx \
-d '{
"locador_nombre": "Juan Carlos Pérez",
"locador_dni": "30123456",
"locador_domicilio": "Av. Corrientes 1234, CABA",
"locador_email": "jcperez@email.com",
"locatario_nombre": "María Elena Gómez",
"locatario_dni": "35987654",
"locatario_email": "megomez@email.com",
"inmueble_direccion": "Lavalle 567 3° B, CABA",
"fecha_inicio": "2026-04-01",
"duracion_meses": 24,
"alquiler_inicial": 350000,
"ajuste_descripcion": "ICL trimestral",
"deposito": 350000,
"primer_mes_monto": 350000,
"primer_mes_fecha": "2026-04-01",
"banco_nombre": "Banco Nación",
"banco_cuenta": "1234567890",
"banco_cuit": "20-30123456-9",
"banco_cbu": "01234567890123456789012",
"garantia": "fianza personal",
"lugar_firma": "Ciudad Autónoma de Buenos Aires",
"fecha_firma": "2026-03-25"
}'