{
 "protocolVersion": "0.3.0",
 "name": "Appeals Desk",
 "description": "UK private parking charges and council PCNs: every operator's appeal route and windows, POPLA's own per-operator decided and allowed record, council PCN deadlines from the 2022 Regulations, and EHC needs-assessment refusal rates for English councils. Free JSON with signed receipts.",
 "version": "2026.09.22",
 "url": "https://appealsdesk.co.uk/a2a",
 "preferredTransport": "JSONRPC",
 "supportedInterfaces": [
  {
   "url": "https://appealsdesk.co.uk/a2a",
   "protocolBinding": "JSONRPC",
   "transport": "JSONRPC",
   "protocolVersion": "0.3"
  }
 ],
 "provider": {
  "organization": "Axion Labs",
  "url": "https://getaxionlabs.com"
 },
 "documentationUrl": "https://appealsdesk.co.uk/for-agents",
 "capabilities": {
  "streaming": false,
  "pushNotifications": false,
  "stateTransitionHistory": false,
  "extensions": []
 },
 "securitySchemes": {
  "bearer": {
   "type": "http",
   "scheme": "bearer",
   "description": "Optional. An API key from https://appealsdesk.co.uk/agent/identity or https://appealsdesk.co.uk/api/key/free; every skill also answers without one."
  },
  "oauth2": {
   "type": "oauth2",
   "flows": {
    "clientCredentials": {
     "tokenUrl": "https://appealsdesk.co.uk/oauth/token",
     "scopes": {
      "read": "every free endpoint (they all answer without a token too)",
      "bulk": "/api/bulk, the whole corpus in one call, against credit or the free allowance",
      "changes": "/api/changes, what moved since a date, against credit or the free allowance"
     }
    }
   }
  }
 },
 "security": [],
 "defaultInputModes": [
  "application/json",
  "text/plain"
 ],
 "defaultOutputModes": [
  "application/json",
  "text/plain"
 ],
 "skills": [
  {
   "id": "answer",
   "name": "Composed answer",
   "description": "One call: the operator's appeal route and windows, the deadlines computed from your notice and rejection dates (YYYY-MM-DD), POPLA's record for that operator with the three-year series, and the next steps in order. An ambiguous operator name returns candidates, never a guess.",
   "tags": [
    "parking-charge",
    "popla",
    "appeal",
    "deadline"
   ],
   "examples": [
    "operator=2gether-support-solutions",
    "operator=parkingeye notice=2026-09-01"
   ],
   "inputModes": [
    "application/json",
    "text/plain"
   ],
   "outputModes": [
    "application/json",
    "text/plain"
   ]
  },
  {
   "id": "operators",
   "name": "Operator index",
   "description": "All UK private parking operators with route and windows.",
   "tags": [
    "index"
   ],
   "examples": [
    "skill=operators"
   ],
   "inputModes": [
    "application/json",
    "text/plain"
   ],
   "outputModes": [
    "application/json",
    "text/plain"
   ]
  },
  {
   "id": "popla-outcomes",
   "name": "POPLA outcomes",
   "description": "POPLA per-operator decided and allowed record with the three-year series, signed with a receipt.",
   "tags": [
    "popla",
    "rates"
   ],
   "examples": [
    "skill=popla-outcomes"
   ],
   "inputModes": [
    "application/json",
    "text/plain"
   ],
   "outputModes": [
    "application/json",
    "text/plain"
   ]
  },
  {
   "id": "councils",
   "name": "EHC refusal rates",
   "description": "EHC needs-assessment refusal rates for 153 English councils.",
   "tags": [
    "ehc",
    "send",
    "councils"
   ],
   "examples": [
    "skill=councils"
   ],
   "inputModes": [
    "application/json",
    "text/plain"
   ],
   "outputModes": [
    "application/json",
    "text/plain"
   ]
  }
 ],
 "signatures": [
  {
   "protected": "eyJhbGciOiJFZERTQSIsImprdSI6Imh0dHBzOi8vYXBwZWFsc2Rlc2suY28udWsvLndlbGwta25vd24vandrcy5qc29uIiwia2lkIjoiYXBwZWFsc2Rlc2stYW5zd2VyLTIwMjYtMDgtMzEiLCJ0eXAiOiJKT1NFIn0",
   "signature": "k_1ovk3V4NkpBagEOBul-OdknaTmCtRJ4MVSkFmxYAup2OSe7DP7lruXIS58FoGFz93Hbdm4SNJA-oq9_7d5Bw"
  }
 ]
}
