Universal Request Runner — Send Any HTTP Request
Pricing
from $0.00005 / actor start
Universal Request Runner — Send Any HTTP Request
Send any HTTP request (GET/POST/PUT/PATCH/DELETE) to any URL with custom headers, body & proxies. Supports sticky sessions (same IP across runs) — ideal for start a job then poll its status from one identity. No code needed.
Pricing
from $0.00005 / actor start
Rating
5.0
(1)
Developer
Vasram Sonagara
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Universal Request Runner
Send any HTTP request to any URL — with Apify Proxy and session support built in.
Universal Request Runner is a lightweight HTTP client Actor for the Apify platform. Send GET, POST, PUT, PATCH, or DELETE requests to any API or endpoint — with custom headers, a custom body, and Apify's proxy network — directly from the cloud. No code, no server, no Postman required.
What can you do with it?
- Call any REST API — send an API key in the headers and JSON in the body, get the parsed response back.
- Send webhooks and form submissions — POST data to any endpoint from the cloud, on a schedule.
- Bypass IP blocks — route requests through Apify's residential proxy network.
- Use sessions — attach a
sessionIdto keep requests on a consistent proxy identity. - Automate API calls — trigger runs via schedule, the Apify API, or integrations like Make, Zapier, and n8n.
Why use this Actor instead of curl or Postman?
| Need | curl / Postman | Universal Request Runner |
|---|---|---|
| Run from the cloud on a schedule | ❌ | ✅ Built-in scheduling |
| Use residential proxy IPs | ❌ Manual setup | ✅ One toggle |
| Consistent identity via sessions | ❌ Hard to manage | ✅ Just set a sessionId |
| Auto-save every response | Manual | ✅ Saved to dataset + key-value store |
| Share with non-developers | ❌ | ✅ Just a form, no code |
How to use it
- Open the Actor on Apify Store and click Try for free.
- Fill in the input form — only Target URL and HTTP Method are required.
- (Optional) Enable Proxy Configuration → Apify Proxy to route through residential IPs.
- (Optional) Add a Session ID to keep requests on the same proxy identity.
- Click Start. The response appears under Output and Dataset within seconds.
You can also run it on a schedule, or trigger it via the Apify API, Zapier, Make, or n8n.
Input
| Field | Type | Required | Description |
|---|---|---|---|
url | string | ✅ | Target URL, e.g. https://api.example.com/v1/users |
method | enum | ✅ | GET, POST (default), PUT, PATCH, DELETE |
headers | object | ❌ | Custom headers as JSON, e.g. {"Authorization": "Bearer xyz"} |
body | string | ❌ | Request body — JSON or plain text. JSON is detected automatically and sent with Content-Type: application/json. Ignored for GET/DELETE. |
sessionId | string | ❌ | Optional session identifier. Requests sharing the same sessionId are routed through the same proxy session. Requires a proxy to be enabled. |
proxyConfiguration | object | ❌ | Apify Proxy editor. Enable useApifyProxy for residential IPs. |
timeoutSecs | integer | ❌ | Request timeout in seconds (default 30). |
Sample input:
{"url": "https://httpbin.org/post","method": "POST","headers": {"Authorization": "Bearer my_token_123","X-Custom-Header": "hello"},"body": "{\"name\": \"Alice\", \"age\": 30}","sessionId": "mysession1","proxyConfiguration": { "useApifyProxy": true }}
Output
Every run writes one record to the default dataset, and stores the latest result under the key OUTPUT in the key-value store.
{"url": "https://httpbin.org/post","method": "POST","statusCode": 200,"statusMessage": "OK","responseHeaders": {"content-type": "application/json"},"responseBody": {"json": { "name": "Alice", "age": 30 },"origin": "203.0.113.7","url": "https://httpbin.org/post"}}
JSON responses are automatically parsed into an object. HTML or plain-text responses are kept as raw strings — nothing is lost.
If a request fails, the record contains error and stack instead of the response fields, so you can diagnose it from the Failed Requests dataset view. Download results as JSON, HTML, CSV, or Excel from the Console.
Pricing
This Actor uses Apify's Pay-Per-Event (PPE) model — pay only for what you use.
| Event | When it's charged | Price |
|---|---|---|
request-sent | Once, right before the HTTP request is sent | ~$0.01 per run |
Total cost = the event fee above + Apify's compute cost (billed separately, based on runtime and memory). Since a single request completes in 1–3 seconds, compute cost per run is negligible. No subscriptions, no rental fees — you pay only when a request is actually sent. See exact pricing on the Actor's Store page before running.
Run locally
# 1. Install the Apify CLInpm install -g apify-cli# 2. Authenticateapify login# 3. Install dependenciespython -m venv .venvsource .venv/bin/activate # Windows: .venv\Scripts\activatepip install -r requirements.txt# 4. Run with a test inputapify run --input-file ../test-input.json
Results are written to the local storage/ directory. Local storage isn't pushed to the Apify Console — deploy to see results there. To test with a proxy locally, include proxyConfiguration with useApifyProxy: true in your input (uses your account's proxy quota).
Deploy to Apify
apify loginapify push
Then open the Actor under Actors → My Actors, configure Proxy Configuration, and click Start.
Tips
- JSON body: just paste JSON —
Content-Type: application/jsonis set automatically. Override by setting the header yourself if needed. - GET / DELETE: the
bodyfield is ignored for these methods. - Redirects: not followed by default, so you see the raw
3xxresponse. - One request per run, by design — keeps the Actor simple and composable. Chain runs via the Apify API, scheduling, or integrations like Make/n8n, and reuse a
sessionIdwhere a consistent identity is needed.
FAQ
Does it work without an Apify account? Locally, yes — requests are sent directly. On the platform, you need an Apify account; proxy usage needs proxy quota.
Can I send multiple requests in one run? No, by design. One request per run keeps it simple and composable — chain runs together for multi-step flows.
Is my API token or Authorization header logged? No. The Actor uses Apify's logger, which censors sensitive data. Your headers are sent only to the target URL.
Why is there a charge per run? It covers infrastructure, maintenance, and proxy support — kept as a small markup over Apify's raw compute cost.
Disclaimer: This Actor is a generic HTTP client. You are responsible for complying with the target service's Terms of Service and applicable law.