SnoopScan
Get started

Output formats

Markdown, HTML, links, JSON in your schema.

formats is a list, so one call can return several shapes of the same page. Each one arrives as its own key on data.

FormatYou getReach for it when
markdownThe page as markdownFeeding a model, an index or an archive. This is the default.
htmlCleaned HTMLYou want the structure kept but the clutter gone.
rawHtmlThe document as servedYou are parsing it yourself and want nothing touched.
linksEvery link on the pageWalking a site, or checking what a page points at.
summaryA short summaryYou need the gist, not the page.
screenshotA PNG of the rendered pageEvidence, monitoring, or a visual diff.
jsonRows in your own schemaYou know the shape you want. See Extract.

Requesting several formats

import requestsr = requests.post(    'https://api.snoopscan.com/v1/scrape',    headers={'Authorization': 'Bearer sk_YOUR_KEY'},    json={        'url': 'https://example.com/pricing',        'formats': [            'markdown',            'links',            'screenshot'        ],        'onlyMainContent': True    },)print(r.json())
const r = await fetch('https://api.snoopscan.com/v1/scrape', {  method: 'POST',  headers: { Authorization: 'Bearer sk_YOUR_KEY', 'Content-Type': 'application/json' },  body: JSON.stringify({      "url": "https://example.com/pricing",      "formats": [          "markdown",          "links",          "screenshot"      ],      "onlyMainContent": true  }),});console.log(await r.json());
curl -X POST https://api.snoopscan.com/v1/scrape \  -H 'Authorization: Bearer sk_YOUR_KEY' \  -H 'Content-Type: application/json' \  -d '{    "url": "https://example.com/pricing",    "formats": [        "markdown",        "links",        "screenshot"    ],    "onlyMainContent": true}'
data.markdown, data.links and data.screenshot all come back on one response.

Including and excluding content

onlyMainContent is on by default and drops navigation, headers, footers and cookie walls. When a page hides something you want inside that furniture, name it with includeTags; when the main content carries something you never want, drop it with excludeTags. Both take CSS selectors.

A format you did not ask for is not computed. Asking for a screenshot of ten thousand pages is slower and dearer than asking for markdown, so ask for what you will actually read.