Retrieve a public HTTPS URL from the US, Germany, Japan, Brazil, or India
Retrieve a public HTTPS URL from the US, Germany, Japan, Brazil, or India. Use HTTP mode for lightweight retrieval, or browser mode to render JavaScript pages. For pages with bot protection, set max_tier to L2 for managed unblocking at $0.05 USDC; L0/L1 costs $0.02 USDC. Returns the fetched body and an Ed25519-signed receipt for provenance.
20000 (raw units)
price
4
calls / 30d
2
unique payers
2026-09-17
updated
Provider
regionfetch.dev · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x97ac53d3bc5ae0a29fd2a40233533374589365be",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "20000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"country": "US",
"max_tier": "L1",
"mode": "http",
"url": "https://example.com/"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"data": {
"body": "<!doctype html>...",
"contentType": "text/html",
"url": "https://example.com/"
},
"receipt": {
"attestation": {
"algorithm": "Ed25519",
"keyId": "0123456789abcdef",
"signature": "base64url-signature"
},
"country": "US",
"maxTier": "L1",
"mode": "http",
"quotedAmount": "0.02",
"requestId": "gf_0123456789abcdef0123456789abcdef",
"resolvedTier": "L0",
"status": "succeeded",
"statusCode": 200,
"supplier": "decodo"
}
},
"type": "json"
}
},
"routeTemplate": "/api/fetch",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"country": {
"description": "Country from which the request should originate.",
"enum": [
"US",
"DE",
"JP",
"BR",
"IN"
],
"type": "string"
},
"max_tier": {
"default": "L1",
"description": "Maximum permitted capability tier. L0/L1 use Decodo; set L2 for pages with bot protection to add IPRoyal managed unblocking. Unresolved CAPTCHA or bot challenges may still fail.",
"enum": [
"L0",
"L1",
"L2"
],
"type": "string"
},
"mode": {
"default": "http",
"description": "Use http for lightweight retrieval or browser to render JavaScript pages.",
"enum": [
"http",
"browser"
],
"type": "string"
},
"url": {
"description": "Public HTTPS URL to retrieve. Private and loopback targets are rejected.",
"format": "uri",
"maxLength": 2048,
"pattern": "^https://",
"type": "string"
}
},
"required": [
"url",
"country"
],
"type": "object"
},
"bodyType": {
"enum": [
"json"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"additionalProperties": false,
"properties": {
"example": {
"properties": {
"data": {
"properties": {
"body": {
"type": "string"
},
"contentType": {
"type": [
"string",
"null"
]
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"body"
],
"type": "object"
},
"receipt": {
"properties": {
"attestation": {
"properties": {
"algorithm": {
"const": "Ed25519",
"type": "string"
},
"keyId": {
"type": "string"
},
"signature": {
"type": "string"
}
},
"required": [
"algorithm",
"keyId",
"signature"
],
"type": "object"
},
"country": {
"enum": [
"US",
"DE",
"JP",
"BR",
"IN"
],
"type": "string"
},
"maxTier": {
"enum": [
"L0",
"L1",
"L2"
],
"type": "string"
},
"mode": {
"enum": [
"http",
"browser"
],
"type": "string"
},
"quotedAmount": {
"type": "string"
},
"requestId": {
"type": "string"
},
"resolvedTier": {
"enum": [
"L0",
"L1",
"L2"
],
"type": "string"
},
"status": {
"enum": [
"succeeded",
"failed"
],
"type": "string"
},
"supplier": {
"enum": [
"decodo",
"iproyal"
],
"type": "string"
}
},
"required": [
"requestId",
"supplier",
"country",
"mode",
"maxTier",
"resolvedTier",
"status",
"attestation"
],
"type": "object"
}
},
"required": [
"data",
"receipt"
],
"type": "object"
},
"type": {
"const": "json",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://regionfetch.dev/api/fetch" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://regionfetch.dev/api/fetch");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://regionfetch.dev/api/fetch")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/7484.json, and this resource appears in /discovery/resources and /discovery/search.