# Pull API: Permit Stats
The OPS-COM Controller provides a simple JSON based API to integrate with. Clients use this API to gather stats on permits pushed into OPS-COM.
Make sure you set the HTTP Content-Type header to be application/json.
## Making API Requests
### Raw Request:
`POST /api/OC-TOMA/v1/permits/stats HTTP/1.1`
`Host: controller.operationscommander.io`
`Accept: application/json`
`Content-Type: application/json`
`Cache-Control: no-cache`
`{`
` ``"apiToken": "YOUR-API-TOKEN",`
` ``"zones": "NOT-REQUIRED--LIST-OF-ZONES"`
`}`
### 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 = {`
` ``"apiToken"``: ``"YOUR-API-TOKEN"``,`
` ``"zones"``: ``"Lot 01,Lot 02"`
`}`
`request.send(JSON.stringify(body));`
## Request Object Attributes
**Attribute**
| **Type**
| **Limits**
| **Possible Names**
| **Description** |
apiToken | String | 50-character alphanumeric including dashes
| apiToken | **(Required)** Your supplied API Token. |
zones
| String | Listed zones match zone names in database | zones
| **(Not Required)** Comma delimited list of zones
e.g. zone1,zone2,Lot 03,Red Lot,Street parking
|
## Successful Response
The response will be a json object. The same reference id will be returned.
*Content-Type: application/json*
`{`
` ``"data"``: [`
` ``{`
` ``"type"``: ``"standard"``,`
` ``"zone"``: ``"zone1"``,`
` ``"total"``: ``"4"`
` ``},`
` ``{`
` ``"type"``: ``"temp"``,`
` ``"zone"``: ``"zone1"``,`
` ``"total"``: ``"35"`
` ``},`
` ``:`
` ``:`
`}`