Limble's API Documentation

Connect, Integrate and Synchronize

Getting Started

About Limble CMMS and how to get started with our API.
DOCS
Request Help | Suggest Edit

Welcome to Limble CMMS's API documentation.

You can use this documentation to configure connections to the Limble CMMS API over https using RESTful standards.

Using the API you can get information about the following portions of your system:

  • Assets
  • Tasks (Work Orders, Preventive Maintenance, Work Requests, etc.)
  • Parts (Current quantities and Usage)
  • Invoices
  • Locations
  • Users

If you come across anything you think can be improved or find you need functions that are not listed please feel free to reach out to us!

Authentication Request Help | Suggest Edit

To protect your information the Limble CMMS API uses BASIC authorization standards.

Every call to the API must include an authorization header with your base 64 encoded id and secret.

Example Header

Authorization: Basic [BASE64 ENCODED YOUR_CLIENT_ID:YOUR_CLIENT_SECRET]

Client ID Request Help | Suggest Edit

Your Client ID is your unique customer identification and will control which data elements you will have access to. For example a Client ID can be restricted to only allow Assets to be accessed.

Client Secret Request Help | Suggest Edit

Your Client Secret is used to authenticate the Client ID on each API call. This is something that must be kept secret.

How do I get my Client ID and Client Secret?

To obtain your Client ID and Client Secret simply contact your dedicated CMMS advisor or send us an email at mail@limblecmms.com.

Samples Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/assets \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic

//cURL defaults to basic authorization. Using the -u parameter curl will create the header for you. You may add the --basic option to ensure it is treated correctly
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/assets");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr); 
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/assets',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Query Parameters Request Help | Suggest Edit

Most query parameters are optional and do not need to be used, but using them can be extremely helpful.

Here are some general guidelines for their use:

- Dates: All dates are to be in epoch time
  -ie: 1518826177 = GMT: Saturday, February 17, 2018 12:09:37 AM

- Id Numbers: All id numbers can be provided in a comma separated fashion, ie:
  - ?assets=1
  - ?assets=1,4,6

Handling Response Data Request Help | Suggest Edit

All data from Limble API calls includes:
  - success: true/false
  - data:
   - columns: Array list of all column names
   - rows: Array list of all data for the columns

This method drastically reduces download times as the name of the columns are only sent once.

Depending on your use of the data you can create a csv as-is to port to other systems or you can map it to be used programatically.

Here are some sample methods for achieving this in PHP and NodeJS:

Sample Handling Response Data Functions Request Help | Suggest Edit

$res = //Response From Limble API
$arr = [];

foreach($res['data']['rows'] as $row){
    $tmp = [];
    foreach($res['data']['columns'] as $key => $column){
        $tmp[$column] = $row[$key];
    }
    $arr[] = $tmp; 
}
											
var res = //Response From Limble API;

var data = res.data.rows.map(row => {
    let obj = {};

    res.data.columns.forEach((column, index) => {
        obj[column] = row[index];
    });

    return obj;
});
											

- Can't find what you want?

Need to accomplish something with the API that you can't? Send us an email and we will see if we can get that added for you.

Get Assets

Get information such as Asset IDs, Asset Names, etc.
GET
https://api.limblecmms.com/assets?start=1518826177&end=1518971169&locations=74,153&assets=75,20,1111,23

Path Parameters Request Help | Suggest Edit

Parameter Type Description
start Int Optional - This parameter is used to only get Assets that were last edited after the unix timestamp passed into the start parameter. For example, all Assets that were last edited after April 18th, 2018.
end Int Optional - This parameter is used to only get Assets that were last edited before the unix timestamp passed into the end parameter.
locations Int Optional - This parameter is used to only get Assets at a specific group of Locations. This parameter accepts a comma delimited list of Location IDs. E.g 73,205
assets Int Optional - This parameter is used to only get specific Assets. This parameter expects a comma delimited list of Asset IDs. E.g. 75, 201

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/assets \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/assets");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr); 
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/assets',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
    "success": true,
    "data": {
        "columns": [
            "Asset ID", //The Asset's internal Limble Asset ID
            "Asset Name", //the Asset's name
            "Location ID", //the Location ID of the Asset
            "Asset Started On", //When the Asset started running
            "Last Edited", //The last time this Asset was edited
            "Status", //If the Asset is Active or Deleted
            "Hours Per Week"  //the number of hours per week an Asset runs
        ],
        "rows": [
            [
                14,
                "DAIKIN GOODMAN R410A",
                73,
                1457478077,
                1518826313,
                "Active",
                40
            ],
            [
                15,
                "Goodman Commercial 15 Ton 3 - 025",
                73,
                1457478077,
                1518826313,
                "Active",
                40
            ],
            [
                58,
                "Heat Pump 003",
                73,
                1457478077,
                1518826313,
                "Active",
                40
            ],
            [
                115,
                "Chiller 1",
                73,
                1508440044,
                1518826313,
                "Deleted",
                40
            ]
        ]
    }
}
											
SAMPLE ERROR MESSAGE GOES HERE
											

Get Assets Fields

Get detailed information about Asset Fields such as Make, Model and any other custom set field.
GET
https://api.limblecmms.com/assets/fields?start=1518826177&end=1518971169&assets=45,103,5756

Path Parameters Request Help | Suggest Edit

Parameter Type Description
start Int Optional - This parameter is used to only get Assets Fields that were last edited after the unix timestamp passed into the start parameter. For example, all Assets Fields that were last edited after April 18th, 2018.
end Int Optional - This parameter is used to only get Assets Fields that were last edited before the unix timestamp passed into the end parameter.
assets Int Optional - This parameter is used to only get Asset Fields for specific Assets. This parameter expects a comma delimited list of Asset IDs. E.g. 75, 201

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/assets/fields \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/assets/fields");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr); 
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/assets/fields',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
    "success": true,
    "data": {
        "columns": [
            "Asset ID",  //The ID of the Asset this field belongs to
            "Field", //The Name of the field.  e.g Make, Model, etc.
            "Value", //The value stored in that field.  e.g. Goodman
            "Field Type", //The type of the field such as Text (1), Date (2), Pictures (3), Documents (4), Number (5), Currency (6).
            "Files", //Name of the files uploaded 
            "Asset Last Edited"  //The last time the Asset this field belongs to was edited
        ],
        "rows": [
            [
                45,
                "Make",
                "Volvo",
                "Text",
                "",
                1518974309
            ],
            [
                45,
                "Model",
                "L180G",
                "Text",
                "",
                1518974309
            ],
            [
                45,
                "Hours Ran",
                "3",
                "Number",
                "",
                1518974309
            ],
            [
                45,
                "Cost",
                "25000",
                "Currency",
                "",
                1518974309
            ]
        ]
    }
}
											
SAMPLE ERROR MESSAGE GOES HERE
											

Get Tasks (WOs, PMs, etc.)

Get information about Tasks such as task type, completed date, time spent (labor cost), etc.
GET
https://api.limblecmms.com/tasks?start=1489747783&end=1495581331&locations=73,74&tasks=40,81,116

Path Parameters Request Help | Suggest Edit

Parameter Type Description
start Int Optional - This parameter is used to only get Tasks that were last edited after the unix timestamp passed into the start parameter. E.g. all Tasks that were last edited after April 18th, 2018.
end Int Optional - This parameter is used to only get Tasks that were last edited before the unix timestamp passed into the end parameter.
locations Int Optional - This parameter is used to only get Tasks at a specific group of locations. This parameter accepts a comma delimited list of Location IDs. E.g 73,205
tasks Int Optional - This parameter is used to only get specific Tasks. This parameter accepts a comma delimited list of task IDs. E.g 765,2205

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/tasks \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/tasks");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr); 
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/tasks',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
    "success": true,
    "data": {
        "columns": [
            "Task ID", //The unique ID for tasks
            "Task Name", //The Task's Name
            "Owner", //The user who this Task was assigned to
            "Team", //The team this task was assigned to
            "Location ID", //The location this Task belongs to
            "Created Date", //The unix timestamp this Task was created
            "Date Due", //The unix timestamp this Task was due
            "Date Completed", //The unix timestamp when this Task was Completed
            "Last Edited", //The unix timestamp when this Task was last edited
            "Completed By User", //The user that completed this Task
            "Asset ID", //The Asset this task belongs to
            "Time Spent - User Provided Duration (in seconds)", //How long this Task took to complete (in seconds) recorded by a User 
            "Completed User Wage", //The wage per hour of the User that completed this Task at the time the Task was completed
            "Priority", //The priority of the Task
            "Downtime (in seconds)", //How many seconds of Downtime this Task caused
            "Task Type" //The Type of Task.  E.g Unplanned WO Instance
        ],
        "rows": [
            [
                26,
                "Quarterly Maintenance",
                0,
                0,
                73,
                "0",
                "0",
                "0",
                1518559856,
                0,
                16,
                0,
                15,
                0,
                0,
                "PM Template"
            ],
            [
                40,
                "Quarterly Maintenance",
                0,
                438,
                73,
                "1458231353",
                "1459391400",
                "1459391400",
                1489747783,
                341,
                16,
                3600,
                15,
                1,
                0,
                "PM Instance"
            ],
            [
                81,
                "Fix the test player's screen",
                0,
                436,
                74,
                "1484261846",
                "1484213400",
                "1484213400",
                1494083876,
                341,
                20,
                4800,
                15,
                0,
                0,
                "Unplanned WO Instance"
            ]
        ]
    }
}
											
SAMPLE ERROR MESSAGE GOES HERE
											

Get Parts

Get information about your current parts inventory such as current quantity, price, quantity threshold, etc.
GET
https://api.limblecmms.com/parts?start=1518816773&end=1518825264&parts=215,217

Path Parameters Request Help | Suggest Edit

Parameter Type Description
start Int Optional - This parameter is used to only get Parts that were last edited after the unix timestamp passed into the start parameter. For example, all Parts that were last edited after April 18th, 2018.
end Int Optional - This parameter is used to only get Parts that were last edited before the unix timestamp passed into the start parameter.
locations Int Optional - This parameter is used to only get Parts at a specific group of Locations. This parameter accepts a comma delimited list of Location IDs. E.g 73,205
parts Int Optional - This parameter is used to only get specific Parts. This parameter expects a comma delimited list of Part IDs. E.g. 90, 232

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/parts \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/parts");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr); 
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/parts',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
  "success": true,
  "data": {
    "columns": [
      "Part ID", //The unique identifier for this Part
      "Number", //The Part's Number.  THIS IS NOT stock levels.  Parts often have numbers associated with them for identification purposes
      "Name", //The Part's Name
      "Quantity", //How many of this Part is currently in stock
      "Price", //The price of the Part
      "Note", //Notes associated with the Part
      "Category", //The Category the Part is associated with
      "Location ID", //The location this Part belongs to
      "Stale Hit", //If the stale threshold is hit.  0 = false, 1 = true
      "Part Quantity Hit", //If the Part Quantity Threshold is Hit. 0 = false, 1 = true
      "Stale Threshold", //The number of days for a Part to have not been used before it goes Stale.  -1 means this feature is disabled.
      "Part Quantity Threshold", //The minimum number of parts we want to keep in inventory.  -1 means this feature is disabled.
      "Last Edited", //The last time this Part was edited
      "Owner", //Who Tasks will be assigned to if a Threshold is triggered. If both Owner and Team set to 0 it will default to Manager
      "Team" //Who Tasks will be assigned to if a Threshold is triggered. If both Owner and Team set to 0 it will default to Manager
    ],
    "rows": [
      [
        1,
        "01XB",
        "Digital Multimeter",
        1,
        2,
        "",
        "Electronics",
        73,
        1,
        1,
        30,
        30,
        1520467427,
        0,
        0
      ],
      [
        11,
        "2f996",
        "Switch",
        33,
        84,
        "",
        "",
        163,
        1,
        0,
        30,
        10,
        1519148927,
        0,
        0
      ],
      [
        19,
        "8831",
        "Oil Filter",
        24,
        15,
        "",
        "Gas Filters",
        205,
        1,
        0,
        -1,
        -1,
        1518826313,
        0,
        437
      ],
    ]
  }
}
											
SAMPLE ERROR MESSAGE GOES HERE
											

Get Parts Usage

Get information about your Parts Usage, such as what Parts were used when and for how much.
GET
https://api.limblecmms.com/parts/usage?tasks=88,5&parts=1,3&start=1518826177&end=1518971169

Path Parameters Request Help | Suggest Edit

Parameter Type Description
start Int Optional - This parameter is used to only get Parts Usage that were last edited after the unix timestamp passed into the start parameter. For example, all Parts Usage that were last edited after April 18th, 2018.
end Int This is an optional parameter used to only get Parts Usage last edited before the unix timestamp passed into the end parameter.
parts Int Optional - This parameter is used to only get Parts Usage for specific Parts. This parameter accepts a comma delimited list of Part IDs. E.g 64,921
tasks Int Optional - This parameter is used to only get Parts Usage for specific Tasks. This parameter accepts a comma delimited list of Task IDs. E.g 92,741

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/parts/usage \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/parts/usage");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr);
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/parts/usage',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
    "success": true,
    "data": {
        "columns": [
            "Task ID", //The Task where this Part was used
            "Part ID", //The Part that was used
            "Suggested Count", //The suggested number of Parts that should have been used
            "Used Count", //How many Parts were actually used
            "Used Price", //The price of the Part at the time it was used
            "Used On" //The completed time of the Task where this Part was used 
        ],
        "rows": [
            [
                1548,
                112,
                1,
                1,
                25,
                "1520347973"
            ],
            [
                1566,
                6,
                1,
                0,
                0,
                "0"
            ],
            [
                1717,
                145,
                1,
                3,
                9.99,
                "1521240685"
            ]
        ]
    }
}
											
SAMPLE ERROR MESSAGE GOES HERE
											

Get Invoices

Get information about Invoices such as their cost and when they occurred.
GET
https://api.limblecmms.com/invoices?start=1518817773&end=1518817777&invoices=5,6,7&tasks=50,94

Path Parameters Request Help | Suggest Edit

Parameter Type Description
start Int Optional - This parameter is used to only get Invoices that were last edited after the unix timestamp passed into the start parameter. For example, all Invoices that were last edited after April 18th, 2018.
end Int Optional - This parameter is used to only get Invoices that were last edited before the unix timestamp passed into the end parameter.
invoices Int Optional - This parameter is used to only get specific Invoices. This parameter expects a comma delimited list of Invoice IDs. E.g. 65, 217
tasks Int Optional - This parameter is used to only get Invoices for specific Tasks. This parameter expects a comma delimited list of Task IDs. E.g. 92, 2293

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/invoices \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/invoices");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr);
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/invoices',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
    "success": true,
    "data": {
        "columns": [
            "Invoice ID", //The unique ID for an Invoice
            "File", //The File Name of the Invoice
            "Cost", //The cost associated with the Invoice
            "Task ID", //The Task this Invoice belongs to
            "Last Edited", //The last time this Invoice was edited
            "Used On" //The completed time of the Task where this Invoice was used.  
        ],
        "rows": [

            [
                77,
                "14325 Status Report - 2017-08-01.pdf",
                500,
                548,
                1518826313,
                "1503951848"
            ],
            [
                81,
                "",
                50,
                643,
                1518826313,
                "1506108327"
            ]
        ]
    }
}
											
SAMPLE ERROR MESSAGE GOES HERE
											

Get Locations

Get information about locations such as Location Name, Timezone etc.
GET
https://api.limblecmms.com/locations?locations=541,232

Path Parameters Request Help | Suggest Edit

Parameter Type Description
locations Int Optional - This parameter is used to only get specific Locations. This parameter expects a comma delimited list of Location IDs. E.g. 33, 123

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/locations \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/locations");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr);
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/locations',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
    "success": true,
    "data": {
        "columns": [
            "Location ID", //The unique ID for each location
            "Location Name", //The locations name
            "Timezone", //The timezone this location is at
            "Weekly Operation Hours" //Default weekly Operation Hours.  Used when calculating hours an asset is ran if the hours an asset run isn't explicitly set
        ],
        "rows": [
            [
                541,
                "NY - Facility 1",
                "MST",
                40
            ],
            [
                232,
                "SLC - Facility 2",
                "MST",
                40
            ]
        ]
    }
}
											
SAMPLE ERROR MESSAGE GOES HERE
											

Get Users

Get information about Users such as User Login, User Email etc.
GET
https://api.limblecmms.com/users?userID=2366,8971

Path Parameters Request Help | Suggest Edit

Parameter Type Description
users Int Optional - This parameter is used to only get specific Users. This parameter expects a comma delimited list of User IDs. E.g. 2366, 8971

Example Calls Request Help | Suggest Edit

curl https://api.limblecmms.com/users \
-u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET --basic
											
$id = 'YOUR_CLIENT_ID';
$secret = 'YOUR_CLIENT_SECRET';
$auth_token = base64_encode($id . ':' . $secret);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://api.limblecmms.com/users");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '.$auth_token.'')); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);

curl_close($ch);

//the repsonse in an object
$obj = json_decode($response);

//the responce in an array
$arr = json_decode($response, true);

echo var_export($arr);
											
var https = require('https');

const id = "YOUR_CLIENT_ID";
const secret = "YOUR_CLIENT_SECRET";

const options = {
    hostname: 'api.limblecmms.com',
    path: '/users',
    method: 'GET',
    auth: `${id}:${secret}`
};

const req = https.request(options, (res) => {
    res.setEncoding('utf8');
    let data = '';

    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        if(res.statusCode == 200){
            let response = JSON.parse(data);
            console.log(response);
        }else{
            //error handling
        }
    });
});

req.on('error', (e) => {
    //error handling
});

req.end();
											

Example Results Request Help | Suggest Edit

{
    "success": true,
    "data": {
        "columns": [
            "User ID", //Unique ID for a User
            "User Login", //The User's username
            "Email", //The email associated with the User
            "Phone", //The User's phone number
            "First Name", //The User's first name
            "Last Name", //The User's Last Name
            "Wage", //The Wage set for a User
            "Active", //Is the User active.  0 = inactive, 1 = active
            "Login Count", //The number of times a User has logged in
            "Email Notification Active", //If email notifications are turned on for the User. 0 = off, 1 = on
            "Push Notification Active", //If push notifications are turned on for the User. 0 = off, 1 = on
            "Workday Hours", //How many hours a day the User works
            "Date Added" //The date the User was added
        ],
        "rows": [
            [
                341,
                "testing@tester.com",
                "testing@tester.com",
                "987-654-3210",
                "Nathan",
                "Washburn",
                15,
                1,
                4724,
                1,
                1,
                8,
                1519721024
            ],
            [
                342,
                "test@test.com",
                "test@test.com",
                "987-654-3210",
                "Bryan",
                "Christiansen",
                15,
                1,
                49,
                1,
                1,
                8,
                1519740024
            ]
        ]
    }
}
											
SAMPLE ERROR MESSAGE GOES HERE