Introduction

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

As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile). You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_API_KEY}".

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

You can retrieve your token by visiting your account click your name and go to synchronisation.

V1

Tasks


GET tasks (V1)

GET
https://api.routelogic.io
/api/v1/tasks

Retrieve all tasks as a paginated collection.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v1/tasks" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "current_page": 1,
    "data": [
        {
            "id": 479,
            "type": "delivery",
            "track_trace_token": "MGTJ8O0cjCMW",
            "external_identifier": "WEjL3D",
            "external_reference": null,
            "note": null,
            "pending_payment_amount": null,
            "external_link": null,
            "delivery_from_date": null,
            "delivery_date": "2024-07-25T22:00:00.000000Z",
            "start_time": "09:00:00",
            "end_time": "17:00:00",
            "delivery_duration_minutes": 0,
            "return_required": false,
            "signature_required": false,
            "used_capacity": null,
            "used_capacity_2": null,
            "used_capacity_3": null,
            "delivered_at": "2024-07-26T07:05:00.000000Z",
            "custom_fields": null,
            "recurring": null,
            "created_at": "2024-07-26T10:09:16.000000Z",
            "updated_at": "2024-07-26T10:09:16.000000Z",
            "deleted_at": null,
            "address": {
                "street": "77869 Donavon Plain Apt. 846",
                "house_number": "95626",
                "house_number_extension": null,
                "postal_code": "72507-6862",
                "city": "East Jaron",
                "latitude": "-37.0382250",
                "longitude": "104.3755890",
                "created_at": "2024-07-26T10:09:16.000000Z",
                "updated_at": "2024-07-26T10:09:16.000000Z",
                "address_line": "77869 Donavon Plain Apt. 846 95626",
                "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                "country": {
                    "id": 252,
                    "iso_code": "NL",
                    "description": "Nederland"
                }
            },
            "customer": {
                "name": "Bethany Hackett",
                "email": null,
                "phone_number": null,
                "created_at": "2024-07-26T10:09:16.000000Z",
                "updated_at": "2024-07-26T10:09:16.000000Z"
            },
            "active_visit": {
                "delivery_time": "09:00:00",
                "finish_time": "09:10:00",
                "delivered_at": "2024-07-26T07:05:00.000000Z",
                "shifted_delivery_time": "09:00:00",
                "shifted_finish_time": "09:10:00",
                "delivery_date": "2024-07-26",
                "status": "delivered"
            },
            "app_url": "http://localhost/tasks/479",
            "track_trace_url": "http://localhost/tr/MGTJ8O0cjCMW",
            "tags": [],
            "products": [
                {
                    "identifier": "2f7e673aae64ffbe3821016e253b45ed",
                    "description": "Test line",
                    "unit": "pieces",
                    "quantity": "1.00"
                }
            ]
        }
    ],
    "first_page_url": "http://localhost/api/v1/tasks?page=1",
    "from": 1,
    "last_page": 1,
    "last_page_url": "http://localhost/api/v1/tasks?page=1",
    "links": [
        {
            "url": null,
            "label": "« Previous",
            "active": false
        },
        {
            "url": "http://localhost/api/v1/tasks?page=1",
            "label": "1",
            "active": true
        },
        {
            "url": null,
            "label": "Next »",
            "active": false
        }
    ],
    "next_page_url": null,
    "path": "http://localhost/api/v1/tasks",
    "per_page": 100,
    "prev_page_url": null,
    "to": 1,
    "total": 1
}
{
    "message": "Access token missing"
}
{
    "message": "Access token invalid"
}
{
    "message": "Required subscription is not active"
}

POST task (V1)

POST
https://api.routelogic.io
/api/v1/tasks
requires authentication

Create new task.

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.routelogic.io/api/v1/tasks" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"delivery\",
    \"delivery_date\": \"2024-07-26T12:09:17\",
    \"delivery_from_date\": \"2011-09-21\",
    \"start_time\": \"12:09\",
    \"end_time\": \"2050-11-05\",
    \"delivery_duration_minutes\": 8,
    \"external_identifier\": \"yjzeiuwkmpypc\",
    \"external_reference\": \"khzvhxootnuptqtxqiik\",
    \"used_capacity\": 4,
    \"used_capacity_2\": 24,
    \"used_capacity_3\": 6,
    \"signature_required\": true,
    \"return_required\": true,
    \"note\": \"grj\",
    \"external_link\": \"jfo\",
    \"address\": {
        \"city\": \"dfcgj\",
        \"country\": \"et\",
        \"house_number\": \"anrwdhie\",
        \"postal_code\": \"onekbexaa\",
        \"street\": \"y\",
        \"latitude\": 10,
        \"longitude\": 13
    },
    \"customer\": {
        \"email\": \"[email protected]\",
        \"name\": \"zcefesbbxkiof\",
        \"phone_number\": \"rb\"
    },
    \"products\": [
        {
            \"identifier\": \"zxpwafqez\",
            \"name\": \"jpcdcihwzkjjaocii\",
            \"quantity\": 18.2715798,
            \"unit\": \"weight\"
        }
    ],
    \"tags\": [
        \"qmlavedq\"
    ]
}"
Example response:
{
    "id": 479,
    "type": "delivery",
    "track_trace_token": "MGTJ8O0cjCMW",
    "external_identifier": "WEjL3D",
    "external_reference": null,
    "note": null,
    "pending_payment_amount": null,
    "external_link": null,
    "delivery_from_date": null,
    "delivery_date": "2024-07-25T22:00:00.000000Z",
    "start_time": "09:00:00",
    "end_time": "17:00:00",
    "delivery_duration_minutes": 0,
    "return_required": false,
    "signature_required": false,
    "used_capacity": null,
    "used_capacity_2": null,
    "used_capacity_3": null,
    "delivered_at": "2024-07-26T07:05:00.000000Z",
    "custom_fields": null,
    "recurring": null,
    "created_at": "2024-07-26T10:09:16.000000Z",
    "updated_at": "2024-07-26T10:09:16.000000Z",
    "deleted_at": null,
    "address": {
        "street": "77869 Donavon Plain Apt. 846",
        "house_number": "95626",
        "house_number_extension": null,
        "postal_code": "72507-6862",
        "city": "East Jaron",
        "latitude": "-37.0382250",
        "longitude": "104.3755890",
        "created_at": "2024-07-26T10:09:16.000000Z",
        "updated_at": "2024-07-26T10:09:16.000000Z",
        "address_line": "77869 Donavon Plain Apt. 846 95626",
        "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
        "country": {
            "id": 252,
            "iso_code": "NL",
            "description": "Nederland"
        }
    },
    "customer": {
        "name": "Bethany Hackett",
        "email": null,
        "phone_number": null,
        "created_at": "2024-07-26T10:09:16.000000Z",
        "updated_at": "2024-07-26T10:09:16.000000Z"
    },
    "active_visit": {
        "delivery_time": "09:00:00",
        "finish_time": "09:10:00",
        "delivered_at": "2024-07-26T07:05:00.000000Z",
        "shifted_delivery_time": "09:00:00",
        "shifted_finish_time": "09:10:00",
        "delivery_date": "2024-07-26",
        "status": "delivered"
    },
    "app_url": "http://localhost/tasks/479",
    "track_trace_url": "http://localhost/tr/MGTJ8O0cjCMW",
    "tags": [],
    "products": [
        {
            "identifier": "2f7e673aae64ffbe3821016e253b45ed",
            "description": "Test line",
            "unit": "pieces",
            "quantity": "1.00"
        }
    ]
}
{
    "message": "Access token missing"
}
{
    "message": "Access token invalid"
}
{
    "message": "Required subscription is not active"
}

GET task (V1)

GET
https://api.routelogic.io
/api/v1/tasks/{id}
requires authentication

Retrieve a single task.

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the task.

Example:
479
Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v1/tasks/479" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "id": 479,
    "type": "delivery",
    "track_trace_token": "MGTJ8O0cjCMW",
    "external_identifier": "WEjL3D",
    "external_reference": null,
    "note": null,
    "pending_payment_amount": null,
    "external_link": null,
    "delivery_from_date": null,
    "delivery_date": "2024-07-25T22:00:00.000000Z",
    "start_time": "09:00:00",
    "end_time": "17:00:00",
    "delivery_duration_minutes": 0,
    "return_required": false,
    "signature_required": false,
    "used_capacity": null,
    "used_capacity_2": null,
    "used_capacity_3": null,
    "delivered_at": "2024-07-26T07:05:00.000000Z",
    "custom_fields": null,
    "recurring": null,
    "created_at": "2024-07-26T10:09:16.000000Z",
    "updated_at": "2024-07-26T10:09:16.000000Z",
    "deleted_at": null,
    "address": {
        "street": "77869 Donavon Plain Apt. 846",
        "house_number": "95626",
        "house_number_extension": null,
        "postal_code": "72507-6862",
        "city": "East Jaron",
        "latitude": "-37.0382250",
        "longitude": "104.3755890",
        "created_at": "2024-07-26T10:09:16.000000Z",
        "updated_at": "2024-07-26T10:09:16.000000Z",
        "address_line": "77869 Donavon Plain Apt. 846 95626",
        "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
        "country": {
            "id": 252,
            "iso_code": "NL",
            "description": "Nederland"
        }
    },
    "customer": {
        "name": "Bethany Hackett",
        "email": null,
        "phone_number": null,
        "created_at": "2024-07-26T10:09:16.000000Z",
        "updated_at": "2024-07-26T10:09:16.000000Z"
    },
    "active_visit": {
        "delivery_time": "09:00:00",
        "finish_time": "09:10:00",
        "delivered_at": "2024-07-26T07:05:00.000000Z",
        "shifted_delivery_time": "09:00:00",
        "shifted_finish_time": "09:10:00",
        "delivery_date": "2024-07-26",
        "status": "delivered"
    },
    "app_url": "http://localhost/tasks/479",
    "track_trace_url": "http://localhost/tr/MGTJ8O0cjCMW",
    "tags": [],
    "products": [
        {
            "identifier": "2f7e673aae64ffbe3821016e253b45ed",
            "description": "Test line",
            "unit": "pieces",
            "quantity": "1.00"
        }
    ]
}
{
    "message": "Access token missing"
}
{
    "message": "Access token invalid"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "No query results for model ..."
}

PUT/PATCH task (V1)

PUT
PATCH
https://api.routelogic.io
/api/v1/tasks/{id}
requires authentication

Update task.

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the task.

Example:
479

Body Parameters

Example request:
curl --request PUT \
    "https://api.routelogic.io/api/v1/tasks/479" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"delivery\",
    \"delivery_date\": \"2024-07-26T12:09:17\",
    \"delivery_from_date\": \"2003-11-15\",
    \"start_time\": \"12:09\",
    \"end_time\": \"2031-05-08\",
    \"delivery_duration_minutes\": 15,
    \"external_identifier\": \"ludrdrcju\",
    \"used_capacity\": 1,
    \"used_capacity_2\": 7,
    \"used_capacity_3\": 9,
    \"signature_required\": true,
    \"return_required\": false,
    \"note\": \"dxqeeelgnrlwre\",
    \"external_link\": \"lzjnfwcqyspowhchzv\",
    \"address\": {
        \"city\": \"ejbwwo\",
        \"house_number\": \"warujhjfcpl\",
        \"postal_code\": \"mdxrfmswecszykzzrpvc\",
        \"street\": \"jdziclwvtdzwzfqy\",
        \"latitude\": 10,
        \"longitude\": 11
    },
    \"customer\": {
        \"email\": \"[email protected]\",
        \"name\": \"nknwvzvegfrnuwfmdhvgaof\",
        \"phone_number\": \"ejtrsadcgqqqbarv\"
    },
    \"products\": [
        {
            \"identifier\": \"coozlszgd\",
            \"name\": \"kvzpqoarjikwtprdeuuxfs\",
            \"quantity\": 14957980.712,
            \"unit\": \"pieces\"
        }
    ],
    \"tags\": [
        \"jgnatmrlgmhnqcmabur\"
    ]
}"
Example response:
{
    "id": 479,
    "type": "delivery",
    "track_trace_token": "MGTJ8O0cjCMW",
    "external_identifier": "WEjL3D",
    "external_reference": null,
    "note": null,
    "pending_payment_amount": null,
    "external_link": null,
    "delivery_from_date": null,
    "delivery_date": "2024-07-25T22:00:00.000000Z",
    "start_time": "09:00:00",
    "end_time": "17:00:00",
    "delivery_duration_minutes": 0,
    "return_required": false,
    "signature_required": false,
    "used_capacity": null,
    "used_capacity_2": null,
    "used_capacity_3": null,
    "delivered_at": "2024-07-26T07:05:00.000000Z",
    "custom_fields": null,
    "recurring": null,
    "created_at": "2024-07-26T10:09:16.000000Z",
    "updated_at": "2024-07-26T10:09:16.000000Z",
    "deleted_at": null,
    "address": {
        "street": "77869 Donavon Plain Apt. 846",
        "house_number": "95626",
        "house_number_extension": null,
        "postal_code": "72507-6862",
        "city": "East Jaron",
        "latitude": "-37.0382250",
        "longitude": "104.3755890",
        "created_at": "2024-07-26T10:09:16.000000Z",
        "updated_at": "2024-07-26T10:09:16.000000Z",
        "address_line": "77869 Donavon Plain Apt. 846 95626",
        "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
        "country": {
            "id": 252,
            "iso_code": "NL",
            "description": "Nederland"
        }
    },
    "customer": {
        "name": "Bethany Hackett",
        "email": null,
        "phone_number": null,
        "created_at": "2024-07-26T10:09:16.000000Z",
        "updated_at": "2024-07-26T10:09:16.000000Z"
    },
    "active_visit": {
        "delivery_time": "09:00:00",
        "finish_time": "09:10:00",
        "delivered_at": "2024-07-26T07:05:00.000000Z",
        "shifted_delivery_time": "09:00:00",
        "shifted_finish_time": "09:10:00",
        "delivery_date": "2024-07-26",
        "status": "delivered"
    },
    "app_url": "http://localhost/tasks/479",
    "track_trace_url": "http://localhost/tr/MGTJ8O0cjCMW",
    "tags": [],
    "products": [
        {
            "identifier": "2f7e673aae64ffbe3821016e253b45ed",
            "description": "Test line",
            "unit": "pieces",
            "quantity": "1.00"
        }
    ]
}
{
    "message": "Access token missing"
}
{
    "message": "Access token invalid"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "No query results for model ..."
}

DELETE task (V1)

DELETE
https://api.routelogic.io
/api/v1/tasks/{id}
requires authentication

Delete a single task.

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the task.

Example:
479
Example request:
curl --request DELETE \
    "https://api.routelogic.io/api/v1/tasks/479" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
""
{
    "message": "Access token missing"
}
{
    "message": "Access token invalid"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "No query results for model ..."
}

GET tasks for a specific date

GET
https://api.routelogic.io
/api/v1/tasks/date/{date}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

date
string
required

Date in format yyyy-mm-dd (e.g. 2023-05-15).

Example:
2023-11-02
Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v1/tasks/date/2023-11-02" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[
    {
        "task_id": 479,
        "external_identifier": "WEjL3D",
        "vehicle_id": 289,
        "delivery_time": "09:00:00",
        "order_index": 2890000000
    }
]

Schedule Vehicles


GET scheduled vehicles for a specific date

GET
https://api.routelogic.io
/api/v1/schedule-vehicles/date/{date}
requires authentication

Retrieve all scheduled vehicles.

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

date
string
required

Date in format yyyy-mm-dd (e.g. 2022-05-15).

Example:
2023-11-02
Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v1/schedule-vehicles/date/2023-11-02" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[
    {
        "id": 214,
        "uuid": "9c9d2b9e-a3ab-4596-a4a8-1aa81371b186",
        "schedule_id": 7488,
        "vehicle_id": 289,
        "user_id": 2155,
        "strict_start": false,
        "shift_start_time": "08:00:00",
        "shift_end_time": "10:00:00",
        "charge_error": null,
        "started_at": "2024-07-26 08:03:00",
        "finished_at": "2024-07-26 10:02:00",
        "geometry": null,
        "total_travel_time": 60,
        "total_distance": 1850,
        "order_is_locked": false,
        "is_locked": false,
        "current_range": null,
        "distance_to_first_station": null,
        "formatted_shift_start_time": "08:00",
        "formatted_shift_end_time": "10:00",
        "combined_speed_factor": 100,
        "total_duration": 0,
        "vehicle": {
            "id": 289,
            "uuid": "9c9d2b9e-8527-4f2c-b08e-75791adfe0c3",
            "type": "van",
            "license_plate": "xNCdsMivr",
            "description": "Van 1",
            "user_id": null,
            "company_id": 775,
            "start_address_id": 1729,
            "end_address_id": 1730,
            "available_capacity": null,
            "available_capacity_2": null,
            "available_capacity_3": null,
            "weight": null,
            "height": null,
            "length": null,
            "width": null,
            "speed_factor": 100,
            "max_distance": null,
            "deployed_at": "2024-07-26T10:09:16.000000Z",
            "deployed_until": null,
            "start_time": null,
            "end_time": null,
            "fuel_type": null,
            "fuel_consumption": null,
            "emission": null,
            "has_scheduled_break": 0,
            "scheduled_break_start_time": null,
            "scheduled_break_end_time": null,
            "created_at": "2024-07-26T10:09:16.000000Z",
            "updated_at": "2024-07-26T10:09:16.000000Z",
            "deleted_at": null,
            "is_deployed": true
        },
        "schedule": {
            "id": 7488,
            "uuid": "4b224998-6230-4fab-91e9-e2089681231c",
            "company_id": 775,
            "author_id": 2154,
            "date": "2024-07-25T22:00:00.000000Z",
            "optimalisation_type": "balanced",
            "description": "Example Schedule 1",
            "sms_notifications": 1,
            "email_notifications": 1,
            "total_travel_time": null,
            "total_distance": null,
            "errors": [],
            "hash": null,
            "calculated_at": null,
            "completed_at": null,
            "notifications_sent_at": null,
            "submitted_at": "2024-07-26 12:09:16",
            "created_at": "2024-07-26T10:09:16.000000Z",
            "updated_at": "2024-07-26T10:09:16.000000Z",
            "deleted_at": null
        },
        "user": {
            "id": 2155,
            "uuid": "9c9d2b9e-9030-4348-b5aa-def05603cd71",
            "name": "Jerrold Koelpin",
            "public_name": "Jerrold Koelpin",
            "email": "[email protected]",
            "email_verified_at": "2024-07-26T10:09:16.000000Z",
            "preferences": null,
            "preferred_locale": "nl",
            "avatar_path": null,
            "wage": null,
            "speed_factor": 100,
            "last_active_at": null,
            "created_at": "2024-07-26T10:09:16.000000Z",
            "updated_at": "2024-07-26T10:09:16.000000Z"
        },
        "visits": [
            {
                "id": 324,
                "uuid": "9c9d2b9e-a4a6-44dd-a02a-f7c9ecc8963b",
                "type": "task",
                "schedule_id": 7488,
                "task_id": 479,
                "schedule_vehicle_id": 214,
                "address_id": 1732,
                "delivery_time": "09:00:00",
                "finish_time": "09:10:00",
                "delivered_at": "2024-07-26T07:05:00.000000Z",
                "delivered_late": 0,
                "deliver_request": "normal",
                "signature_encoded": null,
                "deliver_request_note": null,
                "order_index": 0,
                "shift_delivery_time": 0,
                "metadata": null,
                "delay_notified_at": null,
                "created_at": "2024-07-26T10:09:16.000000Z",
                "updated_at": "2024-07-26T10:09:16.000000Z",
                "formatted_delivery_time": "09:00",
                "formatted_finish_time": "09:10",
                "shifted_delivery_time": "2024-07-26T07:00:00.000000Z",
                "shifted_finish_time": "2024-07-26T07:10:00.000000Z",
                "address": {
                    "id": 1732,
                    "street": "77869 Donavon Plain Apt. 846",
                    "house_number": "95626",
                    "house_number_extension": null,
                    "postal_code": "72507-6862",
                    "city": "East Jaron",
                    "country_id": 252,
                    "latitude": "-37.0382250",
                    "longitude": "104.3755890",
                    "hash": null,
                    "coordinates_locked_at": null,
                    "meta": null,
                    "emission_zone_checked_at": "2024-07-25T22:00:00.000000Z",
                    "created_at": "2024-07-26T10:09:16.000000Z",
                    "updated_at": "2024-07-26T10:09:16.000000Z",
                    "address_line": "77869 Donavon Plain Apt. 846 95626",
                    "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                    "country": {
                        "id": 252,
                        "iso_code": "NL",
                        "description": "Nederland"
                    }
                },
                "task": {
                    "id": 479,
                    "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
                    "type": "delivery",
                    "track_trace_token": "MGTJ8O0cjCMW",
                    "company_id": 775,
                    "address_id": 1731,
                    "customer_id": 146,
                    "external_identifier": "WEjL3D",
                    "external_reference": null,
                    "note": null,
                    "pending_payment_amount": null,
                    "external_link": null,
                    "delivery_from_date": null,
                    "delivery_date": "2024-07-26 00:00:00",
                    "start_time": "09:00:00",
                    "end_time": "17:00:00",
                    "delivery_duration_minutes": 0,
                    "recurring": null,
                    "return_required": false,
                    "signature_required": false,
                    "used_capacity": null,
                    "used_capacity_2": null,
                    "used_capacity_3": null,
                    "delivered_at": "2024-07-26T07:05:00.000000Z",
                    "custom_fields": null,
                    "return_task_id": null,
                    "duplicated_to_task_id": null,
                    "notification_template_id": null,
                    "send_notification_at_time": null,
                    "send_notifications_at": null,
                    "created_at": "2024-07-26 12:09:16",
                    "updated_at": "2024-07-26 12:09:16",
                    "deleted_at": null,
                    "formatted_start_time": "09:00",
                    "formatted_end_time": "17:00",
                    "delivery_from_date_short": null,
                    "delivery_date_short": "26-07",
                    "formatted_send_notification_at_time": "",
                    "address": {
                        "id": 1731,
                        "street": "77869 Donavon Plain Apt. 846",
                        "house_number": "95626",
                        "house_number_extension": null,
                        "postal_code": "72507-6862",
                        "city": "East Jaron",
                        "country_id": 252,
                        "latitude": "-37.0382250",
                        "longitude": "104.3755890",
                        "hash": null,
                        "coordinates_locked_at": null,
                        "meta": null,
                        "emission_zone_checked_at": "2024-07-25T22:00:00.000000Z",
                        "created_at": "2024-07-26T10:09:16.000000Z",
                        "updated_at": "2024-07-26T10:09:16.000000Z",
                        "address_line": "77869 Donavon Plain Apt. 846 95626",
                        "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                        "country": {
                            "id": 252,
                            "iso_code": "NL",
                            "description": "Nederland"
                        }
                    },
                    "customer": {
                        "id": 146,
                        "name": "Bethany Hackett",
                        "email": null,
                        "phone_number": null,
                        "created_at": "2024-07-26T10:09:16.000000Z",
                        "updated_at": "2024-07-26T10:09:16.000000Z"
                    },
                    "lines": [
                        {
                            "id": 84,
                            "uuid": "9c9d2b9e-a08f-44d6-9113-b1736db0aed7",
                            "identifier": "2f7e673aae64ffbe3821016e253b45ed",
                            "task_id": 479,
                            "quantity": "1.00",
                            "description": "Test line",
                            "unit": "pieces",
                            "delivered_at": null,
                            "created_at": "2024-07-26T10:09:16.000000Z",
                            "updated_at": "2024-07-26T10:09:16.000000Z"
                        }
                    ],
                    "visit": {
                        "id": 324,
                        "uuid": "9c9d2b9e-a4a6-44dd-a02a-f7c9ecc8963b",
                        "type": "task",
                        "schedule_id": 7488,
                        "task_id": 479,
                        "schedule_vehicle_id": 214,
                        "address_id": 1732,
                        "delivery_time": "09:00:00",
                        "finish_time": "09:10:00",
                        "delivered_at": "2024-07-26T07:05:00.000000Z",
                        "delivered_late": 0,
                        "deliver_request": "normal",
                        "signature_encoded": null,
                        "deliver_request_note": null,
                        "order_index": 0,
                        "shift_delivery_time": 0,
                        "metadata": null,
                        "delay_notified_at": null,
                        "created_at": "2024-07-26T10:09:16.000000Z",
                        "updated_at": "2024-07-26T10:09:16.000000Z",
                        "formatted_delivery_time": "09:00",
                        "formatted_finish_time": "09:10",
                        "shifted_delivery_time": "2024-07-26T07:00:00.000000Z",
                        "shifted_finish_time": "2024-07-26T07:10:00.000000Z",
                        "schedule": {
                            "id": 7488,
                            "uuid": "4b224998-6230-4fab-91e9-e2089681231c",
                            "company_id": 775,
                            "author_id": 2154,
                            "date": "2024-07-25T22:00:00.000000Z",
                            "optimalisation_type": "balanced",
                            "description": "Example Schedule 1",
                            "sms_notifications": 1,
                            "email_notifications": 1,
                            "total_travel_time": null,
                            "total_distance": null,
                            "errors": [],
                            "hash": null,
                            "calculated_at": null,
                            "completed_at": null,
                            "notifications_sent_at": null,
                            "submitted_at": "2024-07-26 12:09:16",
                            "created_at": "2024-07-26T10:09:16.000000Z",
                            "updated_at": "2024-07-26T10:09:16.000000Z",
                            "deleted_at": null
                        }
                    }
                },
                "schedule": {
                    "id": 7488,
                    "uuid": "4b224998-6230-4fab-91e9-e2089681231c",
                    "company_id": 775,
                    "author_id": 2154,
                    "date": "2024-07-25T22:00:00.000000Z",
                    "optimalisation_type": "balanced",
                    "description": "Example Schedule 1",
                    "sms_notifications": 1,
                    "email_notifications": 1,
                    "total_travel_time": null,
                    "total_distance": null,
                    "errors": [],
                    "hash": null,
                    "calculated_at": null,
                    "completed_at": null,
                    "notifications_sent_at": null,
                    "submitted_at": "2024-07-26 12:09:16",
                    "created_at": "2024-07-26T10:09:16.000000Z",
                    "updated_at": "2024-07-26T10:09:16.000000Z",
                    "deleted_at": null
                }
            }
        ]
    }
]
{
    "message": "Access token missing"
}
{
    "message": "Access token invalid"
}
{
    "message": "Required subscription is not active"
}

V2 (Beta)

Tasks

Tasks are the deliveries or pickups that need to be done by your drivers.


GET Tasks

GET
https://api.routelogic.io
/api/v2/tasks
requires authentication

Get paginated collection of tasks from your company

RateLimit (1/min)
If you like to receive tasks quicker use webhooks read more here

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

filters
object
filters.search
string

Search for specific tasks. (customer name, city, street, house number, postal, external identifier and external reference). Must not be greater than 128 characters.

Example:
Amsterdam
filters.from_date
string

Find tasks on this date and later. Combine with to_date to select a specific day or a range. Must be a valid date in the format Y-m-d.

Example:
2024-07-26
filters.to_date
string

Find tasks on this date and earlier. Combine with from_date to select a specific day or a range. Must be a valid date in the format Y-m-d.

Example:
2024-07-26
filters.types
string[]

Filter on specific task types.

Must be one of:
  • delivery
  • pickup
  • recurring
Example:
["pickup"]
filters.statuses
string[]

Filter on tasks with a specific status.

Must be one of:
  • planned
  • not_planned
  • delivered
  • delivery_failed
Example:
["delivered"]
filters.deleted
string

Include or only return deleted items in the response. Leave empty to not show deleted items at all.

Must be one of:
  • include
  • only
Example:
only
filters.limit
integer

Amount of items on each page. 24 by default. Must not be greater than 100. Must be at least 1.

Example:
66
filters.page
integer

Must be at least 1.

Example:
80

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/tasks?filters[search]=Amsterdam&filters[from_date]=2024-07-26&filters[to_date]=2024-07-26&filters[types][]=pickup&filters[statuses][]=delivered&filters[deleted]=only&filters[limit]=66&filters[page]=80" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
            "type": "delivery",
            "external_identifier": "WEjL3D",
            "external_reference": null,
            "note": null,
            "pending_payment_amount": 0,
            "external_link": null,
            "delivery_from_date": "2024-07-26",
            "delivery_date": "2024-07-26",
            "start_time": "09:00:00",
            "end_time": "17:00:00",
            "delivery_duration_minutes": 0,
            "recurring": null,
            "return_required": false,
            "signature_required": false,
            "used_capacity": 0,
            "used_capacity_2": 0,
            "used_capacity_3": 0,
            "updated_at": "2024-07-26T10:09:16.000000Z",
            "created_at": "2024-07-26T10:09:16.000000Z",
            "tags": [],
            "notification_template_uuid": null,
            "return_task_uuid": null,
            "address": {
                "street": "77869 Donavon Plain Apt. 846",
                "house_number": "95626",
                "house_number_extension": null,
                "postal_code": "72507-6862",
                "city": "East Jaron",
                "latitude": -37.038225,
                "longitude": 104.375589,
                "address_line": "77869 Donavon Plain Apt. 846 95626",
                "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                "country": {
                    "iso_code": "NL",
                    "description": "Nederland"
                }
            },
            "customer": {
                "name": "Bethany Hackett",
                "email": null,
                "phone_number": null
            },
            "next_visit": {
                "uuid": "9c9d2b9e-a4a6-44dd-a02a-f7c9ecc8963b",
                "type": "task",
                "order_index": 0,
                "delivery_time": "09:00:00",
                "schedule_date": "2024-07-25T22:00:00.000000Z",
                "address": {
                    "street": "77869 Donavon Plain Apt. 846",
                    "house_number": "95626",
                    "house_number_extension": null,
                    "postal_code": "72507-6862",
                    "city": "East Jaron",
                    "latitude": -37.038225,
                    "longitude": 104.375589,
                    "address_line": "77869 Donavon Plain Apt. 846 95626",
                    "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                    "country": {
                        "iso_code": "NL",
                        "description": "Nederland"
                    }
                },
                "scanned_codes": {
                    "data": [
                        {
                            "type": "task_code",
                            "code_uuid": "9c9d2b9e-a191-4136-a32a-12e404d52934",
                            "scanned_count": 1
                        },
                        {
                            "type": "schedule_visit_code",
                            "code_uuid": "9c9d2b9e-ae06-4122-92d6-61d8daaa78b8",
                            "scanned_count": 1
                        }
                    ]
                },
                "status": {
                    "status_identifier": "delivered"
                }
            }
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "per_page": 24,
        "to": 1,
        "total": 1,
        "next": null,
        "prev": null
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

POST Tasks

POST
https://api.routelogic.io
/api/v2/tasks
requires authentication

Create a task for your company. If the task already exists it will be updated based on the external identifier.

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://api.routelogic.io/api/v2/tasks" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"delivery\",
    \"external_identifier\": \"zgabkmrxygqpeswb\",
    \"external_reference\": \"zqpotgfijlltaqdyo\",
    \"note\": \"Please deliver at the side door.\",
    \"pending_payment_amount\": 100,
    \"external_link\": \"https:\\/\\/example.com\\/\",
    \"delivery_from_date\": \"2004-05-19\",
    \"start_time\": \"08:00\",
    \"end_time\": \"17:00\",
    \"delivery_duration_minutes\": 7,
    \"return_required\": false,
    \"signature_required\": false,
    \"used_capacity\": 16,
    \"used_capacity_2\": 11,
    \"used_capacity_3\": 22,
    \"notification_template_uuid\": \"7fbd7434-e0ab-3fe0-b39f-3400d017840a\",
    \"recurring\": {
        \"period\": \"month\",
        \"interval\": 2,
        \"settings\": \"[\\\"string\\\", \\\"third\\\", \\\"monday\\\"]\",
        \"end_date\": \"2035-05-13\"
    },
    \"address\": {
        \"house_number\": \"12\",
        \"house_number_extension\": \"1A\",
        \"street\": \"LongStreet\",
        \"postal_code\": \"1234AB\",
        \"city\": \"Amsterdam\",
        \"country\": \"NL\",
        \"latitude\": 14,
        \"longitude\": 4
    },
    \"customer\": {
        \"email\": \"[email protected]\",
        \"phone_number\": \"+01 234567890\",
        \"name\": \"Andrew\"
    },
    \"tags\": [
        \"cooled\"
    ],
    \"delivery_date\": \"2024-07-26T12:09:17\"
}"
Example response:
{
    "uuid": "9c9d2b9f-28af-4bae-9c5c-965ac10e8c49",
    "type": "delivery",
    "external_identifier": "RLJe6dJlPw5e",
    "external_reference": null,
    "note": null,
    "pending_payment_amount": 0,
    "external_link": null,
    "delivery_from_date": "2024-07-26",
    "delivery_date": "2024-07-26",
    "start_time": "08:00:00",
    "end_time": "18:00:00",
    "delivery_duration_minutes": 5,
    "recurring": null,
    "return_required": false,
    "signature_required": false,
    "used_capacity": 0,
    "used_capacity_2": 0,
    "used_capacity_3": 0,
    "updated_at": "2024-07-26T10:09:16.000000Z",
    "created_at": "2024-07-26T10:09:16.000000Z",
    "tags": [],
    "notification_template_uuid": null,
    "return_task_uuid": null,
    "address": {
        "street": "",
        "house_number": "",
        "house_number_extension": "",
        "postal_code": "",
        "city": "",
        "latitude": 1,
        "longitude": 1,
        "address_line": "",
        "full_address_line": "",
        "country": {
            "iso_code": "NL",
            "description": "Nederland"
        }
    },
    "customer": {
        "name": "customer 1",
        "email": null,
        "phone_number": null
    },
    "next_visit": null
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

GET Task

GET
https://api.routelogic.io
/api/v2/tasks/{task_uuid}
requires authentication

Get a task from your company

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
0ceaf255-dbbf-31b0-b7af-10a72e5fa1f5

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/tasks/0ceaf255-dbbf-31b0-b7af-10a72e5fa1f5" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
    "type": "delivery",
    "external_identifier": "WEjL3D",
    "external_reference": null,
    "note": null,
    "pending_payment_amount": 0,
    "external_link": null,
    "delivery_from_date": "2024-07-26",
    "delivery_date": "2024-07-26",
    "start_time": "09:00:00",
    "end_time": "17:00:00",
    "delivery_duration_minutes": 0,
    "recurring": null,
    "return_required": false,
    "signature_required": false,
    "used_capacity": 0,
    "used_capacity_2": 0,
    "used_capacity_3": 0,
    "updated_at": "2024-07-26T10:09:16.000000Z",
    "created_at": "2024-07-26T10:09:16.000000Z",
    "tags": [],
    "notification_template_uuid": null,
    "return_task_uuid": null,
    "address": {
        "street": "77869 Donavon Plain Apt. 846",
        "house_number": "95626",
        "house_number_extension": null,
        "postal_code": "72507-6862",
        "city": "East Jaron",
        "latitude": -37.038225,
        "longitude": 104.375589,
        "address_line": "77869 Donavon Plain Apt. 846 95626",
        "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
        "country": {
            "iso_code": "NL",
            "description": "Nederland"
        }
    },
    "customer": {
        "name": "Bethany Hackett",
        "email": null,
        "phone_number": null
    },
    "next_visit": {
        "uuid": "9c9d2b9e-a4a6-44dd-a02a-f7c9ecc8963b",
        "type": "task",
        "order_index": 0,
        "delivery_time": "09:00:00",
        "schedule_date": "2024-07-25T22:00:00.000000Z",
        "address": {
            "street": "77869 Donavon Plain Apt. 846",
            "house_number": "95626",
            "house_number_extension": null,
            "postal_code": "72507-6862",
            "city": "East Jaron",
            "latitude": -37.038225,
            "longitude": 104.375589,
            "address_line": "77869 Donavon Plain Apt. 846 95626",
            "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
            "country": {
                "iso_code": "NL",
                "description": "Nederland"
            }
        },
        "scanned_codes": {
            "data": [
                {
                    "type": "task_code",
                    "code_uuid": "9c9d2b9e-a191-4136-a32a-12e404d52934",
                    "scanned_count": 1
                },
                {
                    "type": "schedule_visit_code",
                    "code_uuid": "9c9d2b9e-ae06-4122-92d6-61d8daaa78b8",
                    "scanned_count": 1
                }
            ]
        },
        "status": {
            "status_identifier": "delivered"
        }
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

PUT/PATCH Task

PUT
PATCH
https://api.routelogic.io
/api/v2/tasks/{task_uuid}
requires authentication

Update a task from your company

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
389c540d-c0d1-3d69-97c1-98438e08c500

Body Parameters

Response Fields

Example request:
curl --request PUT \
    "https://api.routelogic.io/api/v2/tasks/389c540d-c0d1-3d69-97c1-98438e08c500" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"delivery\",
    \"external_identifier\": \"qukczlkswtjewjunlwexo\",
    \"external_reference\": \"gtfjvuxktit\",
    \"note\": \"Please deliver at the side door.\",
    \"pending_payment_amount\": 100,
    \"external_link\": \"https:\\/\\/example.com\\/\",
    \"delivery_from_date\": \"2022-02-24\",
    \"start_time\": \"08:00\",
    \"end_time\": \"17:00\",
    \"delivery_duration_minutes\": 9,
    \"return_required\": true,
    \"signature_required\": true,
    \"used_capacity\": 14,
    \"used_capacity_2\": 5,
    \"used_capacity_3\": 1,
    \"notification_template_uuid\": \"343273b4-e7bc-30a6-9b46-a7107d9e1847\",
    \"recurring\": {
        \"period\": \"month\",
        \"interval\": 13,
        \"settings\": \"[\\\"string\\\", \\\"third\\\", \\\"monday\\\"]\",
        \"end_date\": \"2047-06-24\"
    },
    \"address\": {
        \"house_number\": \"12\",
        \"house_number_extension\": \"1A\",
        \"street\": \"LongStreet\",
        \"postal_code\": \"1234AB\",
        \"city\": \"Amsterdam\",
        \"country\": \"NL\",
        \"latitude\": 21,
        \"longitude\": 19
    },
    \"customer\": {
        \"email\": \"[email protected]\",
        \"phone_number\": \"+01 234567890\",
        \"name\": \"Andrew\"
    },
    \"tags\": [
        \"cooled\"
    ],
    \"delivery_date\": \"2024-07-26T12:09:17\"
}"
Example response:
{
    "message": "The given data was invalid.",
    "errors": {
        "external_identifier": [
            "The order number field is required."
        ]
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

DELETE Task

DELETE
https://api.routelogic.io
/api/v2/tasks/{task_uuid}
requires authentication

Delete a task from your company

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
9b137369-1029-3788-83c4-9acae1c69431
Example request:
curl --request DELETE \
    "https://api.routelogic.io/api/v2/tasks/9b137369-1029-3788-83c4-9acae1c69431" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

Task Products

Products are the items that are being delivered or picked up in a task.


GET Products

GET
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/products
requires authentication

Get collection of products of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
21311029-d9c2-3a9d-972d-5b8c646fa35e

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/tasks/21311029-d9c2-3a9d-972d-5b8c646fa35e/products" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9e-a08f-44d6-9113-b1736db0aed7",
            "quantity": "1.00",
            "description": "Test line",
            "unit": "pieces",
            "identifier": "2f7e673aae64ffbe3821016e253b45ed"
        }
    ]
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

POST Products

POST
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/products
requires authentication

Create a or multiple products of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
03c953da-ccea-3e7c-a7f4-1f6613f6a994

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://api.routelogic.io/api/v2/tasks/03c953da-ccea-3e7c-a7f4-1f6613f6a994/products" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": [
        {
            \"identifier\": \"mkryupffawukmqrndzf\",
            \"quantity\": 7,
            \"unit\": \"weight\",
            \"description\": \"Table\"
        }
    ]
}"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9f-64a7-4858-8c10-f2c3917f4370",
            "quantity": 1,
            "description": "Test line",
            "unit": "pieces",
            "identifier": "2f7e673aae64ffbe3821016e253b45ed"
        },
        {
            "uuid": "9c9d2b9f-65b6-4db6-bff6-be94eb214238",
            "quantity": 5,
            "description": "Test line 2",
            "unit": "weight",
            "identifier": "838c87eb890a63944ecc8e83ffb0e4bb"
        }
    ]
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

GET Product

GET
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/products/{product_uuid}
requires authentication

Get a product of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
282c62d3-e425-37c2-a8ee-a39272176604
product_uuid
string

uuid of the corresponding product

Example:
5c4ce58c-d8bb-3295-9b5a-2cf2444104b6

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/tasks/282c62d3-e425-37c2-a8ee-a39272176604/products/5c4ce58c-d8bb-3295-9b5a-2cf2444104b6" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "uuid": "9c9d2b9e-a08f-44d6-9113-b1736db0aed7",
        "quantity": "1.00",
        "description": "Test line",
        "unit": "pieces",
        "identifier": "2f7e673aae64ffbe3821016e253b45ed"
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

PUT/PATCH Product

PUT
PATCH
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/products/{product_uuid}
requires authentication

Update a product of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
54726499-826c-38b5-b4e3-81c58b8acc8b
product_uuid
string

uuid of the corresponding product

Example:
ddf21e7d-343e-3a49-9bf1-e2e42ed75c45

Body Parameters

Response Fields

Example request:
curl --request PUT \
    "https://api.routelogic.io/api/v2/tasks/54726499-826c-38b5-b4e3-81c58b8acc8b/products/ddf21e7d-343e-3a49-9bf1-e2e42ed75c45" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"identifier\": \"zedlmidczgxhs\",
    \"quantity\": 19,
    \"unit\": \"weight\",
    \"description\": \"Table\"
}"
Example response:
{
    "data": {
        "uuid": "9c9d2b9e-a08f-44d6-9113-b1736db0aed7",
        "quantity": "1.00",
        "description": "Test line",
        "unit": "pieces",
        "identifier": "2f7e673aae64ffbe3821016e253b45ed"
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

DELETE Product

DELETE
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/products/{product_uuid}
requires authentication

Delete a product of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
7080ced2-70d3-38ba-9f4d-cd89a8026c14
product_uuid
string

uuid of the corresponding product

Example:
40b9d725-ca08-3710-a1c9-2a6d7860cc48
Example request:
curl --request DELETE \
    "https://api.routelogic.io/api/v2/tasks/7080ced2-70d3-38ba-9f4d-cd89a8026c14/products/40b9d725-ca08-3710-a1c9-2a6d7860cc48" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

Task Codes

Task Codes are the bar/qr codes that are being scanned in a task.


GET Task Codes

GET
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/codes
requires authentication

Get collection of codes of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
b5128bf4-3191-3f62-b4a4-3576fd117a64

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/tasks/b5128bf4-3191-3f62-b4a4-3576fd117a64/codes" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9e-a191-4136-a32a-12e404d52934",
            "amount": 1,
            "code": "TelkZT7YLVVQ2FK7",
            "description": "chair"
        }
    ]
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

POST Task Codes

POST
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/codes
requires authentication

Create a or multiple codes of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
9e4927de-4b48-39ed-ab0f-b9074ce50218

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://api.routelogic.io/api/v2/tasks/9e4927de-4b48-39ed-ab0f-b9074ce50218/codes" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": [
        {
            \"amount\": 1,
            \"code\": \"vdyezgzcaflowpeklxpt\",
            \"description\": \"Table\"
        }
    ]
}"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9f-91d0-4ad9-9741-d53ff2c3d8cd",
            "amount": 1,
            "code": "1234567890",
            "description": "Box"
        },
        {
            "uuid": "9c9d2b9f-9295-4b1d-85b6-1b1bf51b84bb",
            "amount": 2,
            "code": "ABCDEFGHIJ",
            "description": "Table"
        }
    ]
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

GET Task Code

GET
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/codes/{taskCode_uuid}
requires authentication

Get a code of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
d5e3f9b8-2612-3ee9-aed0-f8c35604cfa1
taskCode_uuid
string

uuid of the corresponding task code

Example:
80e1aad6-dec1-3d35-b7d5-014516d5de92

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/tasks/d5e3f9b8-2612-3ee9-aed0-f8c35604cfa1/codes/80e1aad6-dec1-3d35-b7d5-014516d5de92" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "uuid": "9c9d2b9e-a191-4136-a32a-12e404d52934",
        "amount": 1,
        "code": "TelkZT7YLVVQ2FK7",
        "description": "chair"
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

PUT/PATCH Task Code

PUT
PATCH
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/codes/{taskCode_uuid}
requires authentication

Update a code of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
c8cd967d-9373-3295-b32b-1cedf34bd8e8
taskCode_uuid
string

uuid of the corresponding task code

Example:
0246099c-5632-3be9-87ce-37c7d7399df9

Body Parameters

Response Fields

Example request:
curl --request PUT \
    "https://api.routelogic.io/api/v2/tasks/c8cd967d-9373-3295-b32b-1cedf34bd8e8/codes/0246099c-5632-3be9-87ce-37c7d7399df9" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 13,
    \"code\": \"uihxwpzsnz\",
    \"description\": \"Table\"
}"
Example response:
{
    "data": {
        "uuid": "9c9d2b9e-a191-4136-a32a-12e404d52934",
        "amount": 1,
        "code": "TelkZT7YLVVQ2FK7",
        "description": "chair"
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

DELETE Task Code

DELETE
https://api.routelogic.io
/api/v2/tasks/{task_uuid}/codes/{taskCode_uuid}
requires authentication

Delete a code of a task

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

task_uuid
string

uuid of the corresponding task

Example:
d22e73f9-d6d8-3aed-a2d0-1cd9af4d7093
taskCode_uuid
string

uuid of the corresponding task code

Example:
971c9e59-74c4-3b98-bfd1-81df26cbfd5a
Example request:
curl --request DELETE \
    "https://api.routelogic.io/api/v2/tasks/d22e73f9-d6d8-3aed-a2d0-1cd9af4d7093/codes/971c9e59-74c4-3b98-bfd1-81df26cbfd5a" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

Visit Codes

Visit Codes are the bar/qr codes that are being scanned in a visit. A visit is a delivery or pickup attempt for a specific task. Usually, the visit codes are only set when using recurring tasks.


GET Visit Codes

GET
https://api.routelogic.io
/api/v2/visits/{scheduleVisit_uuid}/codes
requires authentication

Get collection of codes of a visit

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

scheduleVisit_uuid
string

uuid of the corresponding scheduled visit

Example:
04b0811a-d4a7-3fe0-a236-bda4b472d4a1

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/visits/04b0811a-d4a7-3fe0-a236-bda4b472d4a1/codes" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9e-ae06-4122-92d6-61d8daaa78b8",
            "amount": 1,
            "code": "LzOTKms3i9FESAno",
            "description": "table"
        }
    ]
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

POST Visit Codes

POST
https://api.routelogic.io
/api/v2/visits/{scheduleVisit_uuid}/codes
requires authentication

Create a or multiple codes of a visit

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

scheduleVisit_uuid
string

uuid of the corresponding scheduled visit

Example:
1dbf9be8-9176-3260-82a8-5bf0e9b63968

Body Parameters

Response Fields

Example request:
curl --request POST \
    "https://api.routelogic.io/api/v2/visits/1dbf9be8-9176-3260-82a8-5bf0e9b63968/codes" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"data\": [
        {
            \"amount\": 19,
            \"code\": \"rokybqmotwob\",
            \"description\": \"Table\"
        }
    ]
}"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9f-e1b7-4404-bcb7-90561064296f",
            "amount": 1,
            "code": "1234567890",
            "description": "Box"
        },
        {
            "uuid": "9c9d2b9f-e22d-4fba-a85b-5a99375761a2",
            "amount": 2,
            "code": "ABCDEFGHIJ",
            "description": "Table"
        }
    ]
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

GET Visit Code

GET
https://api.routelogic.io
/api/v2/visits/{scheduleVisit_uuid}/codes/{scheduleVisitCode_uuid}
requires authentication

Get a code of a visit

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

scheduleVisit_uuid
string

uuid of the corresponding scheduled visit

Example:
17385d28-e4c0-3f91-b8e2-c2c6d440d60d
scheduleVisitCode_uuid
string

uuid of the corresponding scheduled visit code

Example:
b1cbc7c3-d751-3ff0-b6af-9d24713233a0

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/visits/17385d28-e4c0-3f91-b8e2-c2c6d440d60d/codes/b1cbc7c3-d751-3ff0-b6af-9d24713233a0" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "uuid": "9c9d2b9e-ae06-4122-92d6-61d8daaa78b8",
        "amount": 1,
        "code": "LzOTKms3i9FESAno",
        "description": "table"
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

PUT/PATCH Visit Code

PUT
PATCH
https://api.routelogic.io
/api/v2/visits/{scheduleVisit_uuid}/codes/{scheduleVisitCode_uuid}
requires authentication

Update a code of a visit

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

scheduleVisit_uuid
string

uuid of the corresponding scheduled visit

Example:
0e46b54f-3991-38cd-a264-bd0b12badb7e
scheduleVisitCode_uuid
string

uuid of the corresponding scheduled visit code

Example:
73612dcc-4dc6-378c-b400-2992da964f27

Body Parameters

Response Fields

Example request:
curl --request PUT \
    "https://api.routelogic.io/api/v2/visits/0e46b54f-3991-38cd-a264-bd0b12badb7e/codes/73612dcc-4dc6-378c-b400-2992da964f27" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 12,
    \"code\": \"fzkrntpeonjiu\",
    \"description\": \"Table\"
}"
Example response:
{
    "data": {
        "uuid": "9c9d2b9e-ae06-4122-92d6-61d8daaa78b8",
        "amount": 1,
        "code": "LzOTKms3i9FESAno",
        "description": "table"
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

DELETE Visit Code

DELETE
https://api.routelogic.io
/api/v2/visits/{scheduleVisit_uuid}/codes/{scheduleVisitCode_uuid}
requires authentication

Delete a code of a visit

RateLimit (60/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

scheduleVisit_uuid
string

uuid of the corresponding scheduled visit

Example:
36c365c8-2345-330d-b3e4-011fa5f408ad
scheduleVisitCode_uuid
string

uuid of the corresponding scheduled visit code

Example:
8e61556d-1199-39c3-b11f-53bb7f2db184
Example request:
curl --request DELETE \
    "https://api.routelogic.io/api/v2/visits/36c365c8-2345-330d-b3e4-011fa5f408ad/codes/8e61556d-1199-39c3-b11f-53bb7f2db184" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

Webhooks

Webhooks are the events that are being sent to your system.


GET Webhooks

GET
https://api.routelogic.io
/api/v2/webhookEvents
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

filters
object
filters.status_failed
boolean

Filter by failed status (>= 400). False by default.

Example:
1
filters.limit
integer

Amount of items on each page. 24 by default. Must not be greater than 100. Must be at least 1.

Example:
89
filters.page
integer

Page number. 1 by default. Must be at least 1.

Example:
79

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/webhookEvents?filters[status_failed]=1&filters[limit]=89&filters[page]=79" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "uuid": "c95bd3bf-0187-41b6-ac71-0e6587683d98",
            "webhook_url": "https://test.com/webhook/",
            "event_data": {
                "data": {
                    "note": null,
                    "tags": [],
                    "type": "delivery",
                    "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
                    "address": {
                        "city": "East Jaron",
                        "street": "77869 Donavon Plain Apt. 846",
                        "country": {
                            "iso_code": "NL",
                            "description": "Nederland"
                        },
                        "latitude": -37.038225,
                        "longitude": 104.375589,
                        "postal_code": "72507-6862",
                        "address_line": "77869 Donavon Plain Apt. 846 95626",
                        "house_number": "95626",
                        "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                        "house_number_extension": null
                    },
                    "end_time": "17:00:00",
                    "recurring": null,
                    "created_at": "2024-07-26T10:09:16.000000Z",
                    "start_time": "09:00:00",
                    "updated_at": "2024-07-26T10:09:16.000000Z",
                    "delivery_date": "2024-07-26",
                    "external_link": null,
                    "used_capacity": 0,
                    "return_required": false,
                    "used_capacity_2": 0,
                    "used_capacity_3": 0,
                    "return_task_uuid": null,
                    "delivery_from_date": "2024-07-26",
                    "external_reference": null,
                    "signature_required": false,
                    "external_identifier": "WEjL3D",
                    "pending_payment_amount": 0,
                    "delivery_duration_minutes": 0,
                    "notification_template_uuid": null
                },
                "type": "task_created",
                "timestamp": "2024-07-26T12:09:16+02:00"
            },
            "response_status": 200,
            "created_at": "2024-07-26T10:09:16.000000Z",
            "updated_at": "2024-07-26T10:09:16.000000Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "per_page": 24,
        "to": 1,
        "total": 1,
        "next": null,
        "prev": null
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

GET Webhook

GET
https://api.routelogic.io
/api/v2/webhookEvents/{webhookEvent_uuid}
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

webhookEvent_uuid
string

uuid of the corresponding webhook event

Example:
6c09a53d-a9f7-363d-87c1-e06f6cd4359d

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/webhookEvents/6c09a53d-a9f7-363d-87c1-e06f6cd4359d" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "uuid": "c95bd3bf-0187-41b6-ac71-0e6587683d98",
        "webhook_url": "https://test.com/webhook/",
        "event_data": {
            "data": {
                "note": null,
                "tags": [],
                "type": "delivery",
                "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
                "address": {
                    "city": "East Jaron",
                    "street": "77869 Donavon Plain Apt. 846",
                    "country": {
                        "iso_code": "NL",
                        "description": "Nederland"
                    },
                    "latitude": -37.038225,
                    "longitude": 104.375589,
                    "postal_code": "72507-6862",
                    "address_line": "77869 Donavon Plain Apt. 846 95626",
                    "house_number": "95626",
                    "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                    "house_number_extension": null
                },
                "end_time": "17:00:00",
                "recurring": null,
                "created_at": "2024-07-26T10:09:16.000000Z",
                "start_time": "09:00:00",
                "updated_at": "2024-07-26T10:09:16.000000Z",
                "delivery_date": "2024-07-26",
                "external_link": null,
                "used_capacity": 0,
                "return_required": false,
                "used_capacity_2": 0,
                "used_capacity_3": 0,
                "return_task_uuid": null,
                "delivery_from_date": "2024-07-26",
                "external_reference": null,
                "signature_required": false,
                "external_identifier": "WEjL3D",
                "pending_payment_amount": 0,
                "delivery_duration_minutes": 0,
                "notification_template_uuid": null
            },
            "type": "task_created",
            "timestamp": "2024-07-26T12:09:16+02:00"
        },
        "response_status": 200,
        "created_at": "2024-07-26T10:09:16.000000Z",
        "updated_at": "2024-07-26T10:09:16.000000Z"
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

POST Resend Webhook

POST
https://api.routelogic.io
/api/v2/webhookEvents/{webhookEvent_uuid}/resend
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

webhookEvent_uuid
string

uuid of the corresponding webhook event

Example:
5edf5fd3-2f6a-35d3-867c-4abce3910ad8
Example request:
curl --request POST \
    "https://api.routelogic.io/api/v2/webhookEvents/5edf5fd3-2f6a-35d3-867c-4abce3910ad8/resend" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

POST Resend All Failed Webhooks

POST
https://api.routelogic.io
/api/v2/webhookEvents/resend-all-failed
requires authentication

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

webhookEvent_uuid
string

uuid of the corresponding webhook event

Example:
ab6165eb-4dec-3c9b-b252-496ad2a9f60c
Example request:
curl --request POST \
    "https://api.routelogic.io/api/v2/webhookEvents/resend-all-failed" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [],
    "meta": {
        "count": 0
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

Templates

Templates are the predefined messages that are being sent to your customers.


GET Templates

GET
https://api.routelogic.io
/api/v2/templates
requires authentication

Get collection of templates

RateLimit (16/min)

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/templates" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "uuid": "9c9d2b9e-7aa9-44e3-b79d-7043f7f1a280",
            "identifier": "YJ8JRJ33r7vIqzi6",
            "title": "Standaard e-mail en SMS notificatie",
            "default": true,
            "default_pickup": false
        },
        {
            "uuid": "9c9d2b9e-7cdb-4ab2-b546-792ecf7d180b",
            "identifier": "R5W7jLr7c9DPHEwc",
            "title": "Standaard e-mail en SMS notificatie voor ophalen",
            "default": false,
            "default_pickup": true
        }
    ]
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

Schedules

Schedules are the planned routes for your vehicles.


GET Schedules

GET
https://api.routelogic.io
/api/v2/schedules
requires authentication

Get paginated collection of schedules including vehicles and visits from your company

RateLimit (5/min)
If you like to receive schedule information quicker use webhooks read more here

Headers

Authorization
Example:
Bearer {YOUR_API_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

filters
object
filters.from_date
string

Find tasks on this date and later. Combine with to_date to select a specific day or a range. Must be a valid date in the format Y-m-d.

Example:
2024-07-26
filters.to_date
string

Find tasks on this date and earlier. Combine with from_date to select a specific day or a range. Must be a valid date in the format Y-m-d.

Example:
2024-07-26
filters.limit
integer

Amount of items on each page. 24 by default. Must not be greater than 24. Must be at least 1.

Example:
10
filters.page
integer

Must be at least 1.

Example:
40

Response Fields

Example request:
curl --request GET \
    --get "https://api.routelogic.io/api/v2/schedules?filters[from_date]=2024-07-26&filters[to_date]=2024-07-26&filters[limit]=10&filters[page]=40" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "uuid": "4b224998-6230-4fab-91e9-e2089681231c",
            "date": "2024-07-26",
            "description": "Example Schedule 1",
            "total_travel_time": 0,
            "total_distance": 0,
            "notifications_send": false,
            "schedule_vehicles": {
                "data": [
                    {
                        "uuid": "9c9d2b9e-a3ab-4596-a4a8-1aa81371b186",
                        "start_time": "08:00:00",
                        "end_time": "10:00:00",
                        "started_at": "2024-07-26 08:03:00",
                        "finished_at": "2024-07-26 10:02:00",
                        "total_travel_time": 0,
                        "total_distance": 1850,
                        "vehicle": {
                            "uuid": "9c9d2b9e-8527-4f2c-b08e-75791adfe0c3",
                            "licence_plate": "xNCdsMivr",
                            "description": "Van 1"
                        },
                        "user": {
                            "uuid": "9c9d2b9e-9030-4348-b5aa-def05603cd71",
                            "name": "Jerrold Koelpin",
                            "public_name": "Jerrold Koelpin"
                        },
                        "visits": {
                            "data": [
                                {
                                    "uuid": "9c9d2b9e-a4a6-44dd-a02a-f7c9ecc8963b",
                                    "type": "task",
                                    "order_index": 0,
                                    "delivery_time": "09:00:00",
                                    "task": {
                                        "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
                                        "type": "delivery",
                                        "external_identifier": "WEjL3D",
                                        "external_reference": null,
                                        "note": null,
                                        "pending_payment_amount": 0,
                                        "external_link": null,
                                        "delivery_from_date": "2024-07-26",
                                        "delivery_date": "2024-07-26",
                                        "start_time": "09:00:00",
                                        "end_time": "17:00:00",
                                        "delivery_duration_minutes": 0,
                                        "recurring": null,
                                        "return_required": false,
                                        "signature_required": false,
                                        "used_capacity": 0,
                                        "used_capacity_2": 0,
                                        "used_capacity_3": 0,
                                        "updated_at": "2024-07-26T10:09:16.000000Z",
                                        "created_at": "2024-07-26T10:09:16.000000Z",
                                        "tags": [],
                                        "notification_template_uuid": null,
                                        "return_task_uuid": null,
                                        "address": {
                                            "street": "77869 Donavon Plain Apt. 846",
                                            "house_number": "95626",
                                            "house_number_extension": null,
                                            "postal_code": "72507-6862",
                                            "city": "East Jaron",
                                            "latitude": -37.038225,
                                            "longitude": 104.375589,
                                            "address_line": "77869 Donavon Plain Apt. 846 95626",
                                            "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                                            "country": {
                                                "iso_code": "NL",
                                                "description": "Nederland"
                                            }
                                        },
                                        "customer": {
                                            "name": "Bethany Hackett",
                                            "email": null,
                                            "phone_number": null
                                        }
                                    },
                                    "schedule_date": "2024-07-25T22:00:00.000000Z",
                                    "address": {
                                        "street": "77869 Donavon Plain Apt. 846",
                                        "house_number": "95626",
                                        "house_number_extension": null,
                                        "postal_code": "72507-6862",
                                        "city": "East Jaron",
                                        "latitude": -37.038225,
                                        "longitude": 104.375589,
                                        "address_line": "77869 Donavon Plain Apt. 846 95626",
                                        "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                                        "country": {
                                            "iso_code": "NL",
                                            "description": "Nederland"
                                        }
                                    },
                                    "scanned_codes": {
                                        "data": [
                                            {
                                                "type": "task_code",
                                                "code_uuid": "9c9d2b9e-a191-4136-a32a-12e404d52934",
                                                "scanned_count": 1
                                            },
                                            {
                                                "type": "schedule_visit_code",
                                                "code_uuid": "9c9d2b9e-ae06-4122-92d6-61d8daaa78b8",
                                                "scanned_count": 1
                                            }
                                        ]
                                    },
                                    "status": {
                                        "status_identifier": "delivered"
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "per_page": 12,
        "to": 1,
        "total": 1,
        "next": null,
        "prev": null
    }
}
{
    "message": "Access token invalid"
}
{
    "message": "Access token missing"
}
{
    "message": "Required subscription is not active"
}
{
    "message": "This action is unauthorized."
}
{
    "message": "Resource not found"
}
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "The field must be a string"
        ]
    }
}
{
    "message": "Too Many Attempts."
}
{
    "message": "Server Error"
}

Examples

Examples of how to use the API

How to generate an order pick list

It is possible to generate an order pick list for all routes on a specific date. This can be done by sending a GET request to the api/v2/schedules endpoint with the filters.date as a query parameter. The response will show you all the tasks for a specific date in order per vehicle.

How to sync my cms with routelogic (webhooks)

It is possible to sync your CMS with RouteLogic by using webhooks. You can create a webhook in the RouteLogic dashboard that will send a POST request to your CMS every time a task is created, updated or deleted. This way you can keep your CMS up to date with the latest information from RouteLogic. It is possible to set a bearer token for each webhook to make sure that only authorized requests are accepted by your CMS.

Moreover, you van also use the visit_status_updated webhook to get notified when the status of a visit is updated. The internal_note_created webhook can be used to get notified when an internal note is created by a driver.

How to work with barcodes / QR codes

To be able to scan barcodes or QR codes, they have to be linked to a task or visit in RouteLogic. In most cases a code should be linked to a task. This can be done by sending a POST request to the api/v2/tasks/{task_uuid}/codes endpoint with the barcode as a payload. Sometimes a package with the same code should be scanned multiple times. This can be done by adding the amount parameter to the payload.

It is possible to scan a code when delivering an order with the RouteLogic Driver App. The scanned codes will be visible in the manager portal and the scanned codes are also visible in a task endpoint.

Codes and recurring tasks

A recurring task is a task that is repeated on a regular basis. To create a recurring task, you add a recurring object to the payload of the POST request to the api/v2/tasks endpoint. If you want the same code for each delivery, you send a POST request to the api/v2/tasks/{task_uuid}/codes endpoint with the code as a payload. But if you want the code for just a specific delivery, you can add the code to the payload of the POST request to the api/v2/visits/{scheduleVisit_uuid}/codes endpoint. This will make sure that the code is only linked to that specific delivery and not to future deliveries.

Webhooks

This document describes the webhooks that are send by RouteLogic Webhooks are used to notify external systems about events that happen in the system. The webhooks are send to the provided webhook URL in the webhook group. The webhook URL can be set in the company synchronisation settings. It is possible to set multiple webhook URLs and only send specific events.

task_created

This event is send when a task has been created

{
    "type": "task_created",
    "timestamp": "2024-07-26T12:09:17+02:00",
    "data": {
        "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
        "type": "delivery",
        "external_identifier": "WEjL3D",
        "external_reference": null,
        "note": null,
        "pending_payment_amount": 0,
        "external_link": null,
        "delivery_from_date": "2024-07-26",
        "delivery_date": "2024-07-26",
        "start_time": "09:00:00",
        "end_time": "17:00:00",
        "delivery_duration_minutes": 0,
        "recurring": null,
        "return_required": false,
        "signature_required": false,
        "used_capacity": 0,
        "used_capacity_2": 0,
        "used_capacity_3": 0,
        "updated_at": "2024-07-26T10:09:16.000000Z",
        "created_at": "2024-07-26T10:09:16.000000Z",
        "tags": [],
        "notification_template_uuid": null,
        "return_task_uuid": null,
        "address": {
            "street": "77869 Donavon Plain Apt. 846",
            "house_number": "95626",
            "house_number_extension": null,
            "postal_code": "72507-6862",
            "city": "East Jaron",
            "latitude": -37.038225,
            "longitude": 104.375589,
            "address_line": "77869 Donavon Plain Apt. 846 95626",
            "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
            "country": {
                "iso_code": "NL",
                "description": "Nederland"
            }
        }
    }
}

task_updated

This event is send when a task has been updated

{
    "type": "task_updated",
    "timestamp": "2024-07-26T12:09:17+02:00",
    "data": {
        "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
        "type": "delivery",
        "external_identifier": "WEjL3D",
        "external_reference": null,
        "note": null,
        "pending_payment_amount": 0,
        "external_link": null,
        "delivery_from_date": "2024-07-26",
        "delivery_date": "2024-07-26",
        "start_time": "09:00:00",
        "end_time": "17:00:00",
        "delivery_duration_minutes": 0,
        "recurring": null,
        "return_required": false,
        "signature_required": false,
        "used_capacity": 0,
        "used_capacity_2": 0,
        "used_capacity_3": 0,
        "updated_at": "2024-07-26T10:09:16.000000Z",
        "created_at": "2024-07-26T10:09:16.000000Z",
        "tags": [],
        "notification_template_uuid": null,
        "return_task_uuid": null,
        "address": {
            "street": "77869 Donavon Plain Apt. 846",
            "house_number": "95626",
            "house_number_extension": null,
            "postal_code": "72507-6862",
            "city": "East Jaron",
            "latitude": -37.038225,
            "longitude": 104.375589,
            "address_line": "77869 Donavon Plain Apt. 846 95626",
            "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
            "country": {
                "iso_code": "NL",
                "description": "Nederland"
            }
        }
    }
}

task_deleted

This event is send when a task has been deleted

{
    "type": "task_deleted",
    "timestamp": "2024-07-26T12:09:17+02:00",
    "data": {
        "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
        "type": "delivery",
        "external_identifier": "WEjL3D",
        "external_reference": null,
        "note": null,
        "pending_payment_amount": 0,
        "external_link": null,
        "delivery_from_date": "2024-07-26",
        "delivery_date": "2024-07-26",
        "start_time": "09:00:00",
        "end_time": "17:00:00",
        "delivery_duration_minutes": 0,
        "recurring": null,
        "return_required": false,
        "signature_required": false,
        "used_capacity": 0,
        "used_capacity_2": 0,
        "used_capacity_3": 0,
        "updated_at": "2024-07-26T10:09:16.000000Z",
        "created_at": "2024-07-26T10:09:16.000000Z",
        "tags": [],
        "notification_template_uuid": null,
        "return_task_uuid": null,
        "address": {
            "street": "77869 Donavon Plain Apt. 846",
            "house_number": "95626",
            "house_number_extension": null,
            "postal_code": "72507-6862",
            "city": "East Jaron",
            "latitude": -37.038225,
            "longitude": 104.375589,
            "address_line": "77869 Donavon Plain Apt. 846 95626",
            "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
            "country": {
                "iso_code": "NL",
                "description": "Nederland"
            }
        }
    }
}

visit_status_updated

This event is send when a visit status has been updated

{
    "type": "visit_status_updated",
    "timestamp": "2024-07-26T12:09:17+02:00",
    "data": {
        "uuid": "9c9d2b9e-a4a6-44dd-a02a-f7c9ecc8963b",
        "type": "task",
        "order_index": 0,
        "delivery_time": "09:00:00",
        "task": {
            "uuid": "9c9d2b9e-9431-4d09-9c64-a83598e9a834",
            "type": "delivery",
            "external_identifier": "WEjL3D",
            "external_reference": null,
            "note": null,
            "pending_payment_amount": 0,
            "external_link": null,
            "delivery_from_date": "2024-07-26",
            "delivery_date": "2024-07-26",
            "start_time": "09:00:00",
            "end_time": "17:00:00",
            "delivery_duration_minutes": 0,
            "recurring": null,
            "return_required": false,
            "signature_required": false,
            "used_capacity": 0,
            "used_capacity_2": 0,
            "used_capacity_3": 0,
            "updated_at": "2024-07-26T10:09:16.000000Z",
            "created_at": "2024-07-26T10:09:16.000000Z",
            "tags": [],
            "notification_template_uuid": null,
            "return_task_uuid": null,
            "address": {
                "street": "77869 Donavon Plain Apt. 846",
                "house_number": "95626",
                "house_number_extension": null,
                "postal_code": "72507-6862",
                "city": "East Jaron",
                "latitude": -37.038225,
                "longitude": 104.375589,
                "address_line": "77869 Donavon Plain Apt. 846 95626",
                "full_address_line": "77869 Donavon Plain Apt. 846 95626, 72507-6862, East Jaron",
                "country": {
                    "iso_code": "NL",
                    "description": "Nederland"
                }
            },
            "customer": {
                "name": "Bethany Hackett",
                "email": null,
                "phone_number": null
            }
        },
        "schedule_date": "2024-07-25T22:00:00.000000Z",
        "status": {
            "status_identifier": "delivered"
        }
    }
}

internal_note_created

This event is send when an internal note has been created

{
    "type": "internal_note_created",
    "timestamp": "2024-07-26T12:09:17+02:00",
    "data": {
        "message": "This is an example message. Drivers use this to communicate with their managers",
        "visit": {
            "uuid": "9c9d2b9e-a4a6-44dd-a02a-f7c9ecc8963b",
            "type": "task",
            "order_index": 0,
            "delivery_time": "09:00:00",
            "schedule_date": "2024-07-25T22:00:00.000000Z",
            "status": {
                "status_identifier": "delivered"
            }
        }
    }
}