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.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.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" : "" } |