Pull API: Plate Validation
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.1 Host: service.ops-com.com Accept: application/json Content-Type: application/json Cache-Control: no-cache { "api_token": "YOUR-API-TOKEN", "client": "<client ID>", "plate": "<plate to validate>" }
JavaScript Request
var request = new XMLHttpRequest(); request.open('POST', 'https://service.ops-com.com/api/v1/validate/plate'); 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
Attribute | Type | Limits | Possible Names | Description |
---|---|---|---|---|
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
Attribute | Type | Description | Notes |
---|---|---|---|
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": "" }