# Pull API: Permit Stats

<p class="callout info"><span data-colorid="h5go72n8lk">The OPSCOM Controller provides a simple JSON based API to integrate with. Clients use this API to gather stats on permits pushed into OPSCOM.   
  
</span><span data-colorid="h5go72n8lk">API access is a paid feature and must be granted by OPSCOM. Email your Account Executive to negotiate access. </span></p>

### <span data-colorid="i26fk0nta5">Making API Requests </span>

<span data-colorid="i26fk0nta5">Make sure you set the HTTP Content-Type header to be application/json. </span>

##### <span style="text-decoration: underline;">Raw Request:</span>

<div class="line number1 index0 alt2" id="bkmrk-post-%2Fapi%2Foc-toma%2Fv1">`POST /api/OC-TOMA/v1/permits/stats HTTP/1.1`</div><div class="line number2 index1 alt1" id="bkmrk-host%3A-controller.ope">`Host: controller.operationscommander.io`</div><div class="line number3 index2 alt2" id="bkmrk-accept%3A-application%2F">`Accept: application/json`</div><div class="line number4 index3 alt1" id="bkmrk-content-type%3A-applic">`Content-Type: application/json`</div><div class="line number5 index4 alt2" id="bkmrk-cache-control%3A-no-ca">`Cache-Control: no-cache`</div><div class="line number6 index5 alt1" id="bkmrk-%C2%A0"> </div><div class="line number7 index6 alt2" id="bkmrk-%7B">`{`</div><div class="line number8 index7 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%22apitoken%22%3A-%22you">`    ``"apiToken": "YOUR-API-TOKEN",`</div><div class="line number9 index8 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%22zones%22%3A-%22not-re">`    ``"zones": "NOT-REQUIRED--LIST-OF-ZONES"`</div><div class="line number10 index9 alt1" id="bkmrk-%7D">`}`</div>##### <span style="text-decoration: underline;">JavaScript Request</span>

<div class="line number1 index0 alt2" id="bkmrk-var%C2%A0request-%3D%C2%A0new%C2%A0xm">`var` `request = ``new` `XMLHttpRequest();`</div><div class="line number2 index1 alt1" id="bkmrk-%C2%A0-1"> </div><div class="line number3 index2 alt2" id="bkmrk-request.open%28%27post%27%2C">`request.open(``'POST'``, ``'<a href="https://controller.operationscommander.io/api/OC-TOMA/v1/permits/stats'">https://controller.operationscommander.io/api/OC-TOMA/v1/permits/stats'</a>``);`</div><div class="line number4 index3 alt1" id="bkmrk-%C2%A0-2"> </div><div class="line number5 index4 alt2" id="bkmrk-request.setrequesthe">`request.setRequestHeader(``'Content-Type'``, ``'application/json'``);`</div><div class="line number6 index5 alt1" id="bkmrk-request.setrequesthe-1">`request.setRequestHeader(``'Accept'``, ``'application/json'``);`</div><div class="line number7 index6 alt2" id="bkmrk-%C2%A0-3"> </div><div class="line number8 index7 alt1" id="bkmrk-request.onreadystate">`request.onreadystatechange = ``function` `() {`</div><div class="line number9 index8 alt2" id="bkmrk-%C2%A0%C2%A0if%C2%A0%28this.readystat">`  ``if` `(``this``.readyState === 4) {`</div><div class="line number10 index9 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0console.log%28%27sta">`    ``console.log(``'Status:'``, ``this``.status);`</div><div class="line number11 index10 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0console.log%28%27hea">`    ``console.log(``'Headers:'``, ``this``.getAllResponseHeaders());`</div><div class="line number12 index11 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0console.log%28%27bod">`    ``console.log(``'Body:'``, ``this``.responseText);`</div><div class="line number13 index12 alt2" id="bkmrk-%C2%A0%C2%A0%7D">`  ``}`</div><div class="line number14 index13 alt1" id="bkmrk-%7D%3B">`};`</div><div class="line number15 index14 alt2" id="bkmrk-%C2%A0-4"> </div><div class="line number16 index15 alt1" id="bkmrk-%C2%A0-5"> </div><div class="line number17 index16 alt2" id="bkmrk-var%C2%A0body-%3D-%7B">`var` `body = {`</div><div class="line number18 index17 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%22apitoken%22%3A%C2%A0%22you">`    ``"apiToken"``: ``"YOUR-API-TOKEN"``,`</div><div class="line number19 index18 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%22zones%22%3A%C2%A0%22lot-01">`    ``"zones"``: ``"Lot 01,Lot 02"`</div><div class="line number20 index19 alt1" id="bkmrk-%7D-1">`}`</div><div class="line number21 index20 alt2" id="bkmrk-request.send%28json.st">`request.send(JSON.stringify(body));`</div>### <span data-colorid="e0bysrvbz1">Request Object Attributes</span>

<table class="wrapped confluenceTable tablesorter tablesorter-default" id="bkmrk-attribute-type-limit" role="grid"><tbody aria-live="polite" aria-relevant="all"><tr><td>**Attribute**  
</td><td>**Type**  
</td><td>**Limits**

</td><td>**Possible Names**  
</td><td>**Description**</td></tr><tr role="row"><td class="confluenceTd">apiToken</td><td class="confluenceTd">String</td><td class="confluenceTd">50-character alphanumeric including dashes

</td><td class="confluenceTd">apiToken</td><td class="confluenceTd">**(Required)** Your supplied API Token.</td></tr><tr role="row"><td class="confluenceTd">zones

</td><td class="confluenceTd">String</td><td class="confluenceTd">Listed zones match zone names in database</td><td class="confluenceTd">zones

</td><td class="confluenceTd">**(Not Required)** Comma delimited list of zones

e.g. zone1,zone2,Lot 03,Red Lot,Street parking

</td></tr></tbody></table>

### Successful Response

The response will be a json object. The same reference id will be returned.

*Content-Type: application/json*

<div class="line number1 index0 alt2" id="bkmrk-%7B-1">`{`</div><div class="line number2 index1 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%22data%22%3A-%5B">`    ``"data"``: [`</div><div class="line number3 index2 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7B">`        ``{`</div><div class="line number4 index3 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22type%22%3A%C2%A0">`            ``"type"``: ``"standard"``,`</div><div class="line number5 index4 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22zone%22%3A%C2%A0">`            ``"zone"``: ``"zone1"``,`</div><div class="line number6 index5 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22total%22%3A">`            ``"total"``: ``"4"`</div><div class="line number7 index6 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%2C">`        ``},`</div><div class="line number8 index7 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7B-1">`        ``{`</div><div class="line number9 index8 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22type%22%3A%C2%A0-1">`            ``"type"``: ``"temp"``,`</div><div class="line number10 index9 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22zone%22%3A%C2%A0-1">`            ``"zone"``: ``"zone1"``,`</div><div class="line number11 index10 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22total%22%3A-1">`            ``"total"``: ``"35"`</div><div class="line number12 index11 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%2C-1">`        ``},`</div><div class="line number13 index12 alt2" id="bkmrk-%C2%A0%C2%A0%C2%A0%3A">`   ``:`</div><div class="line number14 index13 alt1" id="bkmrk-%C2%A0%C2%A0%C2%A0%3A-1">`   ``:`</div><div class="line number15 index14 alt2" id="bkmrk-%7D-2">`}`</div><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-id="96c00eaa-6dd9-4f65-aa36-dc5913e60e77" data-macro-name="code" id="bkmrk-"><div class="codeContent panelContent pdl"><div><div class="syntaxhighlighter sh-midnight nogutter  js" id="bkmrk--1"></div></div></div></div><div class="line number10 index9 alt1" id="bkmrk--2"></div><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-id="1fc64da1-381f-48e3-b00f-50af12c700e2" data-macro-name="code" id="bkmrk--3"><div class="codeContent panelContent pdl"><div><div class="syntaxhighlighter sh-midnight nogutter  text" id="bkmrk--4"></div></div></div></div>