Skip to content
Hoody.com

List, inspect, cancel, and retrieve results of async curl jobs. These endpoints operate on background HTTP requests previously submitted with mode=async. Jobs progress through the following states: pendingrunningcompleted, failed, or cancelled.

Use these endpoints when you need to monitor long-running operations, audit historical request activity, or retry failed jobs.

Retrieve a paginated list of all async jobs, sorted by creation time (newest first). Each entry includes a summary of the job’s status and target URL.

Use Cases:

  • Monitor status of long-running downloads
  • Track multiple concurrent API requests
  • Audit historical request activity
  • Identify failed requests for retry
NameInTypeRequiredDescription
pagequeryintegerNo1-based page number
limitqueryintegerNoItems per page (returns all items when omitted)
{
"items": [
{
"id": "7f3a4d8e-2b1c-4f9a-8e6d-1a2b3c4d5e6f",
"name": "nightly-export",
"status": "completed",
"method": "POST",
"url": "https://api.example.com/v1/exports",
"created_at": "2025-01-15T08:42:11.000Z",
"completed_at": "2025-01-15T08:42:14.000Z"
},
{
"id": "9b8c7d6e-5f4a-3b2c-1d0e-9f8a7b6c5d4e",
"name": "webhook-retry",
"status": "running",
"method": "GET",
"url": "https://hooks.example.com/deliveries/12345",
"created_at": "2025-01-15T08:41:58.000Z",
"completed_at": null
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 47
}
}
const iterator = await client.curl.jobs.listIterator({ page: 1, limit: 20 });
Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.icu/api/v1/curl/jobs?page=1&limit=20"

Retrieve complete details of a single job, including its request configuration, current status, response data (if completed), and execution metadata.

Job States:

  • Pending: Queued, waiting for execution
  • Running: Currently executing
  • Completed: Successfully finished, response available
  • Failed: Execution failed, error details in response
  • Cancelled: User-cancelled before completion
NameInTypeRequiredDescription
idpathstringYesUnique job identifier (UUID format)
{
"id": "7f3a4d8e-2b1c-4f9a-8e6d-1a2b3c4d5e6f",
"name": "nightly-export",
"status": "completed",
"session_id": "sess_a1b2c3d4e5f6",
"created_at": "2025-01-15T08:42:11.000Z",
"started_at": "2025-01-15T08:42:11.500Z",
"completed_at": "2025-01-15T08:42:14.000Z",
"error": null,
"retry_count": 2,
"retry_attempts": 1,
"request": {
"url": "https://api.example.com/v1/exports",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer <token>"
},
"data": "{\"format\":\"csv\"}",
"mode": "async",
"response": "json",
"timeout": 30000,
"follow_redirects": true
},
"response": {
"status_code": 200,
"headers": {
"Content-Type": "application/json",
"X-Request-Id": "req_abc123"
},
"body": [123, 34, 115, 116, 97, 116, 117, 115, 34, 58, 32, 34, 111, 107, 34, 125],
"total_time": 2.487,
"namelookup_time": 0.012,
"connect_time": 0.045,
"pretransfer_time": 0.046,
"starttransfer_time": 0.892,
"redirect_time": 0.0,
"redirect_count": 0,
"size_download": 17,
"size_upload": 15,
"speed_download": 6.83,
"speed_upload": 6.03,
"effective_url": "https://api.example.com/v1/exports"
}
}
const job = await client.curl.jobs.get("7f3a4d8e-2b1c-4f9a-8e6d-1a2b3c4d5e6f");
Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.icu/api/v1/curl/jobs/7f3a4d8e-2b1c-4f9a-8e6d-1a2b3c4d5e6f"

Retrieve only the HTTP response body from a completed job in transparent mode. Returns the raw response with original headers, exactly as received from the target server.

NameInTypeRequiredDescription
idpathstringYesUnique job identifier (UUID format)
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_abc123
{"status": "ok", "export_id": "exp_9876"}
const result = await client.curl.jobs.getResult("7f3a4d8e-2b1c-4f9a-8e6d-1a2b3c4d5e6f");
Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.icu/api/v1/curl/jobs/7f3a4d8e-2b1c-4f9a-8e6d-1a2b3c4d5e6f/result"

Attempt to cancel a job that is currently pending or running. Once cancelled, the job cannot be restarted.

NameInTypeRequiredDescription
idpathstringYesUnique job identifier (UUID format)
{
"id": "9b8c7d6e-5f4a-3b2c-1d0e-9f8a7b6c5d4e",
"status": "cancelled"
}
await client.curl.jobs.cancel("9b8c7d6e-5f4a-3b2c-1d0e-9f8a7b6c5d4e");
Terminal window
curl -X DELETE "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.icu/api/v1/curl/jobs/9b8c7d6e-5f4a-3b2c-1d0e-9f8a7b6c5d4e"