Pull API: Plate Validation

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.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

AttributeTypeLimitsPossible NamesDescription
api_tokenString

50-character alphanumeric including dashes.


(Required) Your supplied API Token.
clientStringclient identifier
Required
plateStringvehicle plate
Required


Response Values

AttributeTypeDescriptionNotes
errorintegererror code0=success
dataJSON bundlereturned data
data.responseString

{permits}\n\nALARM: {alarm}\n\n DNTT: {DNTT}

empty if no data
data.plateStringplate validated
data.responseJSONJSON bundleresponse in JSON
data.responseJSON.permitsArray

array of permits 

  • type, (lot) shortName, expires
all elements: String
data.responseJSON.dnttArray

array of DNTT (do not ticket tow) results

  • notes, location, start, end
all elements: String
data.responseJSON.alarmStringalarm associated with plateor linked driver
messageStringsystem 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": ""
}