# Push API: Vehicle Create

<p class="callout info"><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="kxbncs083n">The OPSCOM Controller provides a simple JSON based API to integrate with. Clients use this API to directly feed vehicles into OPSCOM from other systems. </span>

Make sure you set the HTTP Content-Type header to be application/json.

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

### Raw Request:

<div class="sectionMacroRow" id="bkmrk-post-%2Fapi%2Foc_toma%2Fv1"><div class="columnMacro conf-macro output-block" data-hasbody="true" data-macro-id="d82683ac-7548-4419-a8f9-4dd2f5a2e52e" data-macro-name="column"><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-id="e0f00b72-fb34-406b-8191-44548c0c6a03" data-macro-name="code"><div class="codeContent panelContent pdl"><div><div class="syntaxhighlighter sh-midnight nogutter  text" id="bkmrk-post-%2Fapi%2Foc_toma%2Fv1-1"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container" title="Hint: double-click to select code"><div class="line number1 index0 alt2">`POST /api/OC_TOMA/v1/vehicles/push HTTP/1.1`</div><div class="line number2 index1 alt1">`Host: controller.operationscommander.io`</div><div class="line number3 index2 alt2">`Accept: application/json`</div><div class="line number4 index3 alt1">`Content-Type: application/json`</div><div class="line number5 index4 alt2">`Cache-Control: no-cache`</div><div class="line number6 index5 alt1"> </div><div class="line number7 index6 alt2">`{`</div><div class="line number8 index7 alt1">`    ``"apiToken": "YOUR-API-TOKEN",`</div><div class="line number9 index8 alt2">`    ``"plate": "PL8RDR",`</div><div class="line number10 index9 alt1">`    ``"plateType": "Motorcycle",`</div><div class="line number11 index10 alt2">`    ``"prov": "MA",`</div><div class="line number12 index11 alt1">`    ``"make": "8",`</div><div class="line number13 index12 alt2">`    ``"type": "3",`</div><div class="line number14 index13 alt1">`    ``"colour": "red",`</div><div class="line number15 index14 alt2">`    ``"year": "2011",`</div><div class="line number16 index15 alt1">`    ``"vin": "8GKS1AKC7FR518845"`</div><div class="line number17 index16 alt2">`}`</div></div></td></tr></tbody></table>

</div></div></div></div></div><div class="columnMacro conf-macro output-block" data-hasbody="true" data-macro-id="96733877-01a7-4c30-9e62-30b67dd186b6" data-macro-name="column">  
</div></div>### JavaScript Request:

<div class="sectionMacroRow" id="bkmrk-var%C2%A0request-%3D%C2%A0new%C2%A0xm"><div class="columnMacro conf-macro output-block" data-hasbody="true" data-macro-id="96733877-01a7-4c30-9e62-30b67dd186b6" data-macro-name="column"><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-id="27c0aef3-a976-47d7-8822-ce06e320ad25" data-macro-name="code"><div class="codeContent panelContent pdl"><div><div class="syntaxhighlighter sh-midnight nogutter  js"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container" title="Hint: double-click to select code"><div class="line number1 index0 alt2">`var` `request = ``new` `XMLHttpRequest();`</div><div class="line number2 index1 alt1"> </div><div class="line number3 index2 alt2">`request.open(``'POST'``, ``'<a href="https://controller.operationscommander.io/api/OC_TOMA/v1/vehicles/push'">https://controller.operationscommander.io/api/OC_TOMA/v1/vehicles/push'</a>``);`</div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2">`request.setRequestHeader(``'Content-Type'``, ``'application/json'``);`</div><div class="line number6 index5 alt1">`request.setRequestHeader(``'Accept'``, ``'application/json'``);`</div><div class="line number7 index6 alt2"> </div><div class="line number8 index7 alt1">`request.onreadystatechange = ``function` `() {`</div><div class="line number9 index8 alt2">`  ``if` `(``this``.readyState === 4) {`</div><div class="line number10 index9 alt1">`    ``console.log(``'Status:'``, ``this``.status);`</div><div class="line number11 index10 alt2">`    ``console.log(``'Headers:'``, ``this``.getAllResponseHeaders());`</div><div class="line number12 index11 alt1">`    ``console.log(``'Body:'``, ``this``.responseText);`</div><div class="line number13 index12 alt2">`  ``}`</div><div class="line number14 index13 alt1">`};`</div><div class="line number15 index14 alt2"> </div><div class="line number16 index15 alt1"> </div><div class="line number17 index16 alt2">`var` `body = {`</div><div class="line number18 index17 alt1">`    ``"apiToken"``: ``"YOUR-API-TOKEN"``,`</div><div class="line number19 index18 alt2">`    ``"plate"``: ``"PL8RDR"``,`</div><div class="line number20 index19 alt1">`    ``"plateType"``: ``"Motorcycle"``,`</div><div class="line number21 index20 alt2">`    ``"prov"``: ``"MA"``,`</div><div class="line number22 index21 alt1">`    ``"make"``: ``"kia"``,`</div><div class="line number23 index22 alt2">`    ``"type"``: ``"commercial"``,`</div><div class="line number24 index23 alt1">`    ``"colour"``: ``"red"``,`</div><div class="line number25 index24 alt2">`    ``"year"``: ``"2021"``,`</div><div class="line number26 index25 alt1">`    ``"vin"``: ``"8GKS1AKC7FR518845"`</div><div class="line number27 index26 alt2">`}`</div><div class="line number28 index27 alt1">`request.send(JSON.stringify(body));`</div></div></td></tr></tbody></table>

</div></div></div></div></div></div>## <span data-colorid="aukchi7y0x">Request Object Attributes</span>

<div class="table-wrap" id="bkmrk-attribute-type-limit"><table class="wrapped confluenceTable tablesorter tablesorter-default" role="grid" style="width: 100%;"><colgroup><col style="width: 7.9857%;"></col><col style="width: 6.55358%;"></col><col style="width: 21.2176%;"></col><col style="width: 9.89273%;"></col><col style="width: 54.4696%;"></col></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0">Attribute</th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" tabindex="0">Type</th><th aria-disabled="false" aria-label="Limits: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="2" role="columnheader" scope="col" tabindex="0">Limits</th><th aria-disabled="false" aria-label="Possible Names: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="3" role="columnheader" scope="col" tabindex="0">Possible Names</th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" colspan="1" data-column="4" role="columnheader" scope="col" tabindex="0">Description</th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" colspan="1">apiToken</td><td class="confluenceTd" colspan="1">String</td><td class="confluenceTd" colspan="1">50-character alphanumeric including dashes.

</td><td class="confluenceTd" colspan="1">apiToken</td><td class="confluenceTd" colspan="1">**(Required)** Your supplied API Token.</td></tr><tr role="row"><td class="confluenceTd">plate</td><td class="confluenceTd">String</td><td class="confluenceTd">50-character alphanumeric.</td><td class="confluenceTd">plate

</td><td class="confluenceTd" colspan="1">**(Required)** The license plate.

</td></tr><tr role="row"><td class="confluenceTd">plateTypeID</td><td class="confluenceTd">String</td><td class="confluenceTd">The ID of the VechiclePlateType record.

</td><td class="confluenceTd">plateTypeID</td><td class="confluenceTd">**(One of plateTypeID or plateType is required)** Your supplied VehiclePlateType identifier.</td></tr><tr role="row"><td class="confluenceTd">plateType</td><td class="confluenceTd">String</td><td class="confluenceTd">50-character alphanumeric including dashes.

</td><td class="confluenceTd">plateType</td><td class="confluenceTd">**(One of plateTypeID or plateType is required)** The name of the plate type.</td></tr><tr role="row"><td class="confluenceTd">provID</td><td class="confluenceTd">String</td><td class="confluenceTd">The ID of the state/province.

</td><td class="confluenceTd">provID</td><td class="confluenceTd">**(One of provID or prov is required)** Your supplied state or province identifier.</td></tr><tr role="row"><td class="confluenceTd">prov</td><td class="confluenceTd">String</td><td class="confluenceTd">50-character alphanumeric including dashes

</td><td class="confluenceTd">prov</td><td class="confluenceTd">**(One of provID or prov is required)** The full name of the state/province or the corresponding postal abbreviation.</td></tr><tr role="row"><td class="confluenceTd">makeID</td><td class="confluenceTd">String</td><td class="confluenceTd">The ID of the vehicle make.

</td><td class="confluenceTd">makeID</td><td class="confluenceTd">*(Optional) Your supplied vehicle make identifier.*</td></tr><tr role="row"><td class="confluenceTd">make</td><td class="confluenceTd">String</td><td class="confluenceTd">50-character alphanumeric including dashes</td><td class="confluenceTd">make

</td><td class="confluenceTd" colspan="1">*(Optional)* The name of the vehicle manufacturer. </td></tr><tr role="row"><td class="confluenceTd">typeID</td><td class="confluenceTd">String</td><td class="confluenceTd">The ID of the vehicle type.

</td><td class="confluenceTd">typeID</td><td class="confluenceTd">*(Optional) Your supplied vehicle type identifier.*</td></tr><tr role="row"><td class="confluenceTd">type</td><td class="confluenceTd">String</td><td class="confluenceTd">50-character alphanumeric including dashes

</td><td class="confluenceTd">type</td><td class="confluenceTd">*(Optional) The name of the type of vehicle that you provided.*</td></tr><tr role="row"><td class="confluenceTd">colourID</td><td class="confluenceTd">String</td><td class="confluenceTd">The ID of the vehicle colour.</td><td class="confluenceTd">colourID</td><td class="confluenceTd">*(Optional) Your supplied vehicle colour identifier.*</td></tr><tr role="row"><td class="confluenceTd">colour

</td><td class="confluenceTd">String</td><td class="confluenceTd">50-character alphanumeric including dashes

</td><td class="confluenceTd">colour

</td><td class="confluenceTd" colspan="1">*(Optional) The name of a colour that you have provided..*

</td></tr><tr role="row"><td class="confluenceTd" colspan="1">year</td><td class="confluenceTd" colspan="1">String</td><td class="confluenceTd" colspan="1">4 digit year.

</td><td class="confluenceTd" colspan="1">year

</td><td class="confluenceTd" colspan="1">*(Optional) The model year.*

</td></tr><tr role="row"><td class="confluenceTd" colspan="1">vin</td><td class="confluenceTd" colspan="1">String</td><td class="confluenceTd" colspan="1">25-characters</td><td class="confluenceTd" colspan="1">vin

</td><td class="confluenceTd" colspan="1">*(Optional) The vehicle identification number.*</td></tr></tbody></table>

</div>## Successful Response

The response will be a json object.

Content-Type: application/json

<div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-id="db38aafe-8712-40c9-8a94-4303ba5151c0" data-macro-name="code" id="bkmrk-%7B-%C2%A0%C2%A0%C2%A0%C2%A0%22status%22%3A%C2%A0%22suc"><div class="codeContent panelContent pdl"><div><div class="syntaxhighlighter sh-midnight nogutter  js" id="bkmrk-%7B-%C2%A0%C2%A0%C2%A0%C2%A0%22status%22%3A%C2%A0%22suc-1"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container" title="Hint: double-click to select code"><div class="line number1 index0 alt2">`{`</div><div class="line number2 index1 alt1">`    ``"status"``: ``"success"``,`</div><div class="line number3 index2 alt2">`    ``"vehicle_id_id"``: ``"158"``,`</div><div class="line number4 index3 alt1">`    ``"warnings"``:[``"The vehicle colour name was too long and has been truncated."``]`</div><div class="line number5 index4 alt2">`}`</div></div></td></tr></tbody></table>

</div></div></div></div><div class="sectionMacroRow" id="bkmrk-"><div class="columnMacro conf-macro output-block" data-hasbody="true" data-macro-id="96733877-01a7-4c30-9e62-30b67dd186b6" data-macro-name="column"><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-id="27c0aef3-a976-47d7-8822-ce06e320ad25" data-macro-name="code"><div class="codeContent panelContent pdl"><div><div class="syntaxhighlighter sh-midnight nogutter  js" id="bkmrk--1"></div></div></div></div></div></div>