HTTP Request Execution
Synchronous GET and POST execution, asset sharing, and request replay.
The Hoody cURL service provides containerized HTTP request execution, session management, asynchronous job tracking, request scheduling, and response storage. It runs as a long-lived sidecar accessible through a per-container HTTPS endpoint and is designed for agents that need to call arbitrary external APIs while persisting cookies, headers, and large response bodies across calls.
HTTP Request Execution
Synchronous GET and POST execution, asset sharing, and request replay.
Session Management
Persist cookies, headers, and authentication state across requests using named or auto-managed sessions.
Job Management
List, inspect, cancel, and retrieve results for asynchronous long-running requests.
Request Scheduling
Create recurring HTTP requests using cron expressions and inspect scheduled task state.
Storage Management
List, retrieve, and delete response files that have been offloaded to durable storage.
GET /api/v1/curl/healthReturns the standardized 9-field health snapshot for the cURL service. This endpoint is unauthenticated and intended for liveness probes and operational monitoring.
{ "status": "ok", "service": "curl", "built": "2024-01-15T09:00:00Z", "started": "2024-01-15T10:00:00Z", "memory": null, "fds": 42, "pid": 1234, "ip": "10.0.0.5", "userAgent": null}| Error Code | Title | Description | Resolution |
|---|---|---|---|
ORIGIN_NOT_ALLOWED | Origin rejected | The server runs in origin-list CORS mode and the request’s Origin header is not on the list; the request is refused before it reaches a handler | Call from an allowed origin, or add the origin to the server’s —cors list |
import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.curl.kit.getHealth();curl -X GET 'https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/health'GET /metricsExports a minimal Prometheus-compatible metrics set for dashboards and alerting. The response body uses the standard Prometheus text exposition format and is not JSON.
# HELP hoody_curl_requests_total Total POST requests processed# TYPE hoody_curl_requests_total counterhoody_curl_requests_total{service="curl",status="ok"} 42hoody_curl_requests_total{service="curl",status="error"} 3# HELP hoody_curl_active_sessions Active cURL sessions# TYPE hoody_curl_active_sessions gaugehoody_curl_active_sessions 5# HELP hoody_curl_jobs_total Total async jobs processed# TYPE hoody_curl_jobs_total counterhoody_curl_jobs_total{status="completed"} 18hoody_curl_jobs_total{status="failed"} 1hoody_curl_jobs_total{status="cancelled"} 0| Error Code | Title | Description | Resolution |
|---|---|---|---|
ORIGIN_NOT_ALLOWED | Origin rejected | The server runs in origin-list CORS mode and the request’s Origin header is not on the list; the request is refused before it reaches a handler | Call from an allowed origin, or add the origin to the server’s —cors list |
import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN });
await client.curl.kit.getMetrics();curl -X GET 'https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/metrics'