API parameters

All parameters are passed in the query string of https://api.wyndpath.com/v1/. Only url is required, the rest fine-tunes the behavior.

ParameterTypeDefaultDescription
urlURLnoneRequired. The target URL (http or https), percent-encoded (e.g. https%3A%2F%2Fexample.com%2Flist%3Fp%3D1). Essential if the URL contains ?, & or =. Most HTTP libraries encode it for you.
render_js0 / 10JavaScript rendering via a real browser (dynamic pages).
countryISO codenoneDesired exit country (e.g. fr). Covered countries below.
any_country0 / 10Accepts another country if the requested one is unavailable.
sessiontextnoneReuses the same IP across requests carrying the same value. See "Sticky sessions" below.
session_pintextnonePins the session (e.g. ip = same IP guaranteed). See "Sticky sessions".
max_costintegernoneCost. Credit ceiling: the request is rejected if the estimate exceeds it.
optimize_request0 / 10Cost. Blocks unnecessary resources to reduce cost and latency.
retries0-5autoNumber of retries on failure.
timeoutsecondsautoMaximum duration of a request.
validate0 / 11Detects block pages and triggers escalation if needed.
follow_redirects0 / 11Follows HTTP redirects.
keep_headers0 / 10Forwards your request headers to the target.
refererURLnoneReferer header to send to the target.
Covered countries. Datacenter: FR, BE, DE, ES, GB. Residential: FR, BE. Pass the ISO code (e.g. country=fr); add any_country=1 to accept a fallback if the requested country is momentarily unavailable.
Control your spend. The two cost parameters go hand in hand: optimize_request=1 reduces cost and latency (it blocks resources that aren't needed to load), while max_cost=N rejects any request whose estimate exceeds N credits. Combine them for a predictable budget.

Sticky sessions (same IP)

By default, each request can exit through a different IP. To chain several requests from the same IP (browse a paginated site, keep a cart, behave like a single visitor), give them the same session value, a label you choose.

# All 3 pages exit through the same IP thanks to session=scan-42.
# curl -G + --data-urlencode encodes the target URL (the ?p=1 is part of it).
curl -G "https://api.wyndpath.com/v1/" --data-urlencode "api_key=YOUR_KEY" \
  --data-urlencode "session=scan-42" --data-urlencode "url=https://example.com/list?p=1"
curl -G "https://api.wyndpath.com/v1/" --data-urlencode "api_key=YOUR_KEY" \
  --data-urlencode "session=scan-42" --data-urlencode "url=https://example.com/list?p=2"
curl -G "https://api.wyndpath.com/v1/" --data-urlencode "api_key=YOUR_KEY" \
  --data-urlencode "session=scan-42" --data-urlencode "url=https://example.com/list?p=3"

session_pin specifies what the session is locked onto: session_pin=ip strictly guarantees the same IP as long as you reuse the same session. Without a pin, WyndPath favors the same IP but may switch if it becomes unavailable.

A session is ephemeral: reuse the same value as long as you need it, then change it to start over on a fresh IP.

GET and POST methods

By default, your calls are GET. The API also accepts POST: a POST to /v1/ is replayed as a POST to the target, with the raw body and the Content-Type of your request forwarded as-is. In both cases, the WyndPath parameters stay in the query string, they never touch the body.

You don't choose the proxy or the engine. The IP type (datacenter / residential) and browser rendering are selected automatically based on the target. Use render_js to force the browser, country for the country, max_cost to cap the spend.