Fetching pages¶
When you send a url, gspamjudge does not download the page from its own servers. In production every page
and sitemap is fetched through an external fetching provider, configured by the operator. Providers are tried
in order: if one is blocked (403/429/503, a challenge page or a captcha) or times out, the next one is used.
Plain fetch and JavaScript rendering¶
Each project has a Render JavaScript setting (panel: project → Settings; API:
PATCH /v1/projects/{id} with render_js_default). You can override it per check, audit, API call or CSV row.
| Mode | What happens | Price |
|---|---|---|
off (default) |
Raw HTML as the server sends it, never rendered. The cheapest mode and the best evidence for hidden text and cloaking. | no surcharge |
on |
Every page is rendered in a browser. | +$0.0060 per page (shown in the estimate) |
auto |
Raw HTML first; rendered only if the plain fetch is blocked or returns an empty JavaScript shell. | +$0.0060 only for pages actually rendered |
Overrides:
POST /v1/judge,POST /v1/judge/batchitems andPOST /v1/jobsitems:"render_js": true | false | "auto"(missing = project setting);- site audits:
render_jsin the body (the olderjs: truemeanson), the Render JavaScript switch in the wizard, or a CSV columnrender_js(true,false,auto; empty = the audit setting); - panel: the Render JavaScript switch on the new check form.
With off, a page that looks like an empty JavaScript shell is still checked, and the report warns
“This page may need JavaScript” with a + Retry with rendering · $0.0060 button. Pages with your own
HTML are never fetched or rendered. The report metadata (fetch: provider, rendered, js_shell) shows
how the page was fetched; it is not sent to the model.
Stealth mode (residential proxies) is available to admins only. The surcharge exists only when a provider with rendering is configured.
Errors¶
A failed fetch returns 502 fetch_failed. Typical causes: the site blocks all providers, the page does not
exist (404 - the fetch chain stops there) or no provider is configured. Error messages contain only the host.
Alternative: upload your own HTML¶
If a site cannot be fetched (login wall, strong bot protection) or you do not want its URLs sent to a third party, send the HTML yourself - nothing is fetched:
POST /v1/judgewithhtmlinstead ofurl;- site audits:
itemswithurlandhtml, or in the panel a CSV with columnsurl,htmlor a ZIP withindex.csv(url,filename) and the.htmlfiles (see Site audits).
Privacy¶
Page URLs are sent to the fetching provider. Tracking and secret query parameters are removed before the fetch.