String API
Fetch

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

CapabilityFieldPage
Response shapeformatResponse formats
Extract specific fieldsjsonSchemaStructured extraction
Run a real browserexecuteJS, requireWSSJavaScript rendering
Choose when the page is readwaitUntilWaiting for page load
Read the page's iframesincludeIframes, captureIframesIframes
Return the page's API callscaptureXHRXHR capture
Forward request headersheadersCustom headers
Geolocate the requestcountryCodeProxies & geolocation
Captcha handlingsolveCaptchaCaptcha solving
Require a valid TLS certificateignoreCertificateErrorsTLS verification
Capture an image / drive the pagescreenshot, actionsScreenshots & 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.