Every Blueport product, one integration surface.
All Blueport APIs live under a single host and a single organisation key. Pick a product below for its full guide — the conventions on this page apply to every one of them.
Product subdomains (like pdf.blueport.io) remain as permanent aliases — existing integrations never break. New integrations should use api.blueport.io/v1/….
PDF in, clean JSON out — semantic extraction of invoices, contracts and forms. No templates, typed values, grouped entities.
HTML in, pixel-perfect PDF out — a real browser engine renders your markup. Three flavours: raw HTML, inline template + data, stored templates.
• Auth: your organisation's key in the x-api-key header. One key covers every product; owners and admins view (masked) and rotate it at app.blueport.io. Rotation invalidates the old key immediately.
• Responses: JSON endpoints answer with {"ok", "data", "meta"}; every response carries a request_id (body or x-request-id header) — quote it in any support conversation.
• Errors: {"ok": false, "error", "request_id"} with conventional status codes — 401 bad key, 400 bad input, 413 too large, 5xx retry with backoff.
• Billing: usage is metered per product in whole units (documents, renders); the exact charge comes back on every response as billed_units. Failed calls are never billed.
• Privacy: your payloads are processed in flight and never stored — only usage counts and timings are recorded.
Person-to-person, included with every plan: portia@blueport.io. Your usage and API key live at app.blueport.io.