Universal Request Runner — Send Any HTTP Request avatar

Universal Request Runner — Send Any HTTP Request

Pricing

from $0.00005 / actor start

Go to Apify Store
Universal Request Runner — Send Any HTTP Request

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

Vasram Sonagara

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

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 sessionId to 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?

Needcurl / PostmanUniversal 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 responseManual✅ Saved to dataset + key-value store
Share with non-developers✅ Just a form, no code

How to use it

  1. Open the Actor on Apify Store and click Try for free.
  2. Fill in the input form — only Target URL and HTTP Method are required.
  3. (Optional) Enable Proxy Configuration → Apify Proxy to route through residential IPs.
  4. (Optional) Add a Session ID to keep requests on the same proxy identity.
  5. 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

FieldTypeRequiredDescription
urlstringTarget URL, e.g. https://api.example.com/v1/users
methodenumGET, POST (default), PUT, PATCH, DELETE
headersobjectCustom headers as JSON, e.g. {"Authorization": "Bearer xyz"}
bodystringRequest body — JSON or plain text. JSON is detected automatically and sent with Content-Type: application/json. Ignored for GET/DELETE.
sessionIdstringOptional session identifier. Requests sharing the same sessionId are routed through the same proxy session. Requires a proxy to be enabled.
proxyConfigurationobjectApify Proxy editor. Enable useApifyProxy for residential IPs.
timeoutSecsintegerRequest 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.

EventWhen it's chargedPrice
request-sentOnce, 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 CLI
npm install -g apify-cli
# 2. Authenticate
apify login
# 3. Install dependencies
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# 4. Run with a test input
apify 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 login
apify push

Then open the Actor under Actors → My Actors, configure Proxy Configuration, and click Start.


Tips

  • JSON body: just paste JSON — Content-Type: application/json is set automatically. Override by setting the header yourself if needed.
  • GET / DELETE: the body field is ignored for these methods.
  • Redirects: not followed by default, so you see the raw 3xx response.
  • 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 sessionId where 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.