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.
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| Plan | Daily limit | Concurrent scans |
|---|---|---|
| Free | — | 1 |
| Pro | 100 | 2 |
| Agency | 1,000 per key | 5 |
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"}'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_..."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.comMarkdown embed
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_urlSubmit 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 | fullget_reportRetrieve the current state of a scan by ID. Returns status and results when complete.
Parameters
scan_id(required) The scan ID returned by scan_urllist_issuesList all issues found in a completed scan, with optional filtering.
Parameters
scan_id(required) The scan IDcategory(optional) Filter by category — performance | seo | security | mobile | ai_visibility | accessibilityseverity(optional) Filter by severity — critical | high | medium | low | passconfidence(optional) Filter by confidence — verified | likely | heuristicget_issueGet a single issue by its ID from a completed scan.
Parameters
scan_id(required) The scan IDissue_id(required) The issue ID (e.g. lcp-slow, no-https)| Code | Meaning |
|---|---|
401 | Missing or invalid API key |
403 | URL blocked (private IP, unsafe domain) |
422 | Invalid request body or URL |
429 | Daily rate limit reached |
500 | Internal 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.