getsorted. Request a pilot key
§ API

Compliance reports at the moment of incorporation.

The getsorted API takes a short set of answers about a business and returns a personalised report across 27 UK regulations. Built for company formation platforms that want to hand every new company a clear compliance starting point, under their own brand.

Request a pilot key →
Authentication

API keys

Organic use of the report endpoint needs no key. Partner requests are identified by a partner_id and authenticated with an x-api-key header. Keys are issued by hand.

Pilots are free for 90 days. After that, access is a flat monthly licence. There is no per-call metering to reason about.

x-api-key: your-partner-key
Reference

Endpoints

GET/api/v1/health

Liveness check. No authentication.

{ "status": "ok", "version": "0.2.0" }
GET/api/v1/questions

Returns the list of questions, including any show_if gate that controls when a question applies.

[
  {
    "id": "collects_personal_data",
    "text": "Does your business collect or store any personal data?",
    "help": "Names, emails, contact form submissions, and similar.",
    "show_if": null
  }
]
POST/api/v1/report

Generates a report. Send the answers you have collected. Missing answers are treated as unknown and never assumed.

Request

{
  "answers": {
    "collects_personal_data": true,
    "has_website": true,
    "employs_people": false
  },
  "company": { "name": "Acme Ltd", "sic_code": "62010" },
  "partner_id": "default",
  "context": "checker"
}
FieldTypeNotes
answersobjectMap of question id to true or false. Required.
companyobjectOptional. name, companies_house_number, sic_code. A SIC code pre-fills sector answers, which user answers then override.
partner_idstringDefaults to "default". Any other value requires a matching x-api-key.
contextstring"checker" or "start". Controls which partner offers may appear.

Response

{
  "company": { "name": "Acme Ltd" },
  "summary": {
    "action_needed": 6,
    "worth_checking": 4,
    "looks_good": 9,
    "not_applicable": 2,
    "total": 21
  },
  "cards": [
    {
      "id": "ico_registration",
      "title": "ICO Registration",
      "status": "action_needed",
      "severity": "high",
      "regulation": "Data Protection (Charges and Information) Regulations 2018",
      "summary": "Most businesses that process personal data must register with the ICO and pay an annual fee.",
      "risk": "Fine up to GBP 4,350 for failure to register or renew.",
      "action": "Register at ico.org.uk. GBP 52 per year for micro-organisations.",
      "guidance_url": "https://ico.org.uk/for-organisations/data-protection-fee/",
      "card_version": "1.0.0",
      "card_reviewed": "2026-06-25",
      "offers": []
    }
  ]
}
Card fieldTypeNotes
statusstringaction_needed, worth_checking, looks_good, or not_applicable.
offersarrayPartner links. Empty for partner traffic by default (see below).
card_versionstringContent version. card_reviewed is the last review date.

Cards are sorted action_needed first, then worth_checking, looks_good, and not_applicable.

POST/api/v1/report/email

Generates a report and emails it. Requires consent and a valid email address. The email is sent via Resend.

Request

{
  "email": "founder@example.com",
  "consent": true,
  "answers": {
    "collects_personal_data": true,
    "has_website": true,
    "employs_people": false
  },
  "company": { "name": "Acme Ltd", "sic_code": "62010" },
  "partner_id": "default",
  "context": "checker"
}
FieldTypeNotes
emailstringEmail address to send to. Required.
consentbooleanMust be true to send. Required.
answersobjectMap of question id to true or false. Required.
companyobjectOptional. name, companies_house_number, sic_code.
partner_idstringDefaults to "default". Any other value requires a matching x-api-key.
contextstring"checker" or "start".

Response

{ "status": "sent" }

On error (invalid email, missing consent, too many answers): returns 400 with a plain-English detail message.

POST/mcp

The same engine is also exposed as a free public MCP server for AI assistants (Claude, Cursor, VS Code and others). No key needed. See the MCP server page for install commands.

A machine-readable OpenAPI spec for the REST endpoints is at https://api.getsorted.today/api/openapi.json.

Partners

Partner profiles and offers

Each partner_id resolves to a profile. Partner profiles have offers switched off by default, so getsorted's own commercial links never appear in front of your customers. You keep your own banking, insurance and accounting relationships. The offer slots are yours to fill.

Profiles can also carry a display name for light white-labelling, so the report reads under your brand.

Stability

Versioning and content