# RegCheck API — REST / JSON Interface > The REST API is a JSON-friendly wrapper around the RegCheck SOAP API. All countries and endpoints supported by the SOAP API are available here. Authentication uses HTTP Basic Auth. Responses are plain JSON — no SOAP envelope, no XML parsing required. ## Overview The REST API accepts standard HTTP GET requests and returns the `vehicleJson` payload directly, without any SOAP or XML wrapper. It is served from the same infrastructure as the SOAP API, uses the same credit system, and returns identical vehicle data. **Base URL:** ``` https://www.regcheck.org.uk/api/json.aspx/{Method}/{RegistrationNumber} ``` ## Authentication The REST API uses **HTTP Basic Authentication**. - **Username:** your RegCheck username - **Password:** your RegCheck API key Requests without a valid `Authorization` header will receive an **HTTP 401** response with a `WWW-Authenticate: Basic realm="RegCheck.org.uk"` header. Example using curl: ``` curl -u myusername:myapikey "https://www.regcheck.org.uk/api/json.aspx/CheckIreland/04MH8917" ``` ## Standard Request Format For most countries, the URL takes a single registration number: ``` https://www.regcheck.org.uk/api/json.aspx/{Method}/{RegistrationNumber} ``` **Example — Ireland:** ``` https://www.regcheck.org.uk/api/json.aspx/CheckIreland/04MH8917 ``` **Example — UK:** ``` https://www.regcheck.org.uk/api/json.aspx/Check/YY07XHH ``` The method name matches the SOAP operation name exactly (e.g. `CheckFrance`, `CheckNorway`, `CheckMalaysia`). All countries supported by the SOAP API are supported here — the REST layer uses reflection to dispatch to the correct method automatically. ## Sample Response ```json { "ABICode": "39049602", "Description": "2007 Peugeot 307 X-line, 1360CC Petrol, 5DR, Manual", "RegistrationYear": "2007", "CarMake": { "CurrentTextValue": "Peugeot" }, "CarModel": { "CurrentTextValue": "307" }, "EngineSize": { "CurrentTextValue": "1360CC" }, "FuelType": { "CurrentTextValue": "Petrol" }, "MakeDescription": "Peugeot", "ModelDescription": "307", "Transmission": { "CurrentTextValue": "Manual" }, "NumberOfDoors": { "CurrentTextValue": "5" }, "NumberOfSeats": { "CurrentTextValue": 5 }, "DriverSide": { "CurrentTextValue": "RHD" }, "VehicleInsuranceGroup": "04", "ImageUrl": "https://www.regcheck.org.uk/image.aspx/@UGV1Z2VvdCAzMDc=" } ``` ## Endpoints With Additional Parameters Some methods require extra path segments beyond the registration number. ### CheckAustralia Format: `/{RegistrationNumber}/{State}` State codes: `NSW`, `VIC`, `QLD`, `SA`, `WA`, `TAS`, `ACT`, `NT` ``` https://www.regcheck.org.uk/api/json.aspx/CheckAustralia/CEC36T/NSW ``` ### CheckUSA Format: `/{RegistrationNumber}/{State}` State is the two-letter US state code (lowercase accepted), e.g. `pa`, `ca`, `ny` ``` https://www.regcheck.org.uk/api/json.aspx/CheckUSA/jxv7422/pa ``` ### CheckCanada Format: `/{RegistrationNumber}/{Province}` Province is the two-letter Canadian province code, e.g. `ON`, `BC`, `QC` ``` https://www.regcheck.org.uk/api/json.aspx/CheckCanada/CSEA919/ON ``` ### CheckPakistan Format: `/{RegistrationNumber}/{Province}/{District}` ``` https://www.regcheck.org.uk/api/json.aspx/CheckPakistan/STR+6006/PB/Pathankot ``` Note: spaces in the registration number should be encoded as `+` or `%20`. ### CheckGermany German plates contain a `/` separator (e.g. `B/AB1234`), so the registration number is split across two path segments: Format: `/{Prefix}/{Suffix}` ``` https://www.regcheck.org.uk/api/json.aspx/CheckGermany/B/AB1234 ``` ### UKMOT Returns MOT test history for a UK vehicle. Requires the registration number and the vehicle make. Format: `/{RegistrationNumber}/{Make}` ``` https://www.regcheck.org.uk/api/json.aspx/UKMOT/DE02VOV/PEUGEOT ``` Response structure for UKMOT differs from standard endpoints: ```json { "Tests": [ ... ], "ExtendedInformation": { ... } } ``` ### VinCheck Looks up a vehicle by its 17-character VIN rather than a registration plate. ``` https://www.regcheck.org.uk/api/json.aspx/VinCheck/5XYZT3LB9FG259411 ``` ## Error Handling | HTTP Status | Meaning | |-------------|---------| | 200 | Success — response body is JSON | | 401 | Missing or invalid `Authorization` header | | 500 | API error — response body is a plain-text error message | On a 500 response, the body will contain a human-readable error string (not JSON). Common causes include an unrecognised method name, insufficient credits, or a plate not found in the data source. ## Notes - The REST API uses the same credit pool as the SOAP API. Each successful plate lookup deducts one credit regardless of which interface is used. - CORS is enabled — `Access-Control-Allow-Origin: *` is set on all responses, so the REST API can be called directly from browser JavaScript. - The `vehicleJson` field in the underlying SOAP response is returned directly. Field availability varies by country — refer to the individual country documentation pages for the fields each endpoint returns. - The `VechileIdentificationNumber` field may appear in some country responses. This spelling must be used as-is when reading the field.