MENU navbar-image

Introduction

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

Authenticating requests

To authenticate requests, include an Authorization header in the form "Basic {credentials}". The value of {credentials} should be your username/id and your password, joined with a colon (:), and then base64-encoded.

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Billing Locations

Retrieve main list of billing locations

requires authentication

Provide any of the following values for the customer_id field to identify and filter by customer: id, FEIN, vendor_number.

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/billing-locations?per_page=7&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"customer_id\": \"maxime\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/billing-locations"
);

const params = {
    "per_page": "7",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "customer_id": "maxime"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/billing-locations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '7',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
        'json' => [
            'customer_id' => 'maxime',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 997
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/billing-locations?customer_id=maxime&per_page=7&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "from": null,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/billing-locations?customer_id=maxime&per_page=7&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/billing-locations?customer_id=maxime&per_page=7&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/billing-locations",
            "per_page": 7,
            "prev_page_url": null,
            "to": null,
            "total": 0
        }
    ]
}
 

Request      

GET api/v1/billing-locations

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 7

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Body Parameters

customer_id   string  optional  

Example: maxime

Billing location creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/billing-locations" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"aqvtex\",
    \"contact_name\": \"John Smith\",
    \"contact_title\": \"Senior Sales Representative\",
    \"contact_phone\": \"202-555-0160\",
    \"address\": \"4306 Hott Street\",
    \"billing_account\": \"svdnjg\",
    \"customer_id\": \"123456789\",
    \"city\": \"Oklahoma City\",
    \"state\": \"Oklahoma\",
    \"zip_code\": \"12345\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/billing-locations"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "aqvtex",
    "contact_name": "John Smith",
    "contact_title": "Senior Sales Representative",
    "contact_phone": "202-555-0160",
    "address": "4306 Hott Street",
    "billing_account": "svdnjg",
    "customer_id": "123456789",
    "city": "Oklahoma City",
    "state": "Oklahoma",
    "zip_code": "12345"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/billing-locations';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'aqvtex',
            'contact_name' => 'John Smith',
            'contact_title' => 'Senior Sales Representative',
            'contact_phone' => '202-555-0160',
            'address' => '4306 Hott Street',
            'billing_account' => 'svdnjg',
            'customer_id' => '123456789',
            'city' => 'Oklahoma City',
            'state' => 'Oklahoma',
            'zip_code' => '12345',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/billing-locations

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 200 characters. Example: aqvtex

contact_name   string  optional  

Must not be greater than 150 characters. Example: John Smith

contact_title   string  optional  

Must not be greater than 100 characters. Example: Senior Sales Representative

contact_phone   string  optional  

Must not be greater than 50 characters. Example: 202-555-0160

address   string  optional  

Must not be greater than 250 characters. Example: 4306 Hott Street

billing_account   string  optional  

Must not be greater than 250 characters. Example: svdnjg

contact_emails   object  optional  
service_areas   object  optional  
service_types   object  optional  
customer_id   string   

The customer that the billing location will belong to. Provide any of the following values to identify the customer: id, FEIN, vendor_number. Example: 123456789

city   string   

Must match the regex /(^[A-Za-z ]+$)+/. Must not be greater than 100 characters. Example: Oklahoma City

state   string  optional  

Example: Oklahoma

zip_code   string  optional  

Must be 5 characters. Example: 12345

Billing location update

requires authentication

Active status changes will be ignored. Please use the archive and activate endpoints for that purpose.

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/billing-locations/sint" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"jbqhsklus\",
    \"contact_name\": \"John Smith\",
    \"contact_title\": \"Senior Sales Representative\",
    \"contact_phone\": \"202-555-0160\",
    \"address\": \"4306 Hott Street\",
    \"billing_account\": \"tzfqtfxckbncrhexfnklo\",
    \"city\": \"Oklahoma City\",
    \"state\": \"Oklahoma\",
    \"zip_code\": \"12345\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/billing-locations/sint"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "jbqhsklus",
    "contact_name": "John Smith",
    "contact_title": "Senior Sales Representative",
    "contact_phone": "202-555-0160",
    "address": "4306 Hott Street",
    "billing_account": "tzfqtfxckbncrhexfnklo",
    "city": "Oklahoma City",
    "state": "Oklahoma",
    "zip_code": "12345"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/billing-locations/sint';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'jbqhsklus',
            'contact_name' => 'John Smith',
            'contact_title' => 'Senior Sales Representative',
            'contact_phone' => '202-555-0160',
            'address' => '4306 Hott Street',
            'billing_account' => 'tzfqtfxckbncrhexfnklo',
            'city' => 'Oklahoma City',
            'state' => 'Oklahoma',
            'zip_code' => '12345',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/billing-locations/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the billing location to be updated: id, billing_account. Example: sint

Body Parameters

name   string  optional  

Must not be greater than 150 characters. Example: jbqhsklus

contact_name   string  optional  

Must not be greater than 150 characters. Example: John Smith

contact_title   string  optional  

Must not be greater than 100 characters. Example: Senior Sales Representative

contact_phone   string  optional  

Must not be greater than 50 characters. Example: 202-555-0160

address   string  optional  

Must not be greater than 250 characters. Example: 4306 Hott Street

billing_account   string  optional  

Must not be greater than 250 characters. Example: tzfqtfxckbncrhexfnklo

contact_emails   object  optional  
service_areas   object  optional  
service_types   object  optional  
city   string  optional  

Must match the regex /(^[A-Za-z ]+$)+/. Must not be greater than 100 characters. Example: Oklahoma City

state   string  optional  

Example: Oklahoma

zip_code   string  optional  

Must be 5 characters. Example: 12345

Billing location archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/billing-locations/rerum/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/billing-locations/rerum/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/billing-locations/rerum/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/billing-locations/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the billing location to be archived: id, billing_account. Example: rerum

Billing location activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/billing-locations/fuga/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/billing-locations/fuga/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/billing-locations/fuga/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/billing-locations/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the billing location to be (re)activated: id, billing_account. Example: fuga

Customers

Retrieve main list of customers

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/customers?per_page=14&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/customers"
);

const params = {
    "per_page": "14",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/customers';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '14',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 998
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/customers?per_page=14&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "from": null,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/customers?per_page=14&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/customers?per_page=14&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/customers",
            "per_page": 14,
            "prev_page_url": null,
            "to": null,
            "total": 0
        }
    ]
}
 

Request      

GET api/v1/customers

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 14

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Customer creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/customers" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"insurance_expiration_date\": \"11\\/13\\/2025\",
    \"msa_expiration_date\": \"11\\/13\\/2025\",
    \"vendor_number\": \"bruisqgkyzopb\",
    \"name\": \"brj\",
    \"fein\": \"123456789\",
    \"address\": \"4306 Hott Street\",
    \"city\": \"Oklahoma City\",
    \"zip_code\": \"12345\",
    \"contact_name\": \"John Smith\",
    \"contact_title\": \"Senior Sales Representative\",
    \"contact_phone\": \"202-555-0160\",
    \"contact_email\": \"nikolaus.elenor@example.com\",
    \"customer_type\": \"0\",
    \"credit_hold\": \"0\",
    \"state\": \"Oklahoma\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/customers"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "insurance_expiration_date": "11\/13\/2025",
    "msa_expiration_date": "11\/13\/2025",
    "vendor_number": "bruisqgkyzopb",
    "name": "brj",
    "fein": "123456789",
    "address": "4306 Hott Street",
    "city": "Oklahoma City",
    "zip_code": "12345",
    "contact_name": "John Smith",
    "contact_title": "Senior Sales Representative",
    "contact_phone": "202-555-0160",
    "contact_email": "nikolaus.elenor@example.com",
    "customer_type": "0",
    "credit_hold": "0",
    "state": "Oklahoma"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/customers';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'insurance_expiration_date' => '11/13/2025',
            'msa_expiration_date' => '11/13/2025',
            'vendor_number' => 'bruisqgkyzopb',
            'name' => 'brj',
            'fein' => '123456789',
            'address' => '4306 Hott Street',
            'city' => 'Oklahoma City',
            'zip_code' => '12345',
            'contact_name' => 'John Smith',
            'contact_title' => 'Senior Sales Representative',
            'contact_phone' => '202-555-0160',
            'contact_email' => 'nikolaus.elenor@example.com',
            'customer_type' => '0',
            'credit_hold' => '0',
            'state' => 'Oklahoma',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/customers

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

insurance_expiration_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

msa_expiration_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

vendor_number   string   

Must contain only letters and numbers. Must not be greater than 20 characters. Example: bruisqgkyzopb

name   string   

Must not be greater than 100 characters. Example: brj

fein   string   

Must not be greater than 20 characters. Example: 123456789

address   string   

Example: 4306 Hott Street

city   string   

Must match the regex /(^[A-Za-z ]+$)+/. Must not be greater than 100 characters. Example: Oklahoma City

zip_code   string   

Must be 5 characters. Example: 12345

contact_name   string  optional  

Must be at least 3 characters. Must not be greater than 40 characters. Example: John Smith

contact_title   string  optional  

Must match the regex /(^[A-Za-z0-9 ]+$)+/. Must be at least 3 characters. Must not be greater than 30 characters. Example: Senior Sales Representative

contact_phone   string  optional  

Example: 202-555-0160

contact_email   string  optional  

Must be a valid email address. Example: nikolaus.elenor@example.com

requirements   object  optional  
customer_type   string  optional  

The type of customer to be created, 0 being a Lease Location customer and 1 being a Physical Address customer. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
credit_hold   string  optional  

Determines if the customer is on credit hold. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
billing_account   string  optional  
service_area_id   string  optional  
state   string  optional  

Example: Oklahoma

Customer update

requires authentication

Active status changes will be ignored. Please use the archive and activate endpoints for that purpose.

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/customers/123456789" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"insurance_expiration_date\": \"11\\/13\\/2025\",
    \"msa_expiration_date\": \"11\\/13\\/2025\",
    \"vendor_number\": \"kzzlzlmtuzippnmk\",
    \"name\": \"ctxrldeez\",
    \"fein\": \"123456789\",
    \"address\": \"4306 Hott Street\",
    \"city\": \"Oklahoma City\",
    \"zip_code\": \"12345\",
    \"contact_name\": \"John Smith\",
    \"contact_title\": \"Senior Sales Representative\",
    \"contact_phone\": \"202-555-0160\",
    \"contact_email\": \"brown20@example.org\",
    \"customer_type\": \"0\",
    \"credit_hold\": \"0\",
    \"state\": \"Oklahoma\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/customers/123456789"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "insurance_expiration_date": "11\/13\/2025",
    "msa_expiration_date": "11\/13\/2025",
    "vendor_number": "kzzlzlmtuzippnmk",
    "name": "ctxrldeez",
    "fein": "123456789",
    "address": "4306 Hott Street",
    "city": "Oklahoma City",
    "zip_code": "12345",
    "contact_name": "John Smith",
    "contact_title": "Senior Sales Representative",
    "contact_phone": "202-555-0160",
    "contact_email": "brown20@example.org",
    "customer_type": "0",
    "credit_hold": "0",
    "state": "Oklahoma"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/customers/123456789';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'insurance_expiration_date' => '11/13/2025',
            'msa_expiration_date' => '11/13/2025',
            'vendor_number' => 'kzzlzlmtuzippnmk',
            'name' => 'ctxrldeez',
            'fein' => '123456789',
            'address' => '4306 Hott Street',
            'city' => 'Oklahoma City',
            'zip_code' => '12345',
            'contact_name' => 'John Smith',
            'contact_title' => 'Senior Sales Representative',
            'contact_phone' => '202-555-0160',
            'contact_email' => 'brown20@example.org',
            'customer_type' => '0',
            'credit_hold' => '0',
            'state' => 'Oklahoma',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/customers/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the customer to be updated: id, FEIN, vendor_number. Example: 123456789

Body Parameters

insurance_expiration_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

msa_expiration_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

vendor_number   string   

Must contain only letters and numbers. Must not be greater than 20 characters. Example: kzzlzlmtuzippnmk

name   string   

Must not be greater than 100 characters. Example: ctxrldeez

fein   string   

Must not be greater than 20 characters. Example: 123456789

address   string   

Example: 4306 Hott Street

city   string   

Must match the regex /(^[A-Za-z ]+$)+/. Must not be greater than 100 characters. Example: Oklahoma City

zip_code   string   

Must be 5 characters. Example: 12345

contact_name   string  optional  

Must be at least 3 characters. Must not be greater than 40 characters. Example: John Smith

contact_title   string  optional  

Must match the regex /(^[A-Za-z0-9 ]+$)+/. Must be at least 3 characters. Must not be greater than 30 characters. Example: Senior Sales Representative

contact_phone   string  optional  

Example: 202-555-0160

contact_email   string  optional  

Must be a valid email address. Example: brown20@example.org

requirements   object  optional  
customer_type   string  optional  

The type of customer to be created, 0 being a Lease Location customer and 1 being a Physical Address customer. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
credit_hold   string  optional  

Determines if the customer is on credit hold. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
billing_account   string  optional  
service_area_id   string  optional  
state   string  optional  

Example: Oklahoma

Customer archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/customers/123456789/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/customers/123456789/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/customers/123456789/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/customers/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the customer to be archived: id, FEIN, vendor_number. Example: 123456789

Customer activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/customers/123456789/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/customers/123456789/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/customers/123456789/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/customers/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the customer to be (re)activated: id, FEIN, vendor_number. Example: 123456789

Endpoints

POST api/v1/submit-errors

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/submit-errors" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/submit-errors"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/submit-errors';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/submit-errors

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Jobs

Job custom fields

requires authentication

Type determines the value the field accepts: 0 means it can store any value, 1 means it will only accept a boolean (either true or false).

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/jobs/custom-fields" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/jobs/custom-fields"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/jobs/custom-fields';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 996
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "id": 10,
            "name": "Customer List Job Name",
            "min": null,
            "max": null,
            "required": 0,
            "numeric": 0,
            "date": 0,
            "type": 0
        },
        {
            "id": 4,
            "name": "Location Pin",
            "min": null,
            "max": null,
            "required": 0,
            "numeric": 0,
            "date": 0,
            "type": 0
        },
        {
            "id": 7,
            "name": "Purchase Order",
            "min": null,
            "max": null,
            "required": 0,
            "numeric": 0,
            "date": 0,
            "type": 0
        },
        {
            "id": 6,
            "name": "SAP Ship To Account",
            "min": null,
            "max": null,
            "required": 0,
            "numeric": 0,
            "date": 0,
            "type": 0
        }
    ]
}
 

Request      

GET api/v1/jobs/custom-fields

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Retrieve main list of jobs

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/jobs?per_page=10&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/jobs"
);

const params = {
    "per_page": "10",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/jobs';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '10',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 995
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [
                {
                    "id": 5516,
                    "job_state": "Production",
                    "spud_date": null,
                    "google_sheet_raw": null,
                    "operator": null,
                    "lease_name": "Unit 2040 Cascade",
                    "well_number": "Pad 2",
                    "api": null,
                    "cost_estimate": null,
                    "start_date": null,
                    "end_date": null,
                    "estimate_end_date": "12/31/2022",
                    "estimate_start_date": "12/16/2022",
                    "latitude": null,
                    "longitude": null,
                    "welldepth": null,
                    "note": null,
                    "internal_note": null,
                    "external_note": null,
                    "driving_direction": null,
                    "status": 0,
                    "service_area_id": 85,
                    "location_id": 757,
                    "created_at": "2022-12-16T20:29:34.000000Z",
                    "updated_at": "2023-01-16T15:02:04.000000Z",
                    "correlative_prefix": null,
                    "zero_quantity": 0,
                    "correlative": 4801,
                    "type": 0,
                    "is_managed": false,
                    "is_offline": false,
                    "drilling_contractor": null,
                    "rig_number": null,
                    "legal_description": null,
                    "tank_id": null,
                    "customer_id": 108,
                    "inputs": {
                        "4": {
                            "Location Pin": null
                        },
                        "6": {
                            "SAP Ship To Account #": null
                        },
                        "7": {
                            "Purchase Order": null
                        }
                    },
                    "billing_location_id": 12,
                    "customer_type": 0,
                    "name": null,
                    "address": null,
                    "user_id": 142,
                    "external_id": null,
                    "computed_name": "Unit 2040 Cascade Pad 2",
                    "computed_formatted_correlative": "4801",
                    "location": {
                        "id": 757,
                        "city": "Kingfisher",
                        "zip_code": "73750",
                        "state_id": 37,
                        "county_id": 2163,
                        "state": {
                            "id": 37,
                            "name": "Oklahoma",
                            "code": "OK"
                        },
                        "county": {
                            "id": 2163,
                            "name": "Kingfisher",
                            "state_id": 37
                        }
                    }
                },
                {
                    "id": 2425,
                    "job_state": null,
                    "spud_date": null,
                    "google_sheet_raw": null,
                    "operator": null,
                    "lease_name": "MCR #CT-10637 CTB2 Carrizo Springs TX 78834",
                    "well_number": "USA",
                    "api": null,
                    "cost_estimate": null,
                    "start_date": null,
                    "end_date": null,
                    "estimate_end_date": "09/21/2025",
                    "estimate_start_date": "09/21/2022",
                    "latitude": null,
                    "longitude": null,
                    "welldepth": null,
                    "note": null,
                    "internal_note": null,
                    "external_note": null,
                    "driving_direction": null,
                    "status": 0,
                    "service_area_id": 88,
                    "location_id": 551,
                    "created_at": "2022-10-03T22:43:34.000000Z",
                    "updated_at": "2023-01-16T20:26:34.000000Z",
                    "correlative_prefix": null,
                    "zero_quantity": 0,
                    "correlative": 1724,
                    "type": 0,
                    "is_managed": true,
                    "is_offline": false,
                    "drilling_contractor": null,
                    "rig_number": null,
                    "legal_description": null,
                    "tank_id": null,
                    "customer_id": 162,
                    "inputs": [],
                    "billing_location_id": 66,
                    "customer_type": 0,
                    "name": null,
                    "address": null,
                    "user_id": null,
                    "external_id": null,
                    "computed_name": "MCR #CT-10637 CTB2 Carrizo Springs TX 78834 USA",
                    "computed_formatted_correlative": "1724",
                    "location": {
                        "id": 551,
                        "city": null,
                        "zip_code": null,
                        "state_id": 44,
                        "county_id": 2582,
                        "state": {
                            "id": 44,
                            "name": "Texas",
                            "code": "TX"
                        },
                        "county": {
                            "id": 2582,
                            "name": "Dimmit",
                            "state_id": 44
                        }
                    }
                }
            ],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/jobs?per_page=10&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "from": 1,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/jobs?per_page=10&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/jobs?per_page=10&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/jobs",
            "per_page": 10,
            "prev_page_url": null,
            "to": 2,
            "total": 2
        }
    ]
}
 

Request      

GET api/v1/jobs

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 10

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Retrieve a specific job

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/jobs/5115" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/jobs/5115"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/jobs/5115';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 994
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "id": 5115,
            "job_state": "Production",
            "spud_date": null,
            "google_sheet_raw": null,
            "operator": null,
            "lease_name": "Unit 2116 Wolf CS",
            "well_number": "#3",
            "api": null,
            "cost_estimate": null,
            "start_date": null,
            "end_date": null,
            "estimate_end_date": "10/29/2022",
            "estimate_start_date": "10/12/2022",
            "latitude": 32,
            "longitude": -101,
            "welldepth": null,
            "note": null,
            "internal_note": null,
            "external_note": null,
            "driving_direction": null,
            "status": 0,
            "service_area_id": 82,
            "location_id": 612,
            "created_at": "2022-10-12T16:29:57.000000Z",
            "updated_at": "2023-05-03T09:42:05.000000Z",
            "correlative_prefix": null,
            "zero_quantity": 0,
            "correlative": 4409,
            "type": 0,
            "is_managed": false,
            "is_offline": false,
            "drilling_contractor": null,
            "rig_number": null,
            "legal_description": null,
            "tank_id": null,
            "customer_id": 108,
            "inputs": {
                "4": null,
                "6": {
                    "SAP Ship To Account #": "117363"
                },
                "7": null
            },
            "billing_location_id": 12,
            "customer_type": 0,
            "name": null,
            "address": null,
            "user_id": null,
            "external_id": null,
            "computed_name": "Unit 2116 Wolf CS #3",
            "computed_formatted_correlative": "4409",
            "location": {
                "id": 612,
                "city": null,
                "zip_code": null,
                "state_id": 44,
                "county_id": 2632,
                "state": {
                    "id": 44,
                    "name": "Texas",
                    "code": "TX"
                },
                "county": {
                    "id": 2632,
                    "name": "Howard",
                    "state_id": 44
                }
            }
        }
    ]
}
 

Request      

GET api/v1/jobs/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   integer   

Example: 5115

Job creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/jobs" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"customer_type\": \"0\",
    \"lease_name\": \"hmbklio\",
    \"api\": \"jzcckbwvbkwapibmgtf\",
    \"cost_estimate\": 0.822845,
    \"zip_code\": \"12345\",
    \"well_numbers\": [
        \"32H\",
        \"B4-4\"
    ],
    \"welldepth\": \"25430\",
    \"field_emails\": \"nihil\",
    \"internal_note\": \"rytlrcm\",
    \"external_note\": \"jnm\",
    \"driving_direction\": \"niutjjxoaludbrrzxe\",
    \"estimate_start_date\": \"11\\/13\\/2025\",
    \"estimate_end_date\": \"11\\/13\\/2025\",
    \"start_date\": \"11\\/13\\/2025\",
    \"end_date\": \"11\\/13\\/2025\",
    \"legal_description\": \"wavwcgonpiswjaxdhsr\",
    \"is_managed\": \"0\",
    \"address\": \"4306 Hott Street\",
    \"service_area_id\": 5,
    \"city\": \"Oklahoma City\",
    \"state\": \"Oklahoma\",
    \"county\": \"Oklahoma\",
    \"customer_id\": \"123456789\",
    \"billing_location_id\": \"sed\",
    \"external_id\": \"zumvhiyeieta\",
    \"custom_fields\": {
        \"1\": \"Custom field value\"
    }
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/jobs"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "customer_type": "0",
    "lease_name": "hmbklio",
    "api": "jzcckbwvbkwapibmgtf",
    "cost_estimate": 0.822845,
    "zip_code": "12345",
    "well_numbers": [
        "32H",
        "B4-4"
    ],
    "welldepth": "25430",
    "field_emails": "nihil",
    "internal_note": "rytlrcm",
    "external_note": "jnm",
    "driving_direction": "niutjjxoaludbrrzxe",
    "estimate_start_date": "11\/13\/2025",
    "estimate_end_date": "11\/13\/2025",
    "start_date": "11\/13\/2025",
    "end_date": "11\/13\/2025",
    "legal_description": "wavwcgonpiswjaxdhsr",
    "is_managed": "0",
    "address": "4306 Hott Street",
    "service_area_id": 5,
    "city": "Oklahoma City",
    "state": "Oklahoma",
    "county": "Oklahoma",
    "customer_id": "123456789",
    "billing_location_id": "sed",
    "external_id": "zumvhiyeieta",
    "custom_fields": {
        "1": "Custom field value"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/jobs';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'customer_type' => '0',
            'lease_name' => 'hmbklio',
            'api' => 'jzcckbwvbkwapibmgtf',
            'cost_estimate' => 0.822845,
            'zip_code' => '12345',
            'well_numbers' => [
                '32H',
                'B4-4',
            ],
            'welldepth' => '25430',
            'field_emails' => 'nihil',
            'internal_note' => 'rytlrcm',
            'external_note' => 'jnm',
            'driving_direction' => 'niutjjxoaludbrrzxe',
            'estimate_start_date' => '11/13/2025',
            'estimate_end_date' => '11/13/2025',
            'start_date' => '11/13/2025',
            'end_date' => '11/13/2025',
            'legal_description' => 'wavwcgonpiswjaxdhsr',
            'is_managed' => '0',
            'address' => '4306 Hott Street',
            'service_area_id' => 5,
            'city' => 'Oklahoma City',
            'state' => 'Oklahoma',
            'county' => 'Oklahoma',
            'customer_id' => '123456789',
            'billing_location_id' => 'sed',
            'external_id' => 'zumvhiyeieta',
            'custom_fields' => [
                1 => 'Custom field value',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/jobs

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

customer_type   string  optional  

The type of customer to be created, 0 being a Lease Location customer and 1 being a Physical Address customer. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
lease_name   string  optional  

This field is required when customer_type is 0. Must be at least 0 characters. Must not be greater than 200 characters. Example: hmbklio

api   string  optional  

Must not be greater than 20 characters. Example: jzcckbwvbkwapibmgtf

cost_estimate   number  optional  

Example: 0.822845

zip_code   string  optional  

This field is required when customer_type is 1. Must be 5 characters. Example: 12345

well_numbers   object  optional  

The well numbers for the job. A different job will be created for each well number provided. Each well number must not exceed 100 characters. If updating, only the first value will be considered.

welldepth   string  optional  

Must be between 0 and 7 digits. Example: 25430

field_emails   string  optional  

Example: nihil

internal_note   string  optional  

Must be at least 0 characters. Must not be greater than 500 characters. Example: rytlrcm

external_note   string  optional  

Must be at least 0 characters. Must not be greater than 500 characters. Example: jnm

driving_direction   string  optional  

Must be at least 0 characters. Must not be greater than 1500 characters. Example: niutjjxoaludbrrzxe

estimate_start_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

estimate_end_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

start_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

end_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

legal_description   string  optional  

Must not be greater than 255 characters. Example: wavwcgonpiswjaxdhsr

is_managed   string  optional  

Determines if the job is managed or not. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
tank_id   string  optional  

This field is required when is_managed is 1.

address   string  optional  

This field is required when customer_type is 1. Example: 4306 Hott Street

service_area_id   integer  optional  

Example: 5

city   string  optional  

This field is required when customer_type is 1. Must match the regex /(^[A-Za-z ]+$)+/. Example: Oklahoma City

state   string  optional  

Example: Oklahoma

county   string  optional  

Example: Oklahoma

customer_id   string   

The customer that the job will belong to. Provide any of the following values to identify the customer: id, FEIN, vendor_number. Example: 123456789

billing_location_id   string   

The billing location that the job will belong to. Provide any of the following values to identify the billing location to be updated: id, billing_account. Example: sed

external_id   string  optional  

Must not be greater than 200 characters. Example: zumvhiyeieta

custom_fields   object  optional  

Custom fields that may or may not be required for job creation and edition. See /jobs/custom-fields endpoint to retrieve a list of available custom fields. Format is id => value.

Job update

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/jobs/officia" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"customer_type\": \"0\",
    \"lease_name\": \"fnhaebgtovgakzlvpbab\",
    \"api\": \"hofsvmlzovvrvxwo\",
    \"cost_estimate\": 57,
    \"zip_code\": \"12345\",
    \"well_numbers\": [
        \"32H\",
        \"B4-4\"
    ],
    \"welldepth\": \"0\",
    \"field_emails\": \"laborum\",
    \"internal_note\": \"exf\",
    \"external_note\": \"wpnoewenebonnplmrqnrzppl\",
    \"driving_direction\": \"oyimg\",
    \"estimate_start_date\": \"11\\/13\\/2025\",
    \"estimate_end_date\": \"11\\/13\\/2025\",
    \"start_date\": \"11\\/13\\/2025\",
    \"end_date\": \"11\\/13\\/2025\",
    \"legal_description\": \"fjvzkrlheomo\",
    \"is_managed\": \"0\",
    \"address\": \"4306 Hott Street\",
    \"service_area_id\": 9,
    \"city\": \"Oklahoma City\",
    \"state\": \"Oklahoma\",
    \"county\": \"Oklahoma\",
    \"customer_id\": 123456789
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/jobs/officia"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "customer_type": "0",
    "lease_name": "fnhaebgtovgakzlvpbab",
    "api": "hofsvmlzovvrvxwo",
    "cost_estimate": 57,
    "zip_code": "12345",
    "well_numbers": [
        "32H",
        "B4-4"
    ],
    "welldepth": "0",
    "field_emails": "laborum",
    "internal_note": "exf",
    "external_note": "wpnoewenebonnplmrqnrzppl",
    "driving_direction": "oyimg",
    "estimate_start_date": "11\/13\/2025",
    "estimate_end_date": "11\/13\/2025",
    "start_date": "11\/13\/2025",
    "end_date": "11\/13\/2025",
    "legal_description": "fjvzkrlheomo",
    "is_managed": "0",
    "address": "4306 Hott Street",
    "service_area_id": 9,
    "city": "Oklahoma City",
    "state": "Oklahoma",
    "county": "Oklahoma",
    "customer_id": 123456789
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/jobs/officia';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'customer_type' => '0',
            'lease_name' => 'fnhaebgtovgakzlvpbab',
            'api' => 'hofsvmlzovvrvxwo',
            'cost_estimate' => 57.0,
            'zip_code' => '12345',
            'well_numbers' => [
                '32H',
                'B4-4',
            ],
            'welldepth' => '0',
            'field_emails' => 'laborum',
            'internal_note' => 'exf',
            'external_note' => 'wpnoewenebonnplmrqnrzppl',
            'driving_direction' => 'oyimg',
            'estimate_start_date' => '11/13/2025',
            'estimate_end_date' => '11/13/2025',
            'start_date' => '11/13/2025',
            'end_date' => '11/13/2025',
            'legal_description' => 'fjvzkrlheomo',
            'is_managed' => '0',
            'address' => '4306 Hott Street',
            'service_area_id' => 9,
            'city' => 'Oklahoma City',
            'state' => 'Oklahoma',
            'county' => 'Oklahoma',
            'customer_id' => 123456789,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/jobs/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the job to be updated: correlative. Example: officia

Body Parameters

customer_type   string  optional  

The type of customer to be created, 0 being a Lease Location customer and 1 being a Physical Address customer. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
lease_name   string  optional  

This field is required when customer_type is 0. Must be at least 0 characters. Must not be greater than 200 characters. Example: fnhaebgtovgakzlvpbab

api   string  optional  

Must not be greater than 20 characters. Example: hofsvmlzovvrvxwo

cost_estimate   number  optional  

Example: 57

zip_code   string  optional  

This field is required when customer_type is 1. Must be 5 characters. Example: 12345

well_numbers   object  optional  

The well numbers for the job. A different job will be created for each well number provided. Each well number must not exceed 100 characters. If updating, only the first value will be considered. This field is required when customer_type is 0.

welldepth   string  optional  

Must be between 0 and 7 digits. Example: 0

field_emails   string  optional  

Example: laborum

internal_note   string  optional  

Must be at least 0 characters. Must not be greater than 500 characters. Example: exf

external_note   string  optional  

Must be at least 0 characters. Must not be greater than 500 characters. Example: wpnoewenebonnplmrqnrzppl

driving_direction   string  optional  

Must be at least 0 characters. Must not be greater than 1500 characters. Example: oyimg

estimate_start_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

estimate_end_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

start_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

end_date   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

legal_description   string  optional  

Must not be greater than 255 characters. Example: fjvzkrlheomo

is_managed   string  optional  

Determines if the job is managed or not. Defaults to 0. Example: 0

Must be one of:
  • 0
  • 1
tank_id   string  optional  

This field is required when is_managed is 1.

address   string  optional  

This field is required when customer_type is 1. Must be at least 6 characters. Example: 4306 Hott Street

service_area_id   integer  optional  

Example: 9

city   string  optional  

This field is required when customer_type is 1. Must match the regex /(^[A-Za-z ]+$)+/. Must be at least 3 characters. Example: Oklahoma City

state   string  optional  

Example: Oklahoma

county   string  optional  

Example: Oklahoma

customer_id   integer  optional  

The customer that the job will belong to. Provide any of the following values to identify the customer: id, FEIN, vendor_number. Example: 123456789

Job archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/jobs/magnam/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/jobs/magnam/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/jobs/magnam/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/jobs/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the job to be archived: correlative. Example: magnam

Job activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/jobs/nesciunt/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/jobs/nesciunt/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/jobs/nesciunt/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/jobs/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the job to be (re)activated: correlative. Example: nesciunt

Material Groups

Retrieve main list of material groups

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/material-groups?per_page=11&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/material-groups"
);

const params = {
    "per_page": "11",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/material-groups';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '11',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 990
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/material-groups?per_page=11&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "from": null,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/material-groups?per_page=11&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/material-groups?per_page=11&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/material-groups",
            "per_page": 11,
            "prev_page_url": null,
            "to": null,
            "total": 0
        }
    ]
}
 

Request      

GET api/v1/material-groups

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 11

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Retrieve a specific material group

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/material-groups/amet" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/material-groups/amet"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/material-groups/amet';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 989
access-control-allow-origin: *
 

{
    "success": false,
    "message": "Material group not found"
}
 

Request      

GET api/v1/material-groups/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material group: id, external_id. Example: amet

Material group creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/material-groups" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"cljmnsjgnpqty\",
    \"description\": \"A facere enim voluptate explicabo facilis voluptatem.\",
    \"external_id\": \"whcwgdz\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/material-groups"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "cljmnsjgnpqty",
    "description": "A facere enim voluptate explicabo facilis voluptatem.",
    "external_id": "whcwgdz"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/material-groups';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'cljmnsjgnpqty',
            'description' => 'A facere enim voluptate explicabo facilis voluptatem.',
            'external_id' => 'whcwgdz',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/material-groups

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 50 characters. Example: cljmnsjgnpqty

description   string   

Must not be greater than 100 characters. Example: A facere enim voluptate explicabo facilis voluptatem.

external_id   string  optional  

Must not be greater than 200 characters. Example: whcwgdz

Material group update

requires authentication

Active status changes will be ignored. Please use the archive and activate endpoints for that purpose.

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/material-groups/occaecati" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"nllbzujmiywnqegbwzr\",
    \"description\": \"Possimus itaque suscipit molestiae qui quia et rerum.\",
    \"external_id\": \"vnienvc\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/material-groups/occaecati"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "nllbzujmiywnqegbwzr",
    "description": "Possimus itaque suscipit molestiae qui quia et rerum.",
    "external_id": "vnienvc"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/material-groups/occaecati';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'nllbzujmiywnqegbwzr',
            'description' => 'Possimus itaque suscipit molestiae qui quia et rerum.',
            'external_id' => 'vnienvc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/material-groups/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material group to be updated: id, external_id. Example: occaecati

Body Parameters

name   string   

Must not be greater than 50 characters. Example: nllbzujmiywnqegbwzr

description   string   

Must not be greater than 100 characters. Example: Possimus itaque suscipit molestiae qui quia et rerum.

external_id   string  optional  

Must not be greater than 200 characters. Example: vnienvc

Material group archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/material-groups/corporis/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/material-groups/corporis/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/material-groups/corporis/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/material-groups/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material group to be archived: id, external_id. Example: corporis

Material group activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/material-groups/et/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/material-groups/et/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/material-groups/et/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/material-groups/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material group to be (re)activated: id, external_id. Example: et

Materials

Retrieve main list of materials

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/materials?per_page=14&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/materials"
);

const params = {
    "per_page": "14",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/materials';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '14',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 988
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/materials?per_page=14&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "from": null,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/materials?per_page=14&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/materials?per_page=14&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/materials",
            "per_page": 14,
            "prev_page_url": null,
            "to": null,
            "total": 0
        }
    ]
}
 

Request      

GET api/v1/materials

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 14

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Retrieve a specific material

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/materials/consequuntur" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/materials/consequuntur"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/materials/consequuntur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 987
access-control-allow-origin: *
 

{
    "success": false,
    "message": "Material not found"
}
 

Request      

GET api/v1/materials/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material: id, number. Example: consequuntur

Material creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/materials" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"yrqdjvhqtompxoann\",
    \"description\": \"Iste enim dolores voluptatibus.\",
    \"number\": \"xykdieywj\",
    \"measurement_unit_id\": \"velit\",
    \"material_group_id\": \"ipsa\",
    \"manufacturer\": \"fbnsxe\",
    \"external_id\": \"zhyfwmpdgkygia\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/materials"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "yrqdjvhqtompxoann",
    "description": "Iste enim dolores voluptatibus.",
    "number": "xykdieywj",
    "measurement_unit_id": "velit",
    "material_group_id": "ipsa",
    "manufacturer": "fbnsxe",
    "external_id": "zhyfwmpdgkygia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/materials';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'yrqdjvhqtompxoann',
            'description' => 'Iste enim dolores voluptatibus.',
            'number' => 'xykdieywj',
            'measurement_unit_id' => 'velit',
            'material_group_id' => 'ipsa',
            'manufacturer' => 'fbnsxe',
            'external_id' => 'zhyfwmpdgkygia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/materials

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 100 characters. Example: yrqdjvhqtompxoann

description   string   

Must not be greater than 250 characters. Example: Iste enim dolores voluptatibus.

number   string   

Must not be greater than 100 characters. Example: xykdieywj

measurement_unit_id   string   

Example: velit

service_types   object  optional  
material_group_id   string   

The material group that the material will belong to. Provide any of the following values to identify the material group: id, external_id. Example: ipsa

manufacturer   string  optional  

Must not be greater than 100 characters. Example: fbnsxe

external_id   string  optional  

Must not be greater than 200 characters. Example: zhyfwmpdgkygia

Material update

requires authentication

Active status changes will be ignored. Please use the archive and activate endpoints for that purpose.

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/materials/reprehenderit" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"vmf\",
    \"description\": \"Voluptatem et rerum quasi qui id et quia.\",
    \"number\": \"ndbgbacf\",
    \"measurement_unit_id\": \"cupiditate\",
    \"material_group_id\": \"dolor\",
    \"manufacturer\": \"aljfaqpcydgt\",
    \"external_id\": \"knjsqqjtdmitjthscybur\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/materials/reprehenderit"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "vmf",
    "description": "Voluptatem et rerum quasi qui id et quia.",
    "number": "ndbgbacf",
    "measurement_unit_id": "cupiditate",
    "material_group_id": "dolor",
    "manufacturer": "aljfaqpcydgt",
    "external_id": "knjsqqjtdmitjthscybur"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/materials/reprehenderit';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'vmf',
            'description' => 'Voluptatem et rerum quasi qui id et quia.',
            'number' => 'ndbgbacf',
            'measurement_unit_id' => 'cupiditate',
            'material_group_id' => 'dolor',
            'manufacturer' => 'aljfaqpcydgt',
            'external_id' => 'knjsqqjtdmitjthscybur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/materials/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material to be updated: id, number. Example: reprehenderit

Body Parameters

name   string   

Must not be greater than 100 characters. Example: vmf

description   string   

Must not be greater than 250 characters. Example: Voluptatem et rerum quasi qui id et quia.

number   string   

Must not be greater than 100 characters. Example: ndbgbacf

measurement_unit_id   string   

Example: cupiditate

service_types   object  optional  
material_group_id   string   

The material group that the material will belong to. Provide any of the following values to identify the material group: id, external_id. Example: dolor

manufacturer   string  optional  

Must not be greater than 100 characters. Example: aljfaqpcydgt

external_id   string  optional  

Must not be greater than 200 characters. Example: knjsqqjtdmitjthscybur

Material archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/materials/non/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/materials/non/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/materials/non/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/materials/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material to be archived: id, number. Example: non

Material activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/materials/libero/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/materials/libero/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/materials/libero/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/materials/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the material to be (re)activated: id, number. Example: libero

Miscellaneous

Authentication test

requires authentication

This is a temporary endpoint to verify authentication.

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/test" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/test"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/test';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 999
access-control-allow-origin: *
 

{
    "success": true,
    "message": "Authenticated",
    "body": []
}
 

Request      

GET api/v1/test

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Orders

Retrieve main list of orders

requires authentication

Provide the following values for the job_id field to identify and filter by job: id.

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/orders?per_page=16&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"job_id\": \"iste\",
    \"active_status\": \"1\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/orders"
);

const params = {
    "per_page": "16",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "job_id": "iste",
    "active_status": "1"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/orders';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '16',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
        'json' => [
            'job_id' => 'iste',
            'active_status' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 993
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/orders?page=1",
            "from": null,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/orders?page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/orders?page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/orders",
            "per_page": 16,
            "prev_page_url": null,
            "to": null,
            "total": 0
        }
    ]
}
 

Request      

GET api/v1/orders

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 16

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Body Parameters

job_id   string  optional  

Example: iste

active_status   string  optional  

The active status of the order. 0 will return only archived orders, 1 only active ones. If this filter is not provided. Example: 1

Must be one of:
  • 0
  • 1

Retrieve a specific order

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/orders/vel" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/orders/vel"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/orders/vel';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 992
access-control-allow-origin: *
 

{
    "success": false,
    "message": "Order not found"
}
 

Request      

GET api/v1/orders/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the order: id, external_id. Example: vel

GET api/v1/orders/{identifier}/pdf

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/orders/1/pdf" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/orders/1/pdf"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/orders/1/pdf';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 991
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request      

GET api/v1/orders/{identifier}/pdf

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   integer   

Example: 1

Order creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/orders" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"job_id\": \"1\",
    \"date_requested\": \"11\\/13\\/2025\",
    \"start_time\": \"11:00\",
    \"end_time\": \"13:00\",
    \"internal_note\": \"orhxsfpfhn\",
    \"external_note\": \"qbrmp\",
    \"job_driving_directions\": \"wp\",
    \"service_type_id\": 14,
    \"external_id\": \"txtsbmviyqktqfwbtkkeo\",
    \"external_doc_type\": \"repudiandae\",
    \"external_delivery_id\": \"ut\",
    \"materials\": [
        {
            \"material_id\": 1,
            \"quantity_requested\": 15,
            \"tax_percent\": 4.35,
            \"tax_amount\": 4.35,
            \"subtotal\": 104.35,
            \"is_extraction\": true,
            \"taxes\": [
                {
                    \"code\": \"TX\",
                    \"rate\": 6.25,
                    \"amount\": 4.5
                }
            ]
        }
    ],
    \"is_extraction\": false
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/orders"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "job_id": "1",
    "date_requested": "11\/13\/2025",
    "start_time": "11:00",
    "end_time": "13:00",
    "internal_note": "orhxsfpfhn",
    "external_note": "qbrmp",
    "job_driving_directions": "wp",
    "service_type_id": 14,
    "external_id": "txtsbmviyqktqfwbtkkeo",
    "external_doc_type": "repudiandae",
    "external_delivery_id": "ut",
    "materials": [
        {
            "material_id": 1,
            "quantity_requested": 15,
            "tax_percent": 4.35,
            "tax_amount": 4.35,
            "subtotal": 104.35,
            "is_extraction": true,
            "taxes": [
                {
                    "code": "TX",
                    "rate": 6.25,
                    "amount": 4.5
                }
            ]
        }
    ],
    "is_extraction": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/orders';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'job_id' => '1',
            'date_requested' => '11/13/2025',
            'start_time' => '11:00',
            'end_time' => '13:00',
            'internal_note' => 'orhxsfpfhn',
            'external_note' => 'qbrmp',
            'job_driving_directions' => 'wp',
            'service_type_id' => 14,
            'external_id' => 'txtsbmviyqktqfwbtkkeo',
            'external_doc_type' => 'repudiandae',
            'external_delivery_id' => 'ut',
            'materials' => [
                [
                    'material_id' => 1,
                    'quantity_requested' => 15,
                    'tax_percent' => 4.35,
                    'tax_amount' => 4.35,
                    'subtotal' => 104.35,
                    'is_extraction' => true,
                    'taxes' => [
                        [
                            'code' => 'TX',
                            'rate' => 6.25,
                            'amount' => 4.5,
                        ],
                    ],
                ],
            ],
            'is_extraction' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/orders

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

job_id   string   

The job that the order will belong to. Provide the following value to identify the job: id, correlative. Example: 1

date_requested   string   

Must be a valid date in the format m/d/Y. Example: 11/13/2025

start_time   string  optional  

Must be a valid date in the format H:i. Example: 11:00

end_time   string  optional  

Must be a valid date in the format H:i. Example: 13:00

internal_note   string  optional  

Must be at least 6 characters. Must not be greater than 500 characters. Example: orhxsfpfhn

external_note   string  optional  

Must be at least 6 characters. Must not be greater than 500 characters. Example: qbrmp

job_driving_directions   string  optional  

Must be at least 6 characters. Must not be greater than 1500 characters. Example: wp

service_type_id   integer  optional  

Example: 14

external_id   string  optional  

Must not be greater than 200 characters. Example: txtsbmviyqktqfwbtkkeo

external_invoice_id   string  optional  
external_doc_type   string  optional  

Example: repudiandae

external_delivery_id   string  optional  

Example: ut

materials   object[]   
material_id   integer   

Identifier of one of the material. Provide any of the following values as an identifier: id, number. Example: 1

external_id   string  optional  
quantity_requested   integer   

Example: 15

tax_percent   number  optional  

Must be at least 0. Example: 4.35

tax_amount   number  optional  

Example: 4.35

subtotal   number  optional  

Must be at least 0. Example: 104.35

is_extraction   boolean  optional  

Example: true

taxes   object[]  optional  
code   string  optional  

Example: TX

rate   number  optional  

Must be at least 0. Example: 6.25

amount   number  optional  

Example: 4.5

is_extraction   boolean  optional  

Example: false

Order update

requires authentication

Active status changes will be ignored. Please use the archive and activate endpoints for that purpose.

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/orders/eaque" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date_requested\": \"11\\/13\\/2025\",
    \"start_time\": \"11:00\",
    \"end_time\": \"13:00\",
    \"internal_note\": \"piqaeyftqzhdnghcyweqfc\",
    \"external_note\": \"hvbzclumvddjzsnyydxx\",
    \"job_driving_directions\": \"fgefxpilc\",
    \"service_type_id\": 12,
    \"external_id\": \"lpyew\",
    \"external_doc_type\": \"eveniet\",
    \"external_delivery_id\": \"voluptas\",
    \"is_extraction\": false,
    \"credit_hold\": false,
    \"materials\": [
        {
            \"material_id\": 1,
            \"quantity_requested\": 8,
            \"unit_price\": 27,
            \"tax_percent\": 4.35,
            \"tax_amount\": 4.35,
            \"subtotal\": 104.35,
            \"is_extraction\": true,
            \"taxes\": [
                {
                    \"order_material_id\": 6,
                    \"code\": \"Fuel Taxes:OK-ENV-DSL\",
                    \"description\": \"Oklahoma State Environmental Fee UST\",
                    \"rate\": 6.25,
                    \"amount\": 4.5
                }
            ],
            \"delete\": false
        }
    ]
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/orders/eaque"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "date_requested": "11\/13\/2025",
    "start_time": "11:00",
    "end_time": "13:00",
    "internal_note": "piqaeyftqzhdnghcyweqfc",
    "external_note": "hvbzclumvddjzsnyydxx",
    "job_driving_directions": "fgefxpilc",
    "service_type_id": 12,
    "external_id": "lpyew",
    "external_doc_type": "eveniet",
    "external_delivery_id": "voluptas",
    "is_extraction": false,
    "credit_hold": false,
    "materials": [
        {
            "material_id": 1,
            "quantity_requested": 8,
            "unit_price": 27,
            "tax_percent": 4.35,
            "tax_amount": 4.35,
            "subtotal": 104.35,
            "is_extraction": true,
            "taxes": [
                {
                    "order_material_id": 6,
                    "code": "Fuel Taxes:OK-ENV-DSL",
                    "description": "Oklahoma State Environmental Fee UST",
                    "rate": 6.25,
                    "amount": 4.5
                }
            ],
            "delete": false
        }
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/orders/eaque';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'date_requested' => '11/13/2025',
            'start_time' => '11:00',
            'end_time' => '13:00',
            'internal_note' => 'piqaeyftqzhdnghcyweqfc',
            'external_note' => 'hvbzclumvddjzsnyydxx',
            'job_driving_directions' => 'fgefxpilc',
            'service_type_id' => 12,
            'external_id' => 'lpyew',
            'external_doc_type' => 'eveniet',
            'external_delivery_id' => 'voluptas',
            'is_extraction' => false,
            'credit_hold' => false,
            'materials' => [
                [
                    'material_id' => 1,
                    'quantity_requested' => 8,
                    'unit_price' => 27,
                    'tax_percent' => 4.35,
                    'tax_amount' => 4.35,
                    'subtotal' => 104.35,
                    'is_extraction' => true,
                    'taxes' => [
                        [
                            'order_material_id' => 6,
                            'code' => 'Fuel Taxes:OK-ENV-DSL',
                            'description' => 'Oklahoma State Environmental Fee UST',
                            'rate' => 6.25,
                            'amount' => 4.5,
                        ],
                    ],
                    'delete' => false,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/orders/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the order to be updated: id, external_id. Example: eaque

Body Parameters

date_requested   string  optional  

Must be a valid date in the format m/d/Y. Example: 11/13/2025

start_time   string  optional  

Must be a valid date in the format H:i. Example: 11:00

end_time   string  optional  

Must be a valid date in the format H:i. Example: 13:00

internal_note   string  optional  

Must be at least 6 characters. Must not be greater than 500 characters. Example: piqaeyftqzhdnghcyweqfc

external_note   string  optional  

Must be at least 6 characters. Must not be greater than 500 characters. Example: hvbzclumvddjzsnyydxx

job_driving_directions   string  optional  

Must be at least 6 characters. Must not be greater than 1500 characters. Example: fgefxpilc

service_type_id   integer  optional  

Example: 12

external_id   string  optional  

Must not be greater than 200 characters. Example: lpyew

external_invoice_id   string  optional  
external_doc_type   string  optional  

Example: eveniet

external_delivery_id   string  optional  

Example: voluptas

materials   object[]  optional  
id   string  optional  
material_id   integer  optional  

Identifier of one of the material. Provide any of the following values as an identifier: id, number. Example: 1

external_id   string  optional  
quantity_requested   integer  optional  

Example: 8

unit_price   number  optional  

Must be at least 0. Example: 27

tax_percent   number  optional  

Must be at least 0. Example: 4.35

tax_amount   number  optional  

Example: 4.35

subtotal   number  optional  

Example: 104.35

is_extraction   boolean  optional  

Example: true

taxes   object[]  optional  
order_material_id   integer  optional  

Example: 6

code   string  optional  

Example: Fuel Taxes:OK-ENV-DSL

description   string  optional  

Example: Oklahoma State Environmental Fee UST

rate   number  optional  

Must be at least 0. Example: 6.25

amount   number  optional  

Example: 4.5

delete   boolean  optional  

Example: false

is_extraction   boolean  optional  

Example: false

credit_hold   boolean  optional  

Example: false

Order archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/orders/ullam/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/orders/ullam/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/orders/ullam/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/orders/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the order to be archived: id, external_id. Example: ullam

Order activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/orders/voluptas/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/orders/voluptas/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/orders/voluptas/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/orders/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the order to be (re)activated: id, external_id. Example: voluptas

Service Areas

Retrieve main list of service areas

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/service-areas?per_page=20&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-areas"
);

const params = {
    "per_page": "20",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-areas';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '20',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 986
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [
                {
                    "id": 85,
                    "name": "El Reno",
                    "description": "El Reno",
                    "status": 1,
                    "company_id": 32,
                    "created_at": "2022-10-03T22:41:29.000000Z",
                    "updated_at": "2023-01-12T03:05:30.000000Z",
                    "external_id": null
                }
            ],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/service-areas?per_page=20&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "from": 1,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/service-areas?per_page=20&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/service-areas?per_page=20&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/service-areas",
            "per_page": 20,
            "prev_page_url": null,
            "to": 1,
            "total": 1
        }
    ]
}
 

Request      

GET api/v1/service-areas

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 20

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Retrieve a specific service area

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/service-areas/dignissimos" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-areas/dignissimos"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-areas/dignissimos';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 985
access-control-allow-origin: *
 

{
    "success": false,
    "message": "Service area not found"
}
 

Request      

GET api/v1/service-areas/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service area: id, external_id. Example: dignissimos

Service area creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/service-areas" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"rgrx\",
    \"description\": \"Deserunt suscipit pariatur eligendi maxime.\",
    \"locations\": [
        {
            \"state\": \"Oklahoma\",
            \"county\": \"Oklahoma\",
            \"zip_code\": \"12345\"
        }
    ],
    \"external_id\": \"oagyfutczyhrfwo\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-areas"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "rgrx",
    "description": "Deserunt suscipit pariatur eligendi maxime.",
    "locations": [
        {
            "state": "Oklahoma",
            "county": "Oklahoma",
            "zip_code": "12345"
        }
    ],
    "external_id": "oagyfutczyhrfwo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-areas';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'rgrx',
            'description' => 'Deserunt suscipit pariatur eligendi maxime.',
            'locations' => [
                [
                    'state' => 'Oklahoma',
                    'county' => 'Oklahoma',
                    'zip_code' => '12345',
                ],
            ],
            'external_id' => 'oagyfutczyhrfwo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/service-areas

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 50 characters. Example: rgrx

description   string   

Must not be greater than 100 characters. Example: Deserunt suscipit pariatur eligendi maxime.

locations   object[]   

Must have at least 1 items.

state   string  optional  

Example: Oklahoma

county   string  optional  

Example: Oklahoma

zip_code   string  optional  

Must match the regex /^[0-9]{0,5}$/. Must be 5 characters. Example: 12345

external_id   string  optional  

Must not be greater than 200 characters. Example: oagyfutczyhrfwo

Service area update

requires authentication

Active status changes will be ignored. Please use the archive and activate endpoints for that purpose.

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/service-areas/necessitatibus" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"lzpuhrqlvqmsvhh\",
    \"description\": \"Sunt adipisci voluptatum ut ea quam excepturi quibusdam.\",
    \"locations\": [
        {
            \"state\": \"Oklahoma\",
            \"county\": \"Oklahoma\",
            \"zip_code\": \"12345\"
        }
    ],
    \"external_id\": \"dzufycgddjrdwkjrmz\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-areas/necessitatibus"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "lzpuhrqlvqmsvhh",
    "description": "Sunt adipisci voluptatum ut ea quam excepturi quibusdam.",
    "locations": [
        {
            "state": "Oklahoma",
            "county": "Oklahoma",
            "zip_code": "12345"
        }
    ],
    "external_id": "dzufycgddjrdwkjrmz"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-areas/necessitatibus';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'lzpuhrqlvqmsvhh',
            'description' => 'Sunt adipisci voluptatum ut ea quam excepturi quibusdam.',
            'locations' => [
                [
                    'state' => 'Oklahoma',
                    'county' => 'Oklahoma',
                    'zip_code' => '12345',
                ],
            ],
            'external_id' => 'dzufycgddjrdwkjrmz',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/service-areas/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service area to be updated: id, external_id. Example: necessitatibus

Body Parameters

name   string   

Must not be greater than 50 characters. Example: lzpuhrqlvqmsvhh

description   string   

Must not be greater than 100 characters. Example: Sunt adipisci voluptatum ut ea quam excepturi quibusdam.

locations   object[]   

Must have at least 1 items.

state   string  optional  

Example: Oklahoma

county   string  optional  

Example: Oklahoma

zip_code   string  optional  

Must match the regex /^[0-9]{0,5}$/. Must be 5 characters. Example: 12345

external_id   string  optional  

Must not be greater than 200 characters. Example: dzufycgddjrdwkjrmz

Service area archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/service-areas/nobis/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-areas/nobis/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-areas/nobis/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/service-areas/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service area to be archived: id, external_id. Example: nobis

Service area activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/service-areas/ut/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-areas/ut/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-areas/ut/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/service-areas/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service area to be (re)activated: id, external_id. Example: ut

Service Types

Retrieve main list of service types

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/service-types?per_page=5&before=2023-01-23+12%3A00%3A00&after=2023-01-01" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-types"
);

const params = {
    "per_page": "5",
    "before": "2023-01-23 12:00:00",
    "after": "2023-01-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-types';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'per_page' => '5',
            'before' => '2023-01-23 12:00:00',
            'after' => '2023-01-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 984
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "current_page": 1,
            "data": [],
            "first_page_url": "https://vendors.getlinkk.com/api/v1/service-types?per_page=5&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "from": null,
            "last_page": 1,
            "last_page_url": "https://vendors.getlinkk.com/api/v1/service-types?per_page=5&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
            "links": [
                {
                    "url": null,
                    "label": "« Previous",
                    "active": false
                },
                {
                    "url": "https://vendors.getlinkk.com/api/v1/service-types?per_page=5&before=2023-01-23%2012%3A00%3A00&after=2023-01-01&page=1",
                    "label": "1",
                    "active": true
                },
                {
                    "url": null,
                    "label": "Next »",
                    "active": false
                }
            ],
            "next_page_url": null,
            "path": "https://vendors.getlinkk.com/api/v1/service-types",
            "per_page": 5,
            "prev_page_url": null,
            "to": null,
            "total": 0
        }
    ]
}
 

Request      

GET api/v1/service-types

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

per_page   integer  optional  

Number of elements per page. Defaults to 15. Example: 5

before   string  optional  

Filter by updated date (UTC time). Example: 2023-01-23 12:00:00

after   string  optional  

Filter by updated date (UTC time). Example: 2023-01-01

Retrieve a specific service type

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/service-types/temporibus" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-types/temporibus"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-types/temporibus';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 983
access-control-allow-origin: *
 

{
    "message": "Server Error"
}
 

Request      

GET api/v1/service-types/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service type: id, external_id. Example: temporibus

Service type creation

requires authentication

Example request:
curl --request POST \
    "https://vendors.getlinkk.com/api/v1/service-types" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"a\",
    \"description\": \"Itaque quis cupiditate vel consequuntur sed et nihil veniam.\",
    \"external_id\": \"pfxxqzbtuvsqpsnofbfbh\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-types"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "a",
    "description": "Itaque quis cupiditate vel consequuntur sed et nihil veniam.",
    "external_id": "pfxxqzbtuvsqpsnofbfbh"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-types';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'a',
            'description' => 'Itaque quis cupiditate vel consequuntur sed et nihil veniam.',
            'external_id' => 'pfxxqzbtuvsqpsnofbfbh',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/service-types

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 50 characters. Example: a

description   string   

Must not be greater than 100 characters. Example: Itaque quis cupiditate vel consequuntur sed et nihil veniam.

external_id   string  optional  

Must not be greater than 200 characters. Example: pfxxqzbtuvsqpsnofbfbh

Service type update

requires authentication

Active status changes will be ignored. Please use the archive and activate endpoints for that purpose.

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/service-types/et" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"ktyu\",
    \"description\": \"Qui nulla et aut ab non numquam.\",
    \"external_id\": \"qrnmex\"
}"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-types/et"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "ktyu",
    "description": "Qui nulla et aut ab non numquam.",
    "external_id": "qrnmex"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-types/et';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'ktyu',
            'description' => 'Qui nulla et aut ab non numquam.',
            'external_id' => 'qrnmex',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/service-types/{identifier}

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service type to be updated: id, external_id. Example: et

Body Parameters

name   string   

Must not be greater than 50 characters. Example: ktyu

description   string   

Must not be greater than 100 characters. Example: Qui nulla et aut ab non numquam.

external_id   string  optional  

Must not be greater than 200 characters. Example: qrnmex

Service type archive

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/service-types/nihil/archive" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-types/nihil/archive"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-types/nihil/archive';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/service-types/{identifier}/archive

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service type to be archived: id, external_id. Example: nihil

Service type activate

requires authentication

Example request:
curl --request PATCH \
    "https://vendors.getlinkk.com/api/v1/service-types/inventore/activate" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/service-types/inventore/activate"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "PATCH",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/service-types/inventore/activate';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/service-types/{identifier}/activate

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

identifier   string   

Provide any of the following values to identify the service type to be (re)activated: id, external_id. Example: inventore

Units of Measure

Retrieve list of units of measure

requires authentication

Example request:
curl --request GET \
    --get "https://vendors.getlinkk.com/api/v1/uom" \
    --header "Authorization: Basic {credentials}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vendors.getlinkk.com/api/v1/uom"
);

const headers = {
    "Authorization": "Basic {credentials}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://vendors.getlinkk.com/api/v1/uom';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Basic {credentials}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 1000
x-ratelimit-remaining: 982
access-control-allow-origin: *
 

{
    "success": true,
    "body": [
        {
            "id": 12,
            "name": "bbl",
            "created_at": "2018-06-15T20:39:34.000000Z",
            "updated_at": "2018-06-15T20:39:34.000000Z"
        },
        {
            "id": 15,
            "name": "case",
            "created_at": "2023-03-30T22:24:46.000000Z",
            "updated_at": "2023-03-30T22:24:46.000000Z"
        },
        {
            "id": 14,
            "name": "day",
            "created_at": "2019-02-01T22:42:46.000000Z",
            "updated_at": "2019-02-01T22:42:46.000000Z"
        },
        {
            "id": 22,
            "name": "DEG",
            "created_at": "2025-06-12T13:52:04.000000Z",
            "updated_at": "2025-06-12T13:52:04.000000Z"
        },
        {
            "id": 18,
            "name": "drum",
            "created_at": "2023-03-30T22:24:46.000000Z",
            "updated_at": "2023-03-30T22:24:46.000000Z"
        },
        {
            "id": 13,
            "name": "each",
            "created_at": "2018-06-15T20:39:34.000000Z",
            "updated_at": "2018-06-15T20:39:34.000000Z"
        },
        {
            "id": 21,
            "name": "empty",
            "created_at": "2025-06-12T13:52:04.000000Z",
            "updated_at": "2025-06-12T13:52:04.000000Z"
        },
        {
            "id": 5,
            "name": "ft",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        },
        {
            "id": 20,
            "name": "full",
            "created_at": "2025-06-12T13:52:04.000000Z",
            "updated_at": "2025-06-12T13:52:04.000000Z"
        },
        {
            "id": 1,
            "name": "gal",
            "created_at": "2016-01-25T19:12:02.000000Z",
            "updated_at": "2016-01-22T00:00:00.000000Z"
        },
        {
            "id": 4,
            "name": "gr",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        },
        {
            "id": 11,
            "name": "Hr",
            "created_at": "2017-01-13T14:50:15.000000Z",
            "updated_at": "2017-01-13T14:50:15.000000Z"
        },
        {
            "id": 16,
            "name": "keg",
            "created_at": "2023-03-30T22:24:46.000000Z",
            "updated_at": "2023-03-30T22:24:46.000000Z"
        },
        {
            "id": 3,
            "name": "kg",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        },
        {
            "id": 7,
            "name": "km",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        },
        {
            "id": 9,
            "name": "lb",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        },
        {
            "id": 8,
            "name": "m",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        },
        {
            "id": 17,
            "name": "pail",
            "created_at": "2023-03-30T22:24:46.000000Z",
            "updated_at": "2023-03-30T22:24:46.000000Z"
        },
        {
            "id": 10,
            "name": "ton",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        },
        {
            "id": 19,
            "name": "tube",
            "created_at": "2023-10-09T16:01:56.000000Z",
            "updated_at": "2023-10-09T16:01:56.000000Z"
        },
        {
            "id": 2,
            "name": "unit",
            "created_at": "2016-01-25T19:12:14.000000Z",
            "updated_at": "2016-01-25T00:00:00.000000Z"
        },
        {
            "id": 6,
            "name": "yd",
            "created_at": "2016-01-25T19:27:41.000000Z",
            "updated_at": "-000001-11-30T00:00:00.000000Z"
        }
    ]
}
 

Request      

GET api/v1/uom

Headers

Authorization      

Example: Basic {credentials}

Content-Type      

Example: application/json

Accept      

Example: application/json