{"openapi":"3.1.0","info":{"title":"ukintel.uk","version":"1.0.1","description":"Pay-per-call UK intelligence for AI agents. Companies House + FCA cross-checks with a 0-100 legitimacy verdict, as clean JSON. No signup, no API key.\n\nPayment is per call in USDC over x402 (HTTP 402). No signup and no API key.\n\nInformation, not advice.","contact":{"url":"https://api.ukintel.uk"},"license":{"name":"Open Government Licence v3.0 (source data)","url":"https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"}},"servers":[{"url":"https://api.ukintel.uk"}],"paths":{"/v1/company/search":{"get":{"operationId":"companySearch","summary":"Search UK companies by name","description":"Find a UK company by name. Returns the top 5 matches from the Companies House register with number, name, status and incorporation date. Taster tier - cheap enough to try on a whim before paying for a full profile or verdict.\n\nReturns: results[] of { company_number, name, status, incorporated, address_snippet }, plus total_matches.","tags":["wing-1"],"parameters":[{"name":"q","in":"query","required":true,"description":"Company name or fragment to search for.","schema":{"type":"string","minLength":2,"maxLength":160},"example":"brewdog"},{"name":"limit","in":"query","required":false,"description":"Number of matches to return, 1-5. Defaults to 5.","schema":{"type":"integer","minimum":1,"maximum":5,"default":5}}],"x-x402":{"price":"$0.005","currency":"USDC","network":"eip155:84532","payTo":"0x1Da3f92E65659acBF0Bf1a739ba3Bc72E5eF7C1d","scheme":"exact"},"responses":{"200":{"description":"Success. The shared response envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"Malformed request (for example, an invalid company number)."},"402":{"description":"Payment required. The PAYMENT-REQUIRED response carries the accepted payment terms; pay and retry the identical request.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Not found on the register."}}}},"/v1/company/{number}":{"get":{"operationId":"companyProfile","summary":"Structured UK company profile","description":"One UK company as clean structured JSON: status, incorporation date, company type, SIC codes, registered office, accounts and confirmation-statement due dates with overdue booleans, and officer counts. Sourced live from Companies House.\n\nReturns: result = { name, company_number, status, type, incorporated, registered_office, sic_codes[], accounts{}, confirmation_statement{}, officers{ active, total, resigned_last_12m }, age_years }.","tags":["wing-1"],"parameters":[{"name":"number","in":"path","required":true,"description":"UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).","schema":{"type":"string","pattern":"^([A-Z]{2})?[0-9]{6,8}$"},"example":"SC311560"},{"name":"detail","in":"query","required":false,"description":"Set to 'full' to add filing history (last 10) and anonymised officer records, and to lift the ~800 token response cap.","schema":{"type":"string","enum":["full"]}}],"x-x402":{"price":"$0.02","currency":"USDC","network":"eip155:84532","payTo":"0x1Da3f92E65659acBF0Bf1a739ba3Bc72E5eF7C1d","scheme":"exact"},"responses":{"200":{"description":"Success. The shared response envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"Malformed request (for example, an invalid company number)."},"402":{"description":"Payment required. The PAYMENT-REQUIRED response carries the accepted payment terms; pay and retry the identical request.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Not found on the register."}}}},"/v1/company/{number}/verdict":{"get":{"operationId":"companyVerdict","summary":"0-100 legitimacy verdict on a UK company","description":"Check any UK company is real, active and safe to deal with. One call returns Companies House registration, filing health, officer stability and an FCA-regulation cross-check as clean JSON with a 0-100 risk verdict, named flags you can audit, and a two-sentence plain-English narrative. Scores are computed by deterministic rules, never by a language model.\n\nReturns: Everything the profile returns, plus verdict = { score 0-100, band low_risk|caution|high_risk, flags[{code,detail}], fca{}, narrative }.","tags":["wing-1"],"parameters":[{"name":"number","in":"path","required":true,"description":"UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).","schema":{"type":"string","pattern":"^([A-Z]{2})?[0-9]{6,8}$"},"example":"SC311560"},{"name":"detail","in":"query","required":false,"description":"Set to 'full' to add filing history (last 10) and anonymised officer records, and to lift the ~800 token response cap.","schema":{"type":"string","enum":["full"]}}],"x-x402":{"price":"$0.10","currency":"USDC","network":"eip155:84532","payTo":"0x1Da3f92E65659acBF0Bf1a739ba3Bc72E5eF7C1d","scheme":"exact"},"responses":{"200":{"description":"Success. The shared response envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"Malformed request (for example, an invalid company number)."},"402":{"description":"Payment required. The PAYMENT-REQUIRED response carries the accepted payment terms; pay and retry the identical request.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Not found on the register."}}}},"/v1/company/{number}/fca":{"get":{"operationId":"companyFca","summary":"FCA Financial Services Register status only","description":"Is this UK company regulated by the Financial Conduct Authority? Returns register status, a permissions summary and any warnings - sold separately from the full verdict because fintech-vetting agents often want only this.\n\nReturns: result.fca = { checked, regulated, frn, firm_name, status, permissions_summary, warnings[], note }. When the register is unavailable, checked=false and the reason is named - never a 500.","tags":["wing-1"],"parameters":[{"name":"number","in":"path","required":true,"description":"UK company number. 8 characters; two-letter prefixes are supported (SC = Scotland, NI = Northern Ireland, OC = LLP).","schema":{"type":"string","pattern":"^([A-Z]{2})?[0-9]{6,8}$"},"example":"SC311560"}],"x-x402":{"price":"$0.02","currency":"USDC","network":"eip155:84532","payTo":"0x1Da3f92E65659acBF0Bf1a739ba3Bc72E5eF7C1d","scheme":"exact"},"responses":{"200":{"description":"Success. The shared response envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"Malformed request (for example, an invalid company number)."},"402":{"description":"Payment required. The PAYMENT-REQUIRED response carries the accepted payment terms; pay and retry the identical request.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Not found on the register."}}}},"/v1/health":{"get":{"operationId":"health","summary":"Service status (free)","description":"Liveness and upstream health. Free, because frameworks probe before they route money.\n\nReturns: status, version, network, upstreams{}, rules_version, warnings[].","tags":["free"],"parameters":[],"responses":{"200":{"description":"Success. The shared response envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"Malformed request (for example, an invalid company number)."},"404":{"description":"Not found on the register."}}}},"/v1/preview":{"get":{"operationId":"preview","summary":"A real sample verdict, rotating daily (free)","description":"A genuine, freshly-computed verdict for a rotating real UK company, so an agent can see the exact response shape before spending anything. Every response carries the same envelope: query, result, verdict, confidence, as_of, sources, attribution, notice, cost.\n\nReturns: The identical envelope returned by /v1/company/{number}/verdict.","tags":["free"],"parameters":[],"responses":{"200":{"description":"Success. The shared response envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"Malformed request (for example, an invalid company number)."},"404":{"description":"Not found on the register."}}}},"/v1/feedback":{"post":{"operationId":"feedback","summary":"Tell us what you wish this returned (free)","description":"Agent wish-list intake. Send { message, endpoint?, contact? } and it lands in our inbox. Free, and it directly shapes what gets built next.\n\nReturns: { received: true, id }.","tags":["free"],"parameters":[],"responses":{"200":{"description":"Success. The shared response envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"Malformed request (for example, an invalid company number)."},"404":{"description":"Not found on the register."}}}}},"components":{"schemas":{"Flag":{"type":"object","required":["code","detail"],"properties":{"code":{"type":"string","examples":["ACCOUNTS_OVERDUE"]},"detail":{"type":"string"}}},"Verdict":{"type":"object","required":["score","band","flags","narrative"],"properties":{"score":{"type":["integer","null"],"minimum":0,"maximum":100},"band":{"type":["string","null"],"enum":["low_risk","caution","high_risk",null]},"flags":{"type":"array","items":{"$ref":"#/components/schemas/Flag"}},"narrative":{"type":["string","null"],"description":"At most two sentences. Written by a language model, which never affects the score. Null if unavailable."}}},"Source":{"type":"object","required":["name","fetched","url"],"properties":{"name":{"type":"string"},"fetched":{"type":["string","null"],"format":"date-time"},"url":{"type":["string","null"]}}},"Envelope":{"type":"object","required":["query","result","verdict","confidence","as_of","sources","attribution","notice","cost"],"properties":{"query":{"type":"object"},"result":{"type":["object","null"]},"verdict":{"$ref":"#/components/schemas/Verdict"},"confidence":{"type":"string","enum":["high","medium","low"]},"as_of":{"type":"string","format":"date-time"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"attribution":{"type":"string"},"notice":{"type":"string","const":"Information, not advice."},"cost":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"string"},"currency":{"type":"string","const":"USDC"}}}}}}}}