Developers

REST API

Everything the workflow action does is available over HTTP, authenticated with a workspace API key.

Base URL

https://pdfgen-api.appexpertly.com

Authenticating

Requests carry a workspace key. Keys are issued per workspace and can be rotated without downtime — see API keys.

Generating a document

POST /api/v1/generate queues the render and returns immediately with a request id and a URL to poll. This is the path to use for anything triggered by a user action, because it does not hold the connection open while Chromium works.

POST /api/v1/generate

{
  "template_id": "tpl_invoice_a4",
  "data": {
    "contact": { "full_name": "Dana Reyes" },
    "total": 1840.00
  },
  "expires_in_days": 30
}

202 { "request_id": "req_...", "poll_url": "/api/v1/generate/req_..." }

Checking on it

GET /api/v1/generate/:request_id returns the current status, and the signed URL once the document exists.

Rendering inline

POST /api/v1/preview renders and returns the PDF bytes in the response, with Content-Type: application/pdf. It is the right call when you need the file in hand rather than a link to it, and the wrong one for bulk work — use batch jobs there.

Other endpoints

Method and pathDoes
GET /api/v1/templatesLists templates the workspace can use
POST /api/v1/generate/batchQueues a batch run
GET /api/v1/jobs/:idReports batch progress
GET /api/v1/workspaces/me/usageExecutions this period and what they cost
GET /api/v1/workspaces/me/logsRecent generations
POST /api/v1/workspaces/keys/rotateIssues a new key pair

Billing

Every completed render is one execution and is charged as one, whichever path produced it. A render that fails is logged and not billed. Seepricing.