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

HeaderRequeridoDescripción
x-api-keyRequeridoTu API key de Parsear
Content-TypeRequeridoapplication/json

Body (JSON)

CampoTipoRequeridoDescripción
pdfstringPDF 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.

CampoTipoDescripción
locador.nombrestring | nullNombre completo del locador
locador.dnistring | nullDNI del locador (solo dígitos)
locatario.nombrestring | nullNombre completo del locatario
locatario.dnistring | nullDNI del locatario (solo dígitos)
inmueble.direccionstring | nullDirección completa del inmueble
inmueble.tipostring | nullTipo de inmueble (ej: vivienda familiar, comercial)
fecha_iniciostring | nullFecha de inicio en formato ISO (YYYY-MM-DD)
duracion_mesesnumber | nullDuración del contrato en meses
fecha_vencimientostring | nullFecha de vencimiento en formato ISO (YYYY-MM-DD)
alquiler_inicialnumber | nullCanon mensual inicial en pesos (entero)
depositonumber | nullMonto del depósito en pesos (entero)
ajuste.indicestring | nullÍndice: ICL, IPC, UVA, CVS o 'acuerdo de partes'
ajuste.frecuenciastring | nullFrecuencia de ajuste (ej: trimestral, semestral)
dia_pagostring | nullPeríodo de pago (ej: '1 al 10 de cada mes')
garante.nombrestring | nullNombre del garante, o null si no hay
rescision.preaviso_mesesnumber | nullMeses de preaviso para rescindir
rescision.penalidadstring | nullDescripción de la penalidad por rescisión anticipada
clausulas_especialesstring[]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.

HTTPerrorDescripción
400Missing pdf fieldEl campo pdf es requerido en el body
400PDF too largeEl PDF supera los 500 KB
400Scanned PDFs are not supportedSolo PDFs con texto nativo (no escaneados)
401Missing API keyFalta el header x-api-key
401Invalid API keyLa key no existe o está inactiva
429Request limit reachedLímite mensual alcanzado — upgrade en /pricing
429Too many requestsMás de 10 requests / minuto
500Internal errorError interno — contactar soporte con request_id
502Could not parse contractClaude no devolvió un JSON válido — reintentá
504Extraction timed outClaude 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

HeaderRequeridoDescripción
x-api-keyRequeridoTu API key de Parsear
Content-TypeRequeridoapplication/json

Body (JSON)

CampoTipoDescripción
locador_nombrestringNombre completo del locador
locador_dnistringDNI del locador
locador_domiciliostringDomicilio del locador
locador_emailstringEmail del locador
locatario_nombrestringNombre completo del locatario
locatario_dnistringDNI del locatario
locatario_emailstringEmail del locatario
inmueble_direccionstringDirección completa del inmueble
fecha_iniciostringFecha de inicio en formato YYYY-MM-DD
duracion_mesesnumberDuración del contrato en meses (entero positivo)
alquiler_inicialnumberCanon mensual inicial en pesos
ajuste_descripcionstringDescripción del índice de ajuste (ej: ICL trimestral)
depositonumberMonto del depósito en pesos
primer_mes_montonumberMonto del primer mes en pesos
primer_mes_fechastringFecha del primer mes en formato YYYY-MM-DD
banco_nombrestringNombre del banco para transferencias
banco_cuentastringNúmero de cuenta bancaria
banco_cuitstringCUIT del locador
banco_cbustringCBU del locador
garantiastringTipo de garantía (ver valores válidos abajo)
lugar_firmastringCiudad o lugar de firma del contrato
fecha_firmastringFecha de firma en formato YYYY-MM-DD

Valores válidos para garantia

ValorDescripción
fianza personalFianza personal de un tercero
seguro de cauciónPóliza de seguro de caución
garantía propietariaGarante propietario de un inmueble
depósito reforzadoDepó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 respuestaValor
Content-Typeapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
Content-Dispositionattachment; filename="contrato-locacion.docx"
X-Request-IdUUID 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.

HTTPerrorDescripción
400Campo requerido faltante o inválido: <campo>El campo indicado es inválido o está ausente en el body
400El campo <campo> debe ser una fecha en formato YYYY-MM-DDFormato de fecha incorrecto
400El campo <campo> debe ser un número positivoValor numérico inválido o menor que 1
400El campo garantia debe ser uno de: …Valor de garantía no reconocido
401Missing API keyFalta el header x-api-key
401Invalid API keyLa key no existe o está inactiva
429Request limit reachedLímite mensual alcanzado — upgrade en /pricing
429Too many requestsMás de 10 requests / minuto
500Error internoError interno — contactar soporte con request_id
503Plantilla de contrato no disponibleLa 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"
  }'