For providers
Three reads and two writes. Every call carries your key in the x-api-key header. 60 calls a minute per key. JSON in, JSON out. Every write is logged in your organisation's name.
The key is shown once in the portal. Send it on every call. A missing or wrong key gets a 401 with a sentence saying so.
curl https://boatregister.co.uk/api/v1/hin/GBDMA10000A505 \ --header "x-api-key: YOUR KEY"
GET https://boatregister.co.uk/api/v1/hin/{hin}
{
"ok": true,
"hin": "GBDMA10000A505",
"valid": true,
"problems": [],
"country": "GB",
"builderCode": "DMA",
"builder": { "name": "Demo Boatworks A", "source": "demo data" },
"serial": "10000",
"month": 1,
"yearBuilt": 2005,
"modelYear": 2005,
"onRegister": true,
"registeredAt": "2026-09-24T01:00:00.000Z",
"demo": true,
"activeFlags": 0
}GET https://boatregister.co.uk/api/v1/boats/{hin}. What the public page shows. Never an owner's name or email.
{
"ok": true,
"boat": {
"hin": "GBDMA10411D808",
"name": "Lady Grey",
"type": "RIB",
"builder": "Demo Boatworks A",
"year": 2008,
"lengthM": 9.9,
"source": "Registered by the owner",
"hasOwner": true,
"proofOnFile": false,
"registeredAt": "2026-09-24T01:00:00.000Z",
"photos": [],
"flags": [
{
"kind": "FINANCE",
"active": true,
"reporterLabel": "Demo Marine Finance",
"reference": "DEMOAGR1003",
"reportedAt": "2026-04-05T00:00:00.000Z",
"clearedAt": null
}
]
}
}GET https://boatregister.co.uk/api/v1/boats/{hin}/flags. Active and cleared, each with who placed it and when.
POST https://boatregister.co.uk/api/v1/boats with one object or an array. Only hin is required. A row may carry a flag too.
curl https://boatregister.co.uk/api/v1/boats \
--header "x-api-key: YOUR KEY" \
--header "content-type: application/json" \
--data '[
{ "hin": "GBDMA99999A505", "name": "New Boat", "type": "MOTOR", "year": "2005", "length": "7.5" },
{ "hin": "GBDMB88888B606", "flag": "FINANCE", "reference": "AGR12345", "note": "Marine mortgage, started today." }
]'
{ "ok": true, "boatsCreated": 2, "boatsUpdated": 0, "flagsAdded": 1, "flagsCleared": 0, "skipped": [] }POST https://boatregister.co.uk/api/v1/flags with hin. flag is STOLEN, FINANCE or WRITTENOFF. action is add, the default, or clear. You can only clear a flag your own organisation placed.
curl https://boatregister.co.uk/api/v1/flags \
--header "x-api-key: YOUR KEY" \
--header "content-type: application/json" \
--data '{ "hin": "GBDMB88888B606", "flag": "FINANCE", "action": "clear", "note": "Settled in full." }'Upload it in the portal. Header row, then one boat per line. Only hin is required. Type is MOTOR, SAIL, NARROWBOAT, RIB, DINGHY, JETSKI or OTHER.
hin,name,type,builder,year,length,flag,action,reference,note GBDMA99999A505,New Boat,MOTOR,Demo Boatworks A,2005,7.5,,,, GBDMB88888B606,,,,,,FINANCE,add,AGR12345,Marine mortgage started today GBDMB88888B606,,,,,,FINANCE,clear,AGR12345,Settled in full
x-ratelimit-reset header.