Bulk HTTP Request — API Calls, JSON & Headers
Pricing
from $0.70 / 1,000 http request answereds
Bulk HTTP Request — API Calls, JSON & Headers
Send a list of HTTP requests (GET, POST, PUT, PATCH, DELETE) in one run: one row per request with status, response headers, parsed JSON or text body and timing. $1.00 per 1,000 requests answered + $0.001/run.
Pricing
from $0.70 / 1,000 http request answereds
Rating
0.0
(0)
Developer
Tagada Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Security
Limited permissionsShare
Bulk HTTP Request: API calls from a list, JSON and headers
Send many HTTP requests in one run and get one dataset row per request: status, response headers, the body as parsed JSON (or text), timing and redirects. Built for no-code and automation work (Clay, n8n, Make, Zapier, spreadsheets) where you have a list of ids or URLs and an API to call for each.
What you get per request
| field | meaning |
|---|---|
label, method, url | your input, so rows match your records |
finalUrl, redirects | where the request ended after redirects, and how many hops |
status, statusText, ok | the HTTP answer (ok = 2xx) |
headers | response headers as an object |
json | the body as real data when the response is JSON (parseJson on) |
text | the body as text otherwise (or when parseJson is off) |
contentType, bytes, truncated | body type, bytes read, and true when it was cut at maxBodyKb |
timingMs, attempts | time to the full body, and tries used |
error, errorMessage | a named reason when no HTTP answer came back (see below) |
Request headers are never copied into the output.
Input
- Requests: a list of
{url, method, headers, body, label}objects. Onlyurlis required. An objectbodyis sent as JSON. - URLs: a plain list that shares the Method, Headers and Body fields. Both lists can be used together (up to 10,000 requests per run).
- Method: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS (default GET).
- Follow redirects (default on, max 10 hops), timeout per request (default 30 s), retries (default 1), concurrency (default 5, max 20), parse JSON (default on), max stored body (default 1,024 KB).
Retries happen only after a network error, HTTP 429 or a 5xx answer, with back-off; a Retry-After header is honoured up to 10 s. Other 4xx answers are never retried. A retried POST can reach the server twice, so set Retries to 0 for calls that must not repeat.
Errors you can see in a row (no HTTP answer)
TIMEOUT, DNS_ERROR, CONNECTION_REFUSED, CONNECTION_RESET, TLS_ERROR, NETWORK_ERROR, TOO_MANY_REDIRECTS, SSRF_REFUSED, SCHEME_NOT_ALLOWED, INVALID_URL, INVALID_ROW. These rows are free.
Safety
- Public addresses only. A request whose host resolves to a private, loopback, link-local or cloud-metadata address (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16, ::1, fc00::/7, fe80::/10, 0.0.0.0 and similar) is refused with
SSRF_REFUSED, checked after DNS resolution and again on every redirect hop. Onlyhttpandhttpsare allowed. - Secrets stay out of the log. Authorization, Cookie,
*key*,*token*and similar header values are masked in logs, and URLs are logged without their query string. - Requests go out directly from the Apify platform. There is no proxy option.
Pricing
Pay per event, we pay the compute:
- $1.00 per 1,000 requests that got an HTTP answer (any status code, including 404 and 500: you got an answer). Cheaper on higher Apify plans.
- $0.001 per run.
- Not charged: network failures, timeouts, refused private addresses, invalid rows.
If the run's charge limit is reached the run stops cleanly, says so in its status message, and the rows already delivered are kept.
Run status
The run ends with a message such as DELIVERED: 18 of 20 request(s) answered: 15 x 2xx, 3 x 4xx; the 2 that got no answer were not charged. A run where every request failed at network level ends FAILED with the reason; invalid input ends SUCCEEDED with an Input error: ... message and no request is sent.
Example
{"method": "GET","headers": { "Accept": "application/json" },"urls": ["https://jsonplaceholder.typicode.com/todos/1","https://jsonplaceholder.typicode.com/todos/2"]}
Limits: responses are read up to maxBodyKb; binary content types (images, PDFs, archives) are counted in bytes but not stored. No cookies are kept between requests. Use only on services you are allowed to call.