API Reference

Integrate ShipReady audits into your CI/CD, dashboards, and AI agents. Base URL: https://shipready.app

Need API access?

API keys are available on the Agency plan. Unlimited scans, team workflows, and priority support.

Get API access →

Authentication

All API endpoints require a Bearer token in the Authorization header. Generate keys at Dashboard → API Keys (Agency plan required).

curl -H "Authorization: Bearer sk_live_..." https://shipready.app/api/v1/scan

Rate Limits

PlanDaily limitConcurrent scans
Free1
Pro1002
Agency1,000 per key5

REST Endpoints

POST /api/v1/scan

Submit a URL for a ShipReady audit. Returns the scan ID immediately; poll GET /api/scan/:id for results.

Request body

{
  "url": "https://example.com",       // required
  "goal": "seo"                        // optional: seo | security | ai_visibility | full (default: full)
}

Response 200

{ "id": "7f3d9..." }

curl example

curl -X POST https://shipready.app/api/v1/scan \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","goal":"full"}'

GET /api/scan/:id

Poll scan status and retrieve results. No auth required for anonymous scans.

Response 200

{
  "id": "7f3d9...",
  "status": "done",           // pending | running | running_fast | running_deep | enriching | done | error
  "results": {
    "totalScore": 82,
    "performance": { "score": 91, "issues": [...] },
    "seo": { "score": 78, "issues": [...] },
    // ... security, mobile, ai_visibility, accessibility
  }
}

curl example

curl https://shipready.app/api/scan/7f3d9... \
  -H "Authorization: Bearer sk_live_..."

GET /api/badge/:domain

Returns an SVG badge with the domain's latest public score. Requires badge_enabled = true on the scan.

curl https://shipready.app/api/badge/example.com

Markdown embed

![ShipReady score](https://shipready.app/api/badge/example.com)

MCP JSON-RPC Tools

ShipReady exposes a JSON-RPC 2.0 MCP endpoint at POST /api/mcp. Use it with Claude Code, Cursor, or any MCP-compatible client to run audits from within your editor.

# Claude Code: add to settings.json under mcpServers
{
  "shipready": {
    "command": "npx",
    "args": ["mcp-client", "https://shipready.app/api/mcp"],
    "env": { "SHIPREADY_API_KEY": "sk_live_..." }
  }
}
scan_url

Submit a URL for a full ShipReady audit. Returns a scan ID. Poll get_report for results.

Parameters

url(required) The URL to audit (must be a valid https URL)
goal(optional) Scan focus area — seo | security | ai_visibility | full
get_report

Retrieve the current state of a scan by ID. Returns status and results when complete.

Parameters

scan_id(required) The scan ID returned by scan_url
list_issues

List all issues found in a completed scan, with optional filtering.

Parameters

scan_id(required) The scan ID
category(optional) Filter by category — performance | seo | security | mobile | ai_visibility | accessibility
severity(optional) Filter by severity — critical | high | medium | low | pass
confidence(optional) Filter by confidence — verified | likely | heuristic
get_issue

Get a single issue by its ID from a completed scan.

Parameters

scan_id(required) The scan ID
issue_id(required) The issue ID (e.g. lcp-slow, no-https)

Error Codes

CodeMeaning
401Missing or invalid API key
403URL blocked (private IP, unsafe domain)
422Invalid request body or URL
429Daily rate limit reached
500Internal server error — try again or contact support

Need API access?

API keys are available on the Agency plan. Unlimited scans, team workflows, and priority support.

Get API access →