NAV -image
bash javascript

Introduction

This documentation aims to provide all the information you need to work with our API.

Base URL

http://api-trucklabortimes2.local

Authenticating requests

You should have been handed out an API key to use this service (if not, please request yours).

The API expects you to include this API key in all your requests, in a header that looks like the following:

X-Authorization: api-key

You must replace api-key with your personal API key.

Add-on

List

requires authentication

Retrieve all add-ons

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/addon?year_id=20&system_id=14&search=velit&sort_by=name&sort_dir=asc&page=8&per_page=20" \
    -H "X-Authorization: h63VkDbgedE8Za65acf4P1v" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"system_id":15}'
const url = new URL(
    "https://api-labortimes.com/api/v1/addon"
);

let params = {
    "year_id": "20",
    "system_id": "14",
    "search": "velit",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "8",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "h63VkDbgedE8Za65acf4P1v",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "system_id": 15
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 378,
            "system_id": 61,
            "name": "Aftertreatment",
            "system_name": "Aftertreatment",
            "low": 0.3,
            "average": 0.4,
            "high": 0.5
        }
    ],
    "meta": {
        "count": 188,
        "current_page": 1,
        "from": 1,
        "last_page": 19,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/addon?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/addon?page=19",
                "label": 19,
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/addon?page=2",
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/addon",
        "per_page": 10,
        "to": 10,
        "total": 188
    },
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/addon?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/addon?page=19",
        "prev": null,
        "next": "https:\/\/api-labortimes.com\/api\/v1\/addon?page=2"
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/addon

Query Parameters

year_id  integer optional  
Filter by 'id' of the year.

system_id  integer optional  
Filter by 'id' of the system.

search  string optional  
Search by name of add-on.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name', 'system_name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

system_id  integer optional  

Retrieve

requires authentication

Retrieve the add-on

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/addon/et" \
    -H "X-Authorization: 3ba4veafck5d6ghPVE6D1Z8" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"system_id":17}'
const url = new URL(
    "https://api-labortimes.com/api/v1/addon/et"
);

let headers = {
    "X-Authorization": "3ba4veafck5d6ghPVE6D1Z8",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "system_id": 17
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": {
        "id": 378,
        "system_id": 61,
        "name": "Aftertreatment",
        "system_name": "Aftertreatment",
        "low": 0.3,
        "average": 0.4,
        "high": 0.5
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/addon/{id}

URL Parameters

id  string optional  
The 'id' of the add-on.

Body Parameters

system_id  integer optional  

Component

List

requires authentication

Retrieve all components

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/component?system_id=16&sort_by=name&sort_dir=asc&page=20&per_page=20" \
    -H "X-Authorization: 3vDf81PEcVha4dbk5Z6aeg6" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"system_id":20}'
const url = new URL(
    "https://api-labortimes.com/api/v1/component"
);

let params = {
    "system_id": "16",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "20",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "3vDf81PEcVha4dbk5Z6aeg6",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "system_id": 20
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 332,
            "system_id": 69,
            "name": "Actuator Solenoid Valve"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/component?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/component?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/component?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/component",
        "per_page": 500,
        "to": 164,
        "total": 164
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/component

Query Parameters

system_id  integer optional  
Filter by 'id' of the system.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

system_id  integer optional  

Engine Make

List

requires authentication

Retrieve all engine makes

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/engine_make?year_id=18&sort_by=name&sort_dir=asc&page=4&per_page=20" \
    -H "X-Authorization: E3kvcaehD1bdVZ6g8P6a5f4" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"year_id":16}'
const url = new URL(
    "https://api-labortimes.com/api/v1/engine_make"
);

let params = {
    "year_id": "18",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "4",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "E3kvcaehD1bdVZ6g8P6a5f4",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "year_id": 16
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 1,
            "year_id": 1,
            "name": "Detroit Diesel"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/engine_make?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/engine_make?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/engine_make?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/engine_make",
        "per_page": 500,
        "to": 3,
        "total": 3
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/engine_make

Query Parameters

year_id  integer optional  
Filter by 'id' of the year.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 10, maximum 100.

Body Parameters

year_id  integer optional  

Engine Model

List

requires authentication

Retrieve all engine models

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/engine_model?engine_make_id=19&sort_by=name&sort_dir=asc&page=16&per_page=20" \
    -H "X-Authorization: eh468ca6agVk5vfb1EPZ3dD" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"engine_make_id":1}'
const url = new URL(
    "https://api-labortimes.com/api/v1/engine_model"
);

let params = {
    "engine_make_id": "19",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "16",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "eh468ca6agVk5vfb1EPZ3dD",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "engine_make_id": 1
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 1,
            "engine_make_id": 1,
            "name": "Series 60"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/engine_model?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/engine_model?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/engine_model?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/engine_model",
        "per_page": 500,
        "to": 3,
        "total": 3
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/engine_model

Query Parameters

engine_make_id  integer optional  
Filter by 'id' of the engine make.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

engine_make_id  integer optional  

Industry

List

requires authentication

Retrieve all industries

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/industry?sort_by=name&sort_dir=desc&page=2&per_page=20" \
    -H "X-Authorization: 5E6e8Zkg1bcf4h6aDd3VPav" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://api-labortimes.com/api/v1/industry"
);

let params = {
    "sort_by": "name",
    "sort_dir": "desc",
    "page": "2",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "5E6e8Zkg1bcf4h6aDd3VPav",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 1,
            "name": "On Highway"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/industry?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/industry?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/industry?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/industry",
        "per_page": 500,
        "to": 1,
        "total": 1
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/industry

Query Parameters

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Major Component

List

requires authentication

Retrieve all major components

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/major_component?engine_model_id=14&sort_by=name&sort_dir=asc&page=10&per_page=20" \
    -H "X-Authorization: 6gv5abaZ436f18kcDEheVdP" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"engine_model_id":9}'
const url = new URL(
    "https://api-labortimes.com/api/v1/major_component"
);

let params = {
    "engine_model_id": "14",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "10",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "6gv5abaZ436f18kcDEheVdP",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "engine_model_id": 9
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 1,
            "engine_model_id": 1,
            "name": "Engine"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/major_component?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/major_component?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/major_component?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/major_component",
        "per_page": 500,
        "to": 2,
        "total": 2
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/major_component

Query Parameters

engine_model_id  integer optional  
Filter by 'id' of the engine model.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

engine_model_id  integer optional  

Procedure

List

requires authentication

Retrieve all procedures

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/procedure?major_component_id=8&system_id=8&component_id=8&variable_id=12&quantity_id=19&search=maiores&sort_by=name&sort_dir=asc&page=13&per_page=20" \
    -H "X-Authorization: VEec1d5aZPh6a4f6b38kDvg" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"component_id":20}'
const url = new URL(
    "https://api-labortimes.com/api/v1/procedure"
);

let params = {
    "major_component_id": "8",
    "system_id": "8",
    "component_id": "8",
    "variable_id": "12",
    "quantity_id": "19",
    "search": "maiores",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "13",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "VEec1d5aZPh6a4f6b38kDvg",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "component_id": 20
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 391,
            "system_id": 64,
            "component_id": 298,
            "variable_id": null,
            "quantity_id": 97,
            "name": "Adjust",
            "system_name": "Basic Engine System",
            "component_name": "Adjust Overhead",
            "variable_name": "",
            "quantity_name": "All",
            "low": 4.7,
            "average": 5,
            "high": 5.3,
            "notes": "<p>Includes labor time to remove and install valve cover. See add ons for additional labor operations.<\/p>"
        }
    ],
    "meta": {
        "count": 212,
        "current_page": 1,
        "from": 1,
        "last_page": 22,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/procedure?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/procedure?page=22",
                "label": 22,
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/procedure?page=2",
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/procedure",
        "per_page": 10,
        "to": 10,
        "total": 212
    },
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/procedure?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/procedure?page=22",
        "prev": null,
        "next": "https:\/\/api-labortimes.com\/api\/v1\/procedure?page=2"
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/procedure

Query Parameters

major_component_id  integer optional  
Filter by 'id' of the major component.

system_id  integer optional  
Filter by 'id' of the system.

component_id  integer optional  
Filter by 'id' of the component.

variable_id  integer optional  
Filter by 'id' of the variable.

quantity_id  integer optional  
Filter by 'id' of the quantity.

search  string optional  
Search in the procedure name.

sort_by  string optional  
Possible values: 'name', 'system_name', 'component_name', 'variable_name', 'quantity_name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 10, maximum 100.

Body Parameters

component_id  integer optional  

Retrieve

requires authentication

Retrieve the procedure

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/procedure/deleniti" \
    -H "X-Authorization: f8a653g4cPvhkbZde6D1aVE" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"component_id":5}'
const url = new URL(
    "https://api-labortimes.com/api/v1/procedure/deleniti"
);

let headers = {
    "X-Authorization": "f8a653g4cPvhkbZde6D1aVE",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "component_id": 5
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": {
        "id": 391,
        "system_id": 64,
        "component_id": 298,
        "variable_id": null,
        "quantity_id": 97,
        "name": "Adjust",
        "system_name": "Basic Engine System",
        "component_name": "Adjust Overhead",
        "variable_name": "",
        "quantity_name": "All",
        "low": 4.7,
        "average": 5,
        "high": 5.3,
        "notes": "<p>Includes labor time to remove and install valve cover. See add ons for additional labor operations.<\/p>"
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/procedure/{id}

URL Parameters

id  string optional  
The 'id' of the procedure.

Body Parameters

component_id  integer optional  

Quantity

List

requires authentication

Retrieve all quantities

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/quantity?component_id=11&sort_by=name&sort_dir=asc&page=18&per_page=20" \
    -H "X-Authorization: 63a846E1ahkD5eZdfgvbcPV" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"component_id":1}'
const url = new URL(
    "https://api-labortimes.com/api/v1/quantity"
);

let params = {
    "component_id": "11",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "18",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "63a846E1ahkD5eZdfgvbcPV",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "component_id": 1
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 98,
            "component_id": 308,
            "name": "All"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/quantity?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/quantity?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/quantity?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/quantity",
        "per_page": 500,
        "to": 48,
        "total": 48
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/quantity

Query Parameters

component_id  integer optional  
Filter by 'id' of the component.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

component_id  integer optional  

System

List

requires authentication

Retrieve all systems

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/system?major_component_id=13&sort_by=name&sort_dir=asc&page=16&per_page=20" \
    -H "X-Authorization: v5k6f6acgDbP8V31Zde4ahE" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"major_component_id":3}'
const url = new URL(
    "https://api-labortimes.com/api/v1/system"
);

let params = {
    "major_component_id": "13",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "16",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "v5k6f6acgDbP8V31Zde4ahE",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "major_component_id": 3
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 61,
            "major_component_id": 1,
            "name": "Aftertreatment"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/system?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/system?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/system?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/system",
        "per_page": 500,
        "to": 30,
        "total": 30
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/system

Query Parameters

major_component_id  integer optional  
Filter by 'id' of the major component.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

major_component_id  integer optional  

Variable

List

requires authentication

Retrieve all variables

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/variable?component_id=5&sort_by=name&sort_dir=asc&page=19&per_page=20" \
    -H "X-Authorization: V36bf6chd8DZ4ak5vEPa1ge" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"component_id":8}'
const url = new URL(
    "https://api-labortimes.com/api/v1/variable"
);

let params = {
    "component_id": "5",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "19",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "V36bf6chd8DZ4ak5vEPa1ge",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "component_id": 8
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 62,
            "component_id": 378,
            "name": "2-Cylinder"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/variable?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/variable?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/variable?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/variable",
        "per_page": 500,
        "to": 24,
        "total": 24
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/variable

Query Parameters

component_id  integer optional  
Filter by 'id' of the component.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

component_id  integer optional  

Vehicle Make

List

requires authentication

Retrieve all makes

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/make?industry_id=4&sort_by=name&sort_dir=asc&page=12&per_page=20" \
    -H "X-Authorization: E3a8gedV1DPk5b6vh4fZ6ac" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"industry_id":13}'
const url = new URL(
    "https://api-labortimes.com/api/v1/make"
);

let params = {
    "industry_id": "4",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "12",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "E3a8gedV1DPk5b6vh4fZ6ac",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "industry_id": 13
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 1,
            "industry_id": 1,
            "name": "Freightliner"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/make?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/make?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/make?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/make",
        "per_page": 500,
        "to": 1,
        "total": 1
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/make

Query Parameters

industry_id  integer optional  
Filter by 'id' of the industry.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

industry_id  integer optional  

Vehicle Model

List

requires authentication

Retrieve all vehicle models

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/model?make_id=8&sort_by=name&sort_dir=asc&page=3&per_page=20" \
    -H "X-Authorization: aD4bh5E6f3ZdagPVe6kc81v" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"make_id":17}'
const url = new URL(
    "https://api-labortimes.com/api/v1/model"
);

let params = {
    "make_id": "8",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "3",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "aD4bh5E6f3ZdagPVe6kc81v",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "make_id": 17
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 1,
            "make_id": 1,
            "name": "Columbia"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/model?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/model?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/model?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/model",
        "per_page": 500,
        "to": 1,
        "total": 1
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/model

Query Parameters

make_id  integer optional  
Filter by 'id' of the vehicle model.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

make_id  integer optional  

Year

List

requires authentication

Retrieve all years

Example request:

curl -X GET \
    -G "https://api-labortimes.com/api/v1/year?model_id=10&sort_by=name&sort_dir=asc&page=12&per_page=20" \
    -H "X-Authorization: dgfa1k86Za54Dev3bhcPEV6" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"model_id":10}'
const url = new URL(
    "https://api-labortimes.com/api/v1/year"
);

let params = {
    "model_id": "10",
    "sort_by": "name",
    "sort_dir": "asc",
    "page": "12",
    "per_page": "20",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "X-Authorization": "dgfa1k86Za54Dev3bhcPEV6",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "model_id": 10
}

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

{
    "data": [
        {
            "id": 1,
            "model_id": 1,
            "name": "2000"
        }
    ],
    "links": {
        "first": "https:\/\/api-labortimes.com\/api\/v1\/year?page=1",
        "last": "https:\/\/api-labortimes.com\/api\/v1\/year?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "https:\/\/api-labortimes.com\/api\/v1\/year?page=1",
                "label": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "https:\/\/api-labortimes.com\/api\/v1\/year",
        "per_page": 500,
        "to": 3,
        "total": 3
    }
}

Example response (401):

{
    "message": "Unauthenticated."
}

Request   

GET api/v1/year

Query Parameters

model_id  integer optional  
Filter by 'id' of the vehicle model.

sort_by  string optional  
Field to sort by. Defaults to 'name'. Possible values: 'name'.

sort_dir  string optional  
Sort direction. Defaults to 'asc'. Possible values: 'asc' or 'desc'.

page  integer optional  
Page of result to return. Defaults to 1.

per_page  integer optional  
How many rows to return per page. Defaults to 500, maximum 500.

Body Parameters

model_id  integer optional