Archivos
Subir el PDF antes de crear un avalúo con referencia a archivo.
Estos endpoints devuelven el file_id que después se envía en document.file_id de
POST /v1/avaluos. Si prefieres una sola llamada, usa
POST /v1/avaluos/procesar. Guía:
crear un avalúo.
/v1/files/presignavaluos:writeURL prefirmada para subir el PDF
/v1/filesavaluos:writeSube un PDF (multipart)
Subir un PDF (multipart)
/v1/filesavaluos:writeSube un PDF (multipart)
Sube el PDF directamente en el campo file (máx. 30 MB, sólo PDF). Devuelve el file_id para usar en document.file_id de POST /v1/avaluos.
| Campo | Tipo | Descripción |
|---|---|---|
filerequerido | archivo | Archivo PDF (máx. 30 MB, Content-Type: application/pdf). |
curl -X POST "$API_URL/v1/files" \
-H "x-api-key: $API_KEY" \
-F "file=@avaluo.pdf;type=application/pdf"201 — Archivo subido.
{
"file_id": "uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf",
"url": "https://storage.example.com/uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf?X-Amz-Signature=…",
"tamano_bytes": 482133,
"nombre_archivo": "avaluo.pdf"
}| HTTP | Cuándo ocurre |
|---|---|
400 | Falta el archivo (Falta el archivo (campo "file")), no es un PDF (Solo se permiten archivos PDF) o se envió con otro nombre de campo (Unexpected field - <campo>). |
401 | API Key ausente, inválida, revocada o expirada. |
403 | La API Key es válida pero le faltan permisos: Faltan scopes: <scope>. |
413 | El archivo supera los 30 MB (File too large). |
429 | Se superó el límite de peticiones (rate limit). |
Pedir una URL prefirmada
/v1/files/presignavaluos:writeURL prefirmada para subir el PDF
Alternativa a POST /v1/files cuando no quieres que el PDF pase por el API: devuelve una URL prefirmada a la que el cliente sube el archivo con un PUT directo al almacenamiento. El Content-Type del PUT debe ser exactamente el content_type devuelto, o la firma se rechaza. Después usa el file_id en document.file_id de POST /v1/avaluos.
La URL caduca a los 15 minutos.
| Campo | Tipo | Descripción |
|---|---|---|
filename | string | Nombre del archivo. Sólo informativo: no se usa para construir el file_id, que siempre es aleatorio. (máx. 200 caracteres) |
content_type | string | Content-Type con el que se firma. El PUT debe enviar exactamente este valor. (máx. 120 caracteres, por defecto "application/pdf") |
curl -X POST "$API_URL/v1/files/presign" \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filename": "avaluo.pdf",
"content_type": "application/pdf"
}'201 — URL prefirmada emitida.
{
"file_id": "uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf",
"upload_url": "https://storage.example.com/uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf?X-Amz-Signature=…",
"content_type": "application/pdf"
}| HTTP | Cuándo ocurre |
|---|---|
400 | Cuerpo o parámetros inválidos. message es un arreglo con un texto por problema (campo faltante, tipo incorrecto o campo no permitido). filename admite hasta 200 caracteres y content_type hasta 120. |
401 | API Key ausente, inválida, revocada o expirada. |
403 | La API Key es válida pero le faltan permisos: Faltan scopes: <scope>. |
429 | Se superó el límite de peticiones (rate limit). |
Después, sube el archivo a upload_url:
curl -X PUT "$UPLOAD_URL" -H "Content-Type: application/pdf" --data-binary @avaluo.pdf