BearScan API and MCP server

Everything the dashboard does, an agent can do too: scan a site, read each issue with the page, the element and a ready-to-use fix prompt, download the report as Markdown, and pay. Use the REST API at https://api.bearscan.app/v1 or the MCP server at https://mcp.bearscan.app, both with the same API key.

Get a key

Create one on the API keys page and send it as Authorization: Bearer bs_live_…. A key acts for your whole workspace: it can scan, read and buy reports for every site in it. It’s shown once; revoke it there if it leaks.

Quickstart

curl -X POST https://api.bearscan.app/v1/scans \
  -H "Authorization: Bearer $BEARSCAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

# Poll until "status" is "complete", then:
curl https://api.bearscan.app/v1/scans/$SCAN_ID/report.md \
  -H "Authorization: Bearer $BEARSCAN_API_KEY"

Endpoints

  • POST /v1/scans with { url }: starts a scan. A workspace’s first site is scanned in full, up to 100 pages; any other unpaid site gets a 10-page preview; a paid site is scanned up to 1,000 pages.
  • GET /v1/scans/:scanId: status (queued, scanning, complete, failed) and issue counts by severity.
  • GET /v1/scans/:scanId/findings: every issue, most severe first, with its pages and WCAG criterion. Once the site has a paid report or Monitoring, each issue also carries the fix and a prompt for a coding agent; until then those are null. Issues marked needsReview are ones a scanner can’t decide; a person has to check them, and they never count as passes.
  • GET /v1/scans/:scanId/report.md: the whole scan as one Markdown file for an agent to work through in a repository. Part of a paid report or Monitoring; otherwise a 402 that says how to pay.
  • POST /v1/checkout with { siteId, plan }: a Stripe Checkout link to give a person. plan is one_time ($49), monthly ($29) or yearly ($228).

The full contract is the OpenAPI 3.1 spec. Errors are JSON: {"error": {"type", "code", "message"}}. A scan or site from another workspace answers 404, the same as one that doesn’t exist.

MCP server

Tools: scan_site, get_scan, get_findings, get_report_markdown. Streamable HTTP at https://mcp.bearscan.app, with your key as a bearer token. In Claude Code:

claude mcp add --transport http bearscan https://mcp.bearscan.app \
  --header "Authorization: Bearer $BEARSCAN_API_KEY"

Setup for Cursor, VS Code, Claude Desktop and the rest is on the MCP server page.

Limits

  • 120 requests a minute per key.
  • 10 scans started a minute per key, because each scan uses a real browser.