Overview
Execute an HTTP request to any URL and get the data back, unblocked.
POST /fetch executes an HTTP or HTTPS request to a URL and returns the result. The service chooses the most
appropriate strategy for the target automatically — from a lightweight request-based fetch to full browser execution,
residential proxies, and antibot handling when needed.
curl https://request.usestring.ai/v1/fetch \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com", "format": "json" }'Methods
Supports GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS. Method names are case-insensitive, so get
and Post work too; any other method returns a 400 that names it. A request body is allowed on every method except
GET and HEAD — sending one with either returns a 400.
A string body is sent as given. An object body is sent as the exact JSON text you wrote, so key order, number
formatting such as 1.50 or 1e3, and integers too large for a double reach the destination unchanged.
Google search URLs
Fetching https://www.google.com/search?q=... returns search results as structured JSON, not the results page's HTML.
Google blocks direct fetches of that page, so the request is answered by Search and the
response is Search's — a results array.
The query comes from the URL's q parameter. Locale comes from gl when it's present and from the Google domain
otherwise, so google.co.uk/search?q=... and google.com/search?q=...&gl=uk both return UK results. A locale Search
doesn't support falls back to US. format, jsonSchema, and the other page-shaping fields don't apply, since there's
no HTML for them to act on. To get a later results page or results from a date range, call Search directly with
page or
dateRange and sortBy.
These requests bill at the Search rate rather than the Fetch rate. Every other Google URL — Maps, News, the image and
shopping tabs, everything outside /search — fetches normally.
What you can control
| Capability | Field | Page |
|---|---|---|
| Response shape | format | Response formats |
| Extract specific fields | jsonSchema | Structured extraction |
| Run a real browser | executeJS, requireWSS | JavaScript rendering |
| Choose when the page is read | waitUntil | Waiting for page load |
| Read the page's iframes | includeIframes, captureIframes | Iframes |
| Return the page's API calls | captureXHR | XHR capture |
| Forward request headers | headers | Custom headers |
| Geolocate the request | countryCode | Proxies & geolocation |
| Captcha handling | solveCaptcha | Captcha solving |
| Require a valid TLS certificate | ignoreCertificateErrors | TLS verification |
| Capture an image / drive the page | screenshot, actions | Screenshots & actions |
For the complete parameter list and response schema, see the /fetch API reference.
How billing works
Usage is billed per request, and the rate depends on the strategy the API selects (request-based vs. browser-based) and
the proxy class the target needs. Most failures are not billed. A target TLS/SSL failure can still be billed when an
upstream attempt has already incurred billable work; those 502 responses include
x-billed-request-type. See Pricing.
Access control
Some destinations require approval before use, and some request patterns require KYC. These return distinct status codes so you can branch on them — see Access control & KYC.