Pull API: Plate Validation
API access is a paid feature and must be granted by OPS-COM. Email your Account Executive to negotiate access.
Use this API to obtain details related to a plate. Plate details include permits, alerts and DNTT status.
Make sure you set the HTTP Content-Type header to be application/json.
Making API Requests
Raw Request
POST /api/v1/validate/plate HTTP/1.1Host: service.ops-com.comAccept: application/jsonContent-Type: application/jsonCache-Control: no-cache{ "api_token": "YOUR-API-TOKEN", "client": "<client ID>", "plate": "<plate to validate>"} |
JavaScript Request
var request = new XMLHttpRequest();request.setRequestHeader('Content-Type', 'application/json');request.setRequestHeader('Accept', 'application/json');request.onreadystatechange = function () { if (this.readyState === 4) { console.log('Status:', this.status); console.log('Headers:', this.getAllResponseHeaders()); console.log('Body:', this.responseText); }};var body = { "api_token": "YOUR-API-TOKEN", "client": "<client ID>", "plate": "<plate to validate>"}request.send(JSON.stringify(body)); |
Request Object Attributes
| api_token | String |
50-character alphanumeric including dashes. |
(Required) Your supplied API Token. | |
| client | String | client identifier | Required | |
| plate | String | vehicle plate | Required |
Response Values
| error | integer | error code | 0=success |
| data | JSON bundle | returned data | |
| data.response | String |
{permits}\n\nALARM: {alarm}\n\n DNTT: {DNTT} |
empty if no data |
| data.plate | String | plate validated | |
| data.responseJSON | JSON bundle | response in JSON | |
| data.responseJSON.permits | Array |
array of permits
|
all elements: String |
| data.responseJSON.dntt | Array |
array of DNTT (do not ticket tow) results
|
all elements: String |
| data.responseJSON.alarm | String | alarm associated with plate | or linked driver |
| message | String | system error message |
Successful Response
The response will be a json object.
Content-Type: application/json
/* The below response is a merged example of different fields that may be in the response. - 'type' may be: standard, temp, Validated, T2, HotSpot, or any other "origin"*//* sample response with many included details */{ "error": 0, "data": { /* 'response' is a string concatenated list of all values carriage return delineated */ "response": "standard: BIKE\n Expires: 2025-04-30 23:59:59\nstandard: MOTO-S\n Expires: 2025-04-30 23:59:59\n\nALARM: Wanted to talk with.\n\nDNTT: Main Campus\n2024-11-15 00:00:00-2024-11-15 23:59:00 \nCLEAR FOR ANY PAY AREA\n\n", "plate": "ABC123", "responseJSON": { "permits": [ { "expires": "2025-04-30 23:59:59", "type": "standard", "shortName": "BIKE" }, { "expires": "2025-04-30 23:59:59", "type": "standard", "shortName": "MOTO-S" } ], /* like 'permits', 'dntt' (do not ticket or tow) could be an array of values */ "dntt": [{ "notes": "CLEAR FOR ANY PAY AREA", "start": "2024-11-15 00:00:00", "location": "Main Campus", "end": "2024-11-15 23:59:00" }], "alarm":"Wanted to talk with." }, } "message": ""} |
Response Samples
Any response listed below could be merged with any other. This is a list of possible responses to demonstrate responses with data.
/* No data */{ "error": 0, "data": { "response": "", "plate": "ABC123", "responseJSON": {} }, "message": ""}/* standard (temp, Validated, T2, HotSpot, ...) */{ "error": 0, "data": { "response": "standard: LOT3\n Expires: 2025-04-30 23:59:59\nstandard: MOTO-S\n Expires: 2025-04-30 23:59:59\n\n", "plate": "ABC890", "responseJSON": { "permits": [ { "expires": "2025-04-30 23:59:59", "type": "standard", "shortName": "BIKE" }, { "expires": "2025-04-30 23:59:59", "type": "standard", "shortName": "MOTO-S" } ], } }, "message": ""}/* plate with alarm */{ "error": 0, "data": { "response": "ALARM: 15-AS123 Lex Luthor (08 JUL 84) wanted by OPS.\r\n\r\n*** Violence / Weapons ***\n\n", "plate": "ABC456", "responseJSON": { "alarm": "15-AS123 Lex Luthor (08 JUL 84) wanted by OPS.\r\n\r\n*** Violence / Weapons ***" } }, "message": ""}/* DNTT: do not ticket or tow */{ "error": 0, "data": { "response": "DNTT: Lot 6\n2024-10-23 00:00:00-2025-04-30 23:59:00 \nHertz truck has permission to park overnight in lot 6. Rental for We-Move-It Services\n\n", "plate": "DEF123", "responseJSON": { "permits": [], "dntt": [ { "notes": "Hertz truck has permission to park overnight in lot 6. Rental for We-Move-It Services", "start": "2024-10-23 00:00:00", "location": "Lot 6", "end": "2025-04-30 23:59:00" } ], "active": "1" } }, "message": ""} |