The UK caravan and motorhome register. New, and built in the open: it grows as owners and providers add to it.
CARAVANREGISTER

For providers

The API, on one page

Three reads and two writes, touring caravans and motorhomes on one key. 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.

Get a key

Authentication

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://caravanhistorycheck.co.uk/api/v1/vin/SGBS000BYA1234567 \
  --header "x-api-key: YOUR KEY"

Read: read a 17 character number and look it up

GET https://caravanhistorycheck.co.uk/api/v1/vin/{vin}?kind=CARAVAN or MOTORHOME. Reads the number as the industry describes a CRiS number and says whether it is on the register.

{
  "ok": true,
  "vin": "SGDS000DMA1000001",
  "kind": "CARAVAN",
  "valid": true,
  "problems": [],
  "wmi": "SGD",
  "ukMaker": true,
  "axles": 1,
  "makerCode": "DM",
  "maker": null,
  "yearLetter": "A",
  "yearCandidates": [2010],
  "yearLikely": 2010,
  "serial": "1000001",
  "onRegister": true,
  "registeredAt": "2026-09-24T01:00:00.000Z",
  "plate": null,
  "demo": true,
  "activeFlags": 0
}

Read: a caravan or motorhome record

GET https://caravanhistorycheck.co.uk/api/v1/caravans/{vin}. What the public page shows. Never an owner's name or email. A motorhome can also be read by its plate at https://caravanhistorycheck.co.uk/api/v1/caravans/{plate}.

{
  "ok": true,
  "caravan": {
    "vin": "SGDT000DMH1000005",
    "kind": "CARAVAN",
    "name": null,
    "make": "Demo Caravans",
    "model": "Demo Twin 6",
    "year": 2017,
    "berths": 6,
    "axles": 2,
    "plate": null,
    "demo": true,
    "source": "Demo Caravan Dealer",
    "hasOwner": false,
    "proofOnFile": false,
    "registeredAt": "2026-09-24T01:00:00.000Z",
    "photos": [],
    "flags": [
      {
        "kind": "STOLEN",
        "active": true,
        "reporterLabel": "Demo Police Unit",
        "reference": "DEMOCRN6005",
        "reportedAt": "2026-08-14T00:00:00.000Z",
        "clearedAt": null
      }
    ]
  }
}

Read: the flags on a record

GET https://caravanhistorycheck.co.uk/api/v1/caravans/{vin}/flags. Active and cleared, each with who placed it and when. A plate works here too.

Write: add or update caravans and motorhomes

POST https://caravanhistorycheck.co.uk/api/v1/caravans with one object or an array. vin is required and is 17 characters. kind is CARAVAN, the default, or MOTORHOME. A row may carry a flag too.

curl https://caravanhistorycheck.co.uk/api/v1/caravans \
  --header "x-api-key: YOUR KEY" \
  --header "content-type: application/json" \
  --data '[
    { "vin": "SGDS000DMA1000009", "kind": "CARAVAN", "make": "Demo Caravans", "model": "Demo 4", "year": "2019", "berths": "4", "axles": "1" },
    { "vin": "SGDMH0DM0K1000019", "kind": "MOTORHOME", "make": "Demo Motorhomes", "plate": "AB19 CDE", "flag": "FINANCE", "reference": "AGR55555", "note": "Hire purchase, started today." }
  ]'

{ "ok": true, "created": 2, "updated": 0, "flagsAdded": 1, "flagsCleared": 0, "skipped": [] }

Write: add or clear a flag

POST https://caravanhistorycheck.co.uk/api/v1/flags with vin. 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://caravanhistorycheck.co.uk/api/v1/flags \
  --header "x-api-key: YOUR KEY" \
  --header "content-type: application/json" \
  --data '{ "vin": "SGDMH0DM0K1000019", "flag": "FINANCE", "action": "clear", "note": "Settled in full." }'

The CSV, same names

Upload it in the portal. Header row, then one record per line. Only vin is required. Kind is CARAVAN or MOTORHOME. Caravans and motorhomes can sit in one file.

vin,kind,make,model,year,berths,axles,plate,name,flag,action,reference,note
SGDS000DMA1000009,CARAVAN,Demo Caravans,Demo 4,2019,4,1,,,,,,
SGDMH0DM0K1000019,MOTORHOME,Demo Motorhomes,Demo Van,2019,2,,AB19CDE,,STOLEN,add,CRN44556,Taken from a storage site overnight
SGDS000DMA1000009,,,,,,,,,FINANCE,add,AGR12345,Hire purchase started today
SGDS000DMA1000009,,,,,,,,,FINANCE,clear,AGR12345,Settled in full

Errors and limits