APIVoid logo

Request Timeouts

Every HTTP client lets you set a request timeout: how long to wait for a response before giving up. This page lists the typical and maximum response time of each API, suggests a client timeout for each, and explains why response times vary.

How to choose a timeout

A timeout is an upper bound, not a wait: fast responses still come back immediately, the timeout only decides how long your code waits before aborting a request that is still in flight. That makes a generous timeout cheap and a short one expensive: if the timeout is below the API's maximum response time, you abort requests the API was about to answer, and each aborted request has to be retried from zero. When in doubt, use 180 seconds: that covers every API, including the slowest ones such as Screenshot API, HTTP Tracker API and URL to PDF API.

What the timeout applies to differs by HTTP client. Node.js AbortSignal.timeout(), Go's http.Client.Timeout and PHP cURL's CURLOPT_TIMEOUT cap the whole request, from connection to full response. Python urllib's timeout applies to the connection attempt and to each blocking socket read instead, so it aborts a server that stops sending data for that long rather than a response that legitimately takes longer to complete.

Response times per API

Average response times are measured under normal conditions; the "can take up to" column is the worst case you should plan for, and the suggested timeout sits comfortably above it. APIs without a listed maximum stay close to their average range, and the suggested 30-second timeout leaves ample margin.

APIAvg response timeCan take up toSuggested timeout
Account Info API150 ms – 250 ms30 seconds
ASN Info API150 ms – 500 ms30 seconds
BIMI Validator API150 ms – 3 s30 seconds60 seconds
DKIM Validator API150 ms – 500 ms30 seconds
DMARC Validator API150 ms – 500 ms30 seconds
DNS Lookup API150 ms – 500 ms15 seconds30 seconds
DNS Propagation API500 ms – 1 s15 seconds30 seconds
DNSSEC Status API150 ms – 500 ms30 seconds
Domain Age API150 ms – 3 s30 seconds60 seconds
Domain Info API150 ms – 3 s30 seconds60 seconds
Domain Reputation API150 ms – 3 s30 seconds
Email Verify API150 ms – 3 s30 seconds
EML Insights API500 ms – 5 s30 seconds60 seconds
Geo Request API500 ms – 5 s30 seconds60 seconds
HTML to PDF API5 s – 10 s150 seconds180 seconds
HTML to PNG API5 s – 10 s150 seconds180 seconds
HTTP Tracker API5 s – 10 s150 seconds180 seconds
HTTP3 Status API1 s – 3 s30 seconds60 seconds
IP Reputation API150 ms – 3 s30 seconds
Parked Domain API500 ms – 3 s30 seconds60 seconds
Phone Validator API150 ms – 500 ms30 seconds
Ping Test API3 s – 5 s30 seconds
Port Scan API500 ms – 3 s30 seconds
QR Scan API250 ms – 3 s30 seconds
Reverse IP API500 ms – 3 s30 seconds
Screenshot API5 s – 10 s150 seconds180 seconds
Security Headers API500 ms – 5 s30 seconds60 seconds
Site Trustworthiness API3 s – 5 s75 seconds90 seconds
SPF Validator API150 ms – 500 ms30 seconds
SSL Info API250 ms – 3 s30 seconds60 seconds
TLS Check API250 ms – 3 s60 seconds90 seconds
Tor Test API3 s – 5 s30 seconds60 seconds
URL Reputation API3 s – 5 s60 seconds90 seconds
URL Status API3 s – 5 s60 seconds90 seconds
URL to PDF API5 s – 10 s150 seconds180 seconds
VPN Test API3 s – 5 s30 seconds60 seconds

Why response times vary

Two main factors drive most of the variation:

This is why the table lists ranges rather than single numbers: pick your timeout from the "can take up to" column, not from the average. This leaves enough headroom for slower targets and more demanding request options, reducing avoidable client-side timeouts during requests that are still processing normally.

Timeouts and retries

Timeouts and retries work together: the timeout decides when to give up on a single attempt, the retry policy decides what happens next. A timed-out request should be retried with incremental backoff exactly like a 5xx response, see API Errors & Retries for ready-to-use retry examples in Python, PHP, Node.js, Go and Java.