Async & Automation

Batch Processing API

Queue large processing jobs across multiple URLs asynchronously. Background workers execute the tasks with bounded retries and deliver notifications when complete.

POST/v1/batch

Enqueues up to 100 URLs for parallel or queued execution. Returns an immediate job identifier and poll URL.

curl -X POST https://api-rendernest.duckdns.org/v1/batch \
  -H "Authorization: Bearer wf_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "operation": "extract/markdown",
    "urls": [
      "https://example.com/page-1",
      "https://example.com/page-2",
      "https://example.com/page-3"
    ],
    "webhook_url": "https://customer.com/webhooks/RenderNest"
  }'
Immediate Enqueue Responsejson
{
  "success": true,
  "request_id": "req_1725432200_8b7a6c",
  "data": {
    "job_id": "clz19x0abc001",
    "status": "queued",
    "items_count": 3,
    "poll_url": "/v1/jobs/clz19x0abc001"
  }
}
GET/v1/jobs/:jobId

Check status, progression counters, and completed outputs of any job.

curl -X GET https://api-rendernest.duckdns.org/v1/jobs/clz19x0abc001 \
  -H "Authorization: Bearer wf_live_xxxx"
Job Status Responsejson
{
  "success": true,
  "request_id": "req_1725432205_1c2d3e",
  "data": {
    "job_id": "clz19x0abc001",
    "operation": "extract/markdown",
    "status": "completed",
    "retry_count": 0,
    "created_at": "2026-09-04T04:10:00.000Z",
    "started_at": "2026-09-04T04:10:01.000Z",
    "completed_at": "2026-09-04T04:10:04.000Z",
    "output": {
      "total": 3,
      "completed": 3,
      "failed": 0,
      "results": [
        { "url": "https://example.com/page-1", "success": true, "data": { "markdown": "# Page 1..." } },
        { "url": "https://example.com/page-2", "success": true, "data": { "markdown": "# Page 2..." } },
        { "url": "https://example.com/page-3", "success": true, "data": { "markdown": "# Page 3..." } }
      ]
    }
  }
}