AIIPWorld

API docs

Draft docs for the local build. Endpoints are described as the gateway behaves today; the public API address is not final.

Authentication

Create a key in the dashboard and send it as Authorization: Bearer sk_... (or x-api-key). The key is shown once; keep it server-side, never in browser code.

POST /v1/render

Send exactly one of html or url. output is pdf (default), png or jpeg. options is passed to the rendering engine (page size, margins, landscape, background printing, header and footer templates, wait conditions and more). Unknown option names are rejected. Optional timeout_sec.

curl -X POST https://api.aiipworld.com/v1/render \
  -H "Authorization: Bearer $AIIPWORLD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"html":"<h1>Hello</h1><p>Rendered by headless Chromium.</p>","output":"pdf","options":{"format":"A4","print_background":true}}'

# returns {"job_id": "...", "status": "queued"}; then poll:
curl https://api.aiipworld.com/v1/jobs/JOB_ID -H "Authorization: Bearer $AIIPWORLD_API_KEY"

The response is 202 { job_id, status: "queued", credits_reserved }.

GET /v1/jobs/:id

Returns status (queued, running, succeeded, failed, timeout), result (pages, bytes, timings), download_url and expires_at once the job succeeded, error and timestamps. A key can only read its own jobs.

download_url is a short-lived signed link (10 minutes by default): fetch the file from it directly, no API key needed. Request the job again for a fresh link. Results are deleted at expires_at: 1 day on the free plan, 7 days on Starter and Pro, 30 days on Business; after that download_url is null and result_expired is true.

GET /v1/usage

Returns the current period, your plan, the credit balance (plan credits and top-up credits) and recent debits.

Credits and errors