API Documentation

We provide several different options for storingyour dimensioning data
Plug and Play Indicator


Per package

For customers who already have scale decks

Custom scale driver


Per development hour

For customers who are already heavily invested in their weighing equipment

Complete Scale Package


Per package

For customers with no weighing equipment

We provide several different options for storingyour dimensioning data
Direct the data to a local database

Cargo Spectre can be set up to transmit the data to a local machine inside your firewall.

Direct the data to your cloud

With a simple setting change you can set the system to transmit collected data to your own in house managed cloud

Use our cloud and analytics tool

Use our cloud and anylytics tool to see real time stats on your dimensioning operation

Use more than one option

Contact us now for pricing

API Reference

Our API uses HTTP REST/SOAP. It is not encrypted, and should only be used in local networks if message privacy is important. The default port used is 7100, although it is configurable in the config.xml. Requests are made as either a POST or GET request to the server’s IP address on the specified port. The server responds with either XML or binary data in the case of a file request.

Easy to integrate

Use above pallet wrap machines, conveyor belts, with a scale, on a forkilft, or above a table.

Simple to Use

Use our API, use our web hosted interface, or use your own for one low monthly cost.

Have a development request?

Contact Us

A POST request should contain a body with XML containing the list of requested actions.


We can request multiple API calls at a time, duplicates included. They will be executed in order, but keep in mind that a blocking SOAP call will take longer with more API calls. Note: In the below example, Snapshot does not happen until Dimension is completed. After both Dimension and Snapshot are completed, the server returns the results of both in the output format.


A POST request should contain a body with XML containing the list of requested actions.

        <ApiName code="0">
        <ApiName code="5" description="some error"/>

For each API request, there will be a corresponding response tree. Each response is accompanied by an error code attribute. An error code of 0 means the call was successful.

        <Dimension  code="0"> 
                    <Length> 60.5</Length>
                    <Width> 60.5</Width>
                    <Height> 61.0</Height>
                    <Volume> 223275.000</Volume>
                        <Net> 0</Net>
                        <Gross> 0</Gross>
                        <Tare> 0</Tare>
                    <Length> Inches</Length>
                    <Volume> Cubic Feet</Volume>
                    <Weight> lb</Weight>
        <Snapshot  code="0"> 
                    <Path> Jun-13_09-24-36_2016/073340441047-raw.pcd</Path>
                    <Path> Jun-13_09-24-36_2016/color-image0.png</Path>
                    <Path> Jun-13_09-24-36_2016/info.xml</Path>

Every API call that can be specified with POST can also be sent through GET. The GET call does the same thing as POST but converts it to a single request without any inputs. Some API calls will return errors if used in this way if they require inputs to do something.

Note: API actions (/file, /dimension, /settings, etc) should all be lowercase.



Clients can retrieve specific files from the machine through GET calls. The Snapshot API, for instance, returns paths to various different data files for a particular piece of freight. You can use GET with a prepended “/file” to grab such files. Files can only be retrieved from within the “~/Cargo-Spectre” directory and no files outside of that will be accessible through this method.



Output for GET requests is the same as for POST requests. See Output format above.

Request example (included in the POST body):

    "email": "",
    "password": "FakePassword123!"

Response example:

  "matches": [
      "publicIP": "",
      "localIP": "",
      "macAddress": "bbb156d2651f",
      "machineName": "Dock 5",
      "lastUpdated": "2016-12-18T13:57:14.777059"
      "publicIP": "",
      "localIP": "",
      "macAddress": "f46d04698d",
      "machineName": "Receiving Bay",
      "lastUpdated": "2016-11-20T16:21:07.8148707"
      "publicIP": "",
      "localIP": "",
      "macAddress": "742f681c2d",
      "machineName": "Departure Scanner",
      "lastUpdated": "2016-11-20T15:16:27.4377527"
  "error": null

Note: to receive XML back, the request must specify the “Accept” header with the value set to “application/xml” otherwise the response will be returned in JSON.

Request example:


Request example:

<MatchmakingResponse xmlns:xsi="" xmlns:xsd="">
			<MachineName>Dock 5</MachineName>
			<MachineName>Receiving Bay</MachineName>
			<MachineName>Departure Scanner</MachineName>