curl --request POST \
--url https://api.cloud.gomry.com/v1/fetch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/events/summer-fest"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://example.com/events/summer-fest'})
};
fetch('https://api.cloud.gomry.com/v1/fetch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.cloud.gomry.com/v1/fetch"
payload = { "url": "https://example.com/events/summer-fest" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Fetch a page and return its raw HTML and metadata, without LLM extraction. A quarter the price
Fetch a page and return its raw HTML and metadata, without LLM extraction. A quarter the price.
Requires the scrape:fetch scope, and the project must have Scrape enabled.
Billed on success. The response reports fetches — the quantity metered for this call. Rates: https://docs.cloud.gomry.com/pricing.
Full reference: https://docs.cloud.gomry.com/services/scrape
curl --request POST \
--url https://api.cloud.gomry.com/v1/fetch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/events/summer-fest"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://example.com/events/summer-fest'})
};
fetch('https://api.cloud.gomry.com/v1/fetch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.cloud.gomry.com/v1/fetch"
payload = { "url": "https://example.com/events/summer-fest" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
An API key minted in the console, sent as Authorization: Bearer <key>. Keys are project-scoped and carry per-operation scopes. A gck_test_… key runs the full request path — including the real upstream call — and bills nothing.
Every scope is enumerated in x-scopes below and in the RFC 9728 protected-resource metadata at https://cloud.gomry.com/.well-known/oauth-protected-resource, which is also what a 401 points at through its WWW-Authenticate: Bearer resource_metadata="…" header.
Body
Required. The page to scrape. Max 2048 characters. Private addresses and internal hostnames are refused.
Required for /v1/scrape. A JSON Schema object describing the shape you want back. Returned in data.
Required for /v1/scrape. 1–2000 characters of instruction for the extraction, e.g. "Extract the event".
Milliseconds to wait after load before reading the page, for content that arrives late. 0–15000.
Milliseconds before the vendor call is abandoned. 1000–90000. The whole request is capped at 120s server-side, so budget for two calls if you use retry.
Strip navigation, footers and boilerplate before extraction. Defaults to true; set false when the data you want lives in the chrome.
Also return the page's raw HTML in rawHtml. Use when you parse JSON-LD or embedded blobs yourself.
{ requiredField, waitFor }. If the first pass returns without that field, the page is fetched once more with the longer wait. Bills both calls, and only when each returned a page.
Response
Success. fetches reports what was metered.
The response is of type object.

