Spec → Provider
What is Provider? A service provider (sole trader or firm) discoverable and bookable by AI agents.
The manifest is the unit of adoption: one JSON document per provider, hostable anywhere — the provider's own site, an operator platform, or a static file. Coverage is expressed as postcode districts because that is how UK trades actually plan their day: LS6 means something to a Leeds engineer in a way a radius never will.
Fields
| Field | Type | Notes |
|---|---|---|
uklsp_version | string | REQUIRED |
provider_id | string | REQUIRED |
legal_name | string | REQUIRED |
trading_name | string | |
companies_house_number | string | Optional; sole traders omit. |
contact | object | REQUIRED |
coverage | array<string> | REQUIRED |
capabilities | array<service-capability> | REQUIRED |
credentials | array<compliance-credential> | |
review_attestations | array<review-attestation> | |
certification_level | integer · enum | 0=uncertified 1=Discoverable 2=Quotable 3=Bookable. Asserted by certification harness only. Values: 0, 1, 2, 3 |
operator | string | Rails operator hosting this listing, e.g. 'Greenboard'. |
demo | boolean | True for fictional demonstration records. Agents MUST NOT book demo providers. |
Example
{
"uklsp_version": "0.1",
"provider_id": "prv_fda0939423",
"legal_name": "DEMO Pennine Compliance Services Ltd",
"trading_name": "DEMO Pennine Compliance",
"contact": {
"phone_e164": "+447700900123",
"email": "hello@example.invalid",
"booking_endpoint": "https://api.uklsp.org/v0/providers/prv_fda0939423"
},
"coverage": [
"BD1",
"BD2",
"LS17",
"LS6",
"LS7",
"LS8"
],
"capabilities": [
"\u2026see ServiceCapability\u2026"
],
"demo": true
}
Schema: provider.schema.json (JSON Schema 2020-12, MIT).