The appeal engine, as an API and an MCP server
Everything the website does, from reading a notice to filing the appeal, is available over a REST API and as Model Context Protocol tools. Connect it to Claude, ChatGPT, Cursor or your fleet system in a few minutes.
1. Create a key
Sign in and create a key on your profile page. It starts ag_live_ and is shown once.
2. Scan a notice
POST the photo. In under two minutes you get the issuer, the code, the grounds and a draft letter.
3. File it
Call file. Covered by an Unlimited plan it files now; otherwise you get a £6.99 checkout link and it files on payment.
MCP server
Streamable HTTP at https://appealgo.com/api/mcp. The guide, code and deadline tools work without a key. Scanning and filing need your key in the Authorization header.
Want the guides, codes and deadline tools only, with no key and no account? Use the public server at https://appealgo.com/api/public/mcp. Every tool carries read-only or destructive annotations, so your client knows to ask before file_appeal sends anything.
ChatGPT, Claude, Gemini and Perplexity apps
Add a custom connector (ChatGPT: Settings, Connectors, developer mode. Claude: Settings, Connectors, Add custom connector) and paste the public server URL above. It needs no sign-in. For scanning and filing from inside an assistant, use a client that lets you set an Authorization header, such as Claude Code or Cursor below.
Claude Code
claude mcp add --transport http appealgo https://appealgo.com/api/mcp \
--header "Authorization: Bearer ag_live_YOUR_KEY"Cursor, Windsurf, Claude Desktop (mcp.json)
{
"mcpServers": {
"appealgo": {
"url": "https://appealgo.com/api/mcp",
"headers": { "Authorization": "Bearer ag_live_YOUR_KEY" }
}
}
}Tools
check_noticeScan a photo or PDF and get grounds + a draft appealfile_appealFile it, or get a checkout link if unpaidget_notice / list_my_noticesStatus, letter and links for the account's noticescalculate_deadlinesDiscount, challenge, escalation and tribunal datesexplain_contravention_codeWhat a PCN code means and the grounds that beat itsearch_guides / get_guide42 plain-English appeal guides as Markdownlookup_appeal_statusPublic status by reference
Then just ask: “Here's a photo of my parking ticket, what are my grounds?” or “When does the discount on my PCN dated 3 September end?”
REST API
Base URL https://appealgo.com/api/v1. JSON in and out. Full schema at /api/v1/openapi.json, and a Markdown map of the whole site at /llms.txt.
Scan a notice
curl -X POST https://appealgo.com/api/v1/notices \
-H "Authorization: Bearer ag_live_YOUR_KEY" \
-F "file=@ticket.jpg"File the appeal
curl -X POST https://appealgo.com/api/v1/notices/NOTICE_ID/file \
-H "Authorization: Bearer ag_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Sam Driver", "address": "1 High Street, Leeds LS1 1AA"}'Endpoints
| Method | Path | Key | What it does |
|---|---|---|---|
| POST | /api/v1/notices | required | Scan a notice (multipart file, image_url or image_base64). Returns the read details, grounds and draft letter. |
| GET | /api/v1/notices | required | List the account's notices. |
| GET | /api/v1/notices/{id} | required | One notice with status, draft and submission. |
| POST | /api/v1/notices/{id}/file | required | File the appeal. 402 + checkout_url if it needs paying for. |
| GET | /api/v1/status?reference= | none | Public status by customer reference. |
| GET | /api/v1/deadlines | none | Statutory deadlines for a notice type and date. |
| GET | /api/v1/codes/{code} | none | Explain a contravention code. |
| GET | /api/v1/guides?q= | none | Search the guides; /guides/{slug} returns Markdown. |
| GET|POST|DELETE | /api/v1/keys | required | Manage keys (also from the profile page). |
Pricing and limits
- Scanning is free, up to 25 scans per key per day.
- Filing costs £6.99 per notice (the same as the website), or nothing on the £21.99/year Unlimited plan.
- Running a fleet? Fleet plans cover up to 50 vehicles with the API included. Email support@appealgo.com for higher limits.
- Appeals are filed in the account holder's name and address, exactly as on the website.
Good to know
- Keys authenticate as the account that created them. Revoke them from the profile page at any time.
- A scan takes 20 to 90 seconds; keep the request open.
- Errors are
{ error: { code, message } }with conventional HTTP status codes. - AppealGo prepares and files documents; it is not a law firm and outcomes are decided by the issuer or tribunal.
