Skip to content
Hoody.com

List, inspect, retrieve results from, and cancel async cURL jobs submitted with mode=async. These endpoints expose the lifecycle of background HTTP requests, letting you monitor long-running downloads, audit historical activity, and recover response bodies after asynchronous execution.

A job progresses through these states:

  • pending — queued, waiting for execution
  • running — currently executing
  • completed — finished successfully, response data available
  • failed — execution failed, error details recorded
  • cancelled — user-cancelled before completion

Retrieve a list of all async jobs sorted by creation time (newest first). Use this endpoint to discover job IDs, audit historical request activity, and monitor long-running downloads.

Each row’s url has its credentials masked as in client.curl.jobs.get(), and method is the method that was sent: POST for a request with a body and no method, never null.

NameInTypeRequiredDescription
pagequeryintegerNo1-based page number
limitqueryintegerNoItems per page. The current handler returns all items when omitted.

Paginated list of job summaries returned in newest-first order. Each summary carries the job id, current status, target URL, HTTP method, display name, and timestamps.

{
"items": [
{
"completed_at": "2024-01-15T10:30:45Z",
"created_at": "2024-01-15T10:30:00Z",
"id": "550e8400-e29b-41d4-a716-446655440000",
"method": "GET",
"name": "daily-report-download",
"status": "completed",
"url": "https://reports.example.com/daily.pdf"
},
{
"completed_at": null,
"created_at": "2024-01-15T10:31:00Z",
"id": "660e8400-e29b-41d4-a716-446655440111",
"method": "POST",
"name": "api-batch-request",
"status": "running",
"url": "https://api.example.com/batch"
}
],
"meta": {
"limit": 50,
"page": 1,
"total": 2
}
}
Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/jobs?page=1&limit=50" \
-H "Authorization: Bearer <token>"

Retrieve complete details of a specific job, including its request configuration, current status, response data (when completed), and execution metadata. Use this endpoint to check job progress or retrieve full results after completion.

Credentials are redacted: in request, auth_password, proxy_password, bearer_token and cookie, credential headers and form fields (Authorization, Proxy-Authorization, Cookie, X-Api-Key, names with token, secret, password and similar, any case), credential keys in a json body and in a raw data body that is JSON or a URL-encoded form, auth_user / proxy_user when they have no password (the user is then the token), and in the URL, proxy URL and referer: the password, the user name when there is no password (https://TOKEN@host), and credential parameters of the query and of the fragment (#access_token=) read [REDACTED]. The job ran with the real values.

NameInTypeRequiredDescription
idpathstringYesUnique job identifier (UUID format)

Full job details with the original request configuration, current status, and recorded response (when present).

{
"completed_at": "2024-01-15T10:30:01Z",
"created_at": "2024-01-15T10:30:00Z",
"error": null,
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "api-request",
"request": {
"follow_redirects": true,
"method": "GET",
"timeout": 30,
"url": "https://jsonplaceholder.typicode.com/posts/1"
},
"response": {
"body": [
123,
34,
105,
100,
34
],
"connect_time": 0.045,
"content_type": "application/json",
"effective_url": "https://jsonplaceholder.typicode.com/posts/1",
"headers": {
"content-type": "application/json"
},
"namelookup_time": 0.012,
"pretransfer_time": 0.098,
"redirect_count": 0,
"redirect_time": 0,
"size_download": 5,
"size_upload": 0,
"speed_download": 21,
"speed_upload": 0,
"starttransfer_time": 0.221,
"status_code": 200,
"total_time": 0.234
},
"retry_attempts": 1,
"retry_count": 0,
"started_at": "2024-01-15T10:30:00Z",
"status": "completed"
}
Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/jobs/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer <token>"

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

NameInTypeRequiredDescription
idpathstringYesUnique job identifier (UUID format)

Returns the raw response body from a completed job, with the original upstream headers preserved. The exact content type and body shape match what the target server returned.

Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/jobs/550e8400-e29b-41d4-a716-446655440000/result" \
-H "Authorization: Bearer <token>"

Cancel a job that is currently pending or running. Once cancelled, the job cannot be restarted. Cancelling is idempotent: a job that already finished is left as it is and the call still succeeds. With purge=true, a finished job (completed, failed or cancelled) is deleted instead, with its saved downloads; a job that is still pending or running is then refused with 409 JOB_NOT_FINISHED.

NameInTypeRequiredDescription
idpathstringYesUnique job identifier (UUID format)
purgequerybooleanNotrue deletes a finished job and its saved downloads instead of cancelling it (default false)

The job was cancelled, or it had already finished and is left as it is. With purge=true, the job and its saved downloads were deleted.

{
"success": true,
"message": "Job cancelled",
"purged": false,
"removed_files": 0
}
Terminal window
curl -X DELETE "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/jobs/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer <token>"