Documentación
DocuForge lee y estructura documentos. Autentica con JWT o API key.
Abrir API interactiva (Swagger)
La base URL es el dominio público de esta app (p. ej. https://TU_DOMINIO o en local http://localhost:3000). El API Go no se expone directamente.
Convertir con API key
curl -X POST https://TU_DOMINIO/api/v1/documents/convert \ -H "X-API-Key: df_live_..." \ -F "file=@documento.pdf"
Convertir con JWT
curl -X POST https://TU_DOMINIO/api/v1/documents/convert \ -H "Authorization: Bearer <token>" \ -F "file=@documento.docx"
Endpoints de clientes
- POST /api/v1/auth/login
- POST /api/v1/documents/convert
- POST /api/v1/documents/parse
- POST /api/v1/documents/:id/to-json
- POST /api/v1/documents/analyze
- GET /api/v1/extraction-profiles/default
- POST/GET /api/v1/api-keys · DELETE /api/v1/api-keys/:id
- GET /api/v1/billing/balance
- GET /api/v1/billing/ledger
- GET /api/v1/billing/topup-options
- POST /api/v1/billing/checkout
Cobro por página: convert $10 · parse $10 · analyze $15 (CLP). Respuesta 402 si el saldo no alcanza.
Modos con IA externa (precise, hybrid, ai) requieren accept_external_ai=true. Sin eso la API responde 403 con external_ai_consent_required.
response_mode en to-json: template (campos de negocio), semantic (extracción completa sin estructura) o full (estructura + extracción, default). Siempre se persiste el JSON completo; el modo solo filtra la respuesta.
curl -X POST https://TU_DOMINIO/api/v1/documents/ID/to-json \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"mode":"precise","accept_external_ai":true,"response_mode":"template"}'Documentación interactiva: /docs/api