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).
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.
Tasks are the deliveries or pickups that need to be done by your drivers.
Get paginated collection of tasks from your company
RateLimit (1/min)
If you like to receive tasks quicker use webhooks
read more here
Search for specific tasks. (customer name, city, street, house number, postal, external identifier and external reference). Must not be greater than 128 characters.
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
.
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
.
Filter on specific task types.
delivery
pickup
recurring
Filter on tasks with a specific status.
planned
not_planned
delivered
delivery_failed
Include or only return deleted items in the response. Leave empty to not show deleted items at all.
include
only
Amount of items on each page. 24 by default. Must not be greater than 100. Must be at least 1.
Must be at least 1.
curl --request GET \
--get "https://api.routelogic.io/api/v2/tasks?filters[search]=Amsterdam&filters[from_date]=2025-01-20&filters[to_date]=2025-01-20&filters[types][]=pickup&filters[statuses][]=not_planned&filters[deleted]=include&filters[limit]=37&filters[page]=82" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "67P5za",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"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": "2025-01-20T13:08:52.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null,
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"customer": {
"name": "Audrey Walsh",
"email": null,
"phone_number": null
},
"next_visit": {
"uuid": "9e037f06-e46d-465a-a9cc-aeb874dc3eab",
"type": "task",
"order_index": 0,
"delivery_time": "09:00:00",
"schedule_date": "2025-01-19T23:00:00.000000Z",
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"scanned_codes": {
"data": [
{
"type": "task_code",
"code_uuid": "9e037f06-e210-4a08-99d6-7f68ce6995d4",
"scanned_count": 1
},
{
"type": "schedule_visit_code",
"code_uuid": "9e037f06-ecf0-4ed9-a466-48f1b1ec2d5d",
"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
}
}
Create a task for your company. If the task already exists it will be updated based on the external identifier.
RateLimit (60/min)
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\": \"pickup\",
\"external_identifier\": \"pgiselepnrkgeeomnfcoqpla\",
\"external_reference\": \"dtfpklraumdibvjbegk\",
\"note\": \"Please deliver at the side door.\",
\"pending_payment_amount\": 100,
\"external_link\": \"https:\\/\\/example.com\\/\",
\"delivery_from_date\": \"2015-04-16\",
\"start_time\": \"08:00\",
\"end_time\": \"17:00\",
\"delivery_duration_minutes\": 19,
\"return_required\": true,
\"signature_required\": true,
\"used_capacity\": 7,
\"used_capacity_2\": 15,
\"used_capacity_3\": 24,
\"notification_template_uuid\": \"09d39b1f-c153-3408-9161-ea5d363c01a9\",
\"recurring\": {
\"period\": \"month\",
\"interval\": 9,
\"settings\": \"[\\\"string\\\", \\\"third\\\", \\\"monday\\\"]\",
\"end_date\": \"2114-12-22\"
},
\"address\": {
\"house_number\": \"12\",
\"house_number_extension\": \"1A\",
\"street\": \"LongStreet\",
\"postal_code\": \"1234AB\",
\"city\": \"Amsterdam\",
\"country\": \"NL\",
\"latitude\": 7,
\"longitude\": 2
},
\"customer\": {
\"email\": \"[email protected]\",
\"phone_number\": \"+01 234567890\",
\"name\": \"Andrew\"
},
\"tags\": [
\"cooled\"
],
\"delivery_date\": \"2025-01-20T14:08:53\"
}"
{
"uuid": "9e037f07-ce87-4e18-81dc-7aea0debaabf",
"type": "delivery",
"external_identifier": "RLdz5RYaLelN",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"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": "2025-01-20T13:08:53.000000Z",
"created_at": "2025-01-20T13:08:53.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
}
Get a task from your company
RateLimit (60/min)
uuid of the corresponding task
curl --request GET \
--get "https://api.routelogic.io/api/v2/tasks/16a251a3-d082-33cf-92d0-ba042135aac9" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "67P5za",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"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": "2025-01-20T13:08:52.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null,
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"customer": {
"name": "Audrey Walsh",
"email": null,
"phone_number": null
},
"next_visit": {
"uuid": "9e037f06-e46d-465a-a9cc-aeb874dc3eab",
"type": "task",
"order_index": 0,
"delivery_time": "09:00:00",
"schedule_date": "2025-01-19T23:00:00.000000Z",
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"scanned_codes": {
"data": [
{
"type": "task_code",
"code_uuid": "9e037f06-e210-4a08-99d6-7f68ce6995d4",
"scanned_count": 1
},
{
"type": "schedule_visit_code",
"code_uuid": "9e037f06-ecf0-4ed9-a466-48f1b1ec2d5d",
"scanned_count": 1
}
]
},
"status": {
"status_identifier": "delivered"
}
}
}
Update a task from your company
RateLimit (60/min)
uuid of the corresponding task
curl --request PUT \
"https://api.routelogic.io/api/v2/tasks/225a62eb-be77-36d7-b002-bd5ee497c420" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"type\": \"pickup\",
\"external_identifier\": \"fnvlbujqajbicedsrdhaf\",
\"external_reference\": \"pgfduw\",
\"note\": \"Please deliver at the side door.\",
\"pending_payment_amount\": 100,
\"external_link\": \"https:\\/\\/example.com\\/\",
\"delivery_from_date\": \"2005-05-14\",
\"start_time\": \"08:00\",
\"end_time\": \"17:00\",
\"delivery_duration_minutes\": 17,
\"return_required\": true,
\"signature_required\": false,
\"used_capacity\": 22,
\"used_capacity_2\": 16,
\"used_capacity_3\": 20,
\"notification_template_uuid\": \"50518e3e-2c9a-3b5d-b113-8dba10b4e81b\",
\"recurring\": {
\"period\": \"month\",
\"interval\": 3,
\"settings\": \"[\\\"string\\\", \\\"third\\\", \\\"monday\\\"]\",
\"end_date\": \"2059-11-22\"
},
\"address\": {
\"house_number\": \"12\",
\"house_number_extension\": \"1A\",
\"street\": \"LongStreet\",
\"postal_code\": \"1234AB\",
\"city\": \"Amsterdam\",
\"country\": \"NL\",
\"latitude\": 14,
\"longitude\": 24
},
\"customer\": {
\"email\": \"[email protected]\",
\"phone_number\": \"+01 234567890\",
\"name\": \"Andrew\"
},
\"tags\": [
\"cooled\"
],
\"delivery_date\": \"2025-01-20T14:08:53\"
}"
{
"message": "Connection refused",
"exception": "RedisException",
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php",
"line": 159,
"trace": [
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php",
"line": 159,
"function": "connect",
"class": "Redis",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php",
"line": 88,
"function": "establishConnection",
"class": "Illuminate\\Redis\\Connectors\\PhpRedisConnector",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Support/helpers.php",
"line": 307,
"function": "Illuminate\\Redis\\Connectors\\{closure}",
"class": "Illuminate\\Redis\\Connectors\\PhpRedisConnector",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php",
"line": 79,
"function": "tap"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php",
"line": 33,
"function": "createClient",
"class": "Illuminate\\Redis\\Connectors\\PhpRedisConnector",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php",
"line": 38,
"function": "Illuminate\\Redis\\Connectors\\{closure}",
"class": "Illuminate\\Redis\\Connectors\\PhpRedisConnector",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php",
"line": 110,
"function": "connect",
"class": "Illuminate\\Redis\\Connectors\\PhpRedisConnector",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php",
"line": 91,
"function": "resolve",
"class": "Illuminate\\Redis\\RedisManager",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php",
"line": 330,
"function": "connection",
"class": "Illuminate\\Redis\\RedisManager",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php",
"line": 65,
"function": "connection",
"class": "Illuminate\\Cache\\RedisStore",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Cache/Repository.php",
"line": 98,
"function": "get",
"class": "Illuminate\\Cache\\RedisStore",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Cache/Repository.php",
"line": 69,
"function": "get",
"class": "Illuminate\\Cache\\Repository",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Jobs/SpaApi/InvalidateSchedule.php",
"line": 32,
"function": "has",
"class": "Illuminate\\Cache\\Repository",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "App\\Jobs\\SpaApi\\InvalidateSchedule",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 41,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 93,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 35,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 662,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php",
"line": 128,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Illuminate\\Bus\\{closure}",
"class": "Illuminate\\Bus\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php",
"line": 132,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php",
"line": 123,
"function": "dispatchNow",
"class": "Illuminate\\Bus\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Illuminate\\Queue\\{closure}",
"class": "Illuminate\\Queue\\CallQueuedHandler",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php",
"line": 122,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php",
"line": 70,
"function": "dispatchThroughMiddleware",
"class": "Illuminate\\Queue\\CallQueuedHandler",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php",
"line": 102,
"function": "call",
"class": "Illuminate\\Queue\\CallQueuedHandler",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php",
"line": 43,
"function": "fire",
"class": "Illuminate\\Queue\\Jobs\\Job",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php",
"line": 254,
"function": "push",
"class": "Illuminate\\Queue\\SyncQueue",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php",
"line": 230,
"function": "pushCommandToQueue",
"class": "Illuminate\\Bus\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php",
"line": 77,
"function": "dispatchToQueue",
"class": "Illuminate\\Bus\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php",
"line": 193,
"function": "dispatch",
"class": "Illuminate\\Bus\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php",
"line": 19,
"function": "__destruct",
"class": "Illuminate\\Foundation\\Bus\\PendingDispatch",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Models/Task.php",
"line": 899,
"function": "dispatch",
"class": "App\\Jobs\\SpaApi\\InvalidateSchedule",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Models/Task.php",
"line": 76,
"function": "invalidateSchedules",
"class": "App\\Models\\Task",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php",
"line": 458,
"function": "App\\Models\\{closure}",
"class": "App\\Models\\Task",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php",
"line": 286,
"function": "Illuminate\\Events\\{closure}",
"class": "Illuminate\\Events\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php",
"line": 266,
"function": "invokeListeners",
"class": "Illuminate\\Events\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php",
"line": 215,
"function": "dispatch",
"class": "Illuminate\\Events\\Dispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 1177,
"function": "fireModelEvent",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 1150,
"function": "finishSave",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
"line": 991,
"function": "save",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Http/Controllers/Api/V2/Tasks/TaskController.php",
"line": 310,
"function": "update",
"class": "Illuminate\\Database\\Eloquent\\Model",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "update",
"class": "App\\Http\\Controllers\\Api\\V2\\Tasks\\TaskController",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 43,
"function": "callAction",
"class": "Illuminate\\Routing\\Controller",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 259,
"function": "dispatch",
"class": "Illuminate\\Routing\\ControllerDispatcher",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 205,
"function": "runController",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 806,
"function": "run",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Http/Middleware/CompanyAuth.php",
"line": 52,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\CompanyAuth",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Http/Middleware/ForcedApiLocale.php",
"line": 14,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\ForcedApiLocale",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/inspector-apm/inspector-laravel/src/Middleware/WebRequestMonitoring.php",
"line": 38,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Inspector\\Laravel\\Middleware\\WebRequestMonitoring",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Http/Middleware/CompanyPermission.php",
"line": 24,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\CompanyPermission",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Http/Middleware/ForcedLocale.php",
"line": 30,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\ForcedLocale",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Http/Middleware/RouteLogicEngineToggle.php",
"line": 20,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\RouteLogicEngineToggle",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
"line": 50,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 159,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 125,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 87,
"function": "handleRequestUsingNamedLimiter",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 25,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Laravel\\Sanctum\\Http\\Middleware\\{closure}",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 24,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Http/Middleware/ForcedJsonResponse.php",
"line": 14,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\ForcedJsonResponse",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 805,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 784,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 748,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 737,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 200,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/nova/src/Http/Middleware/ServeNova.php",
"line": 23,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Laravel\\Nova\\Http\\Middleware\\ServeNova",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php",
"line": 59,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Barryvdh\\Debugbar\\Middleware\\InjectDebugbar",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 40,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 99,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 62,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 39,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/monicahq/laravel-cloudflare/src/Http/Middleware/TrustProxies.php",
"line": 25,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Monicahq\\Cloudflare\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 175,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 144,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php",
"line": 585,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php",
"line": 551,
"function": "call",
"class": "App\\Support\\Scribe\\ScribeRequest",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php",
"line": 449,
"function": "json",
"class": "App\\Support\\Scribe\\ScribeRequest",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Console/Commands/ScribeGenerate.php",
"line": 237,
"function": "patchJson",
"class": "App\\Support\\Scribe\\ScribeRequest",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/app/Console/Commands/ScribeGenerate.php",
"line": 86,
"function": "responsesForV2",
"class": "App\\Console\\Commands\\ScribeGenerate",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "App\\Console\\Commands\\ScribeGenerate",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 41,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 93,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 35,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 662,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 211,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/symfony/console/Command/Command.php",
"line": 326,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 180,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/symfony/console/Application.php",
"line": 1096,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/symfony/console/Application.php",
"line": 324,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/symfony/console/Application.php",
"line": 175,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 201,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/builds/routelogic/api.routelogic.io/artisan",
"line": 35,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Delete a task from your company
RateLimit (60/min)
uuid of the corresponding task
curl --request DELETE \
"https://api.routelogic.io/api/v2/tasks/745c69a7-487c-3b13-9ba4-a95def6b440c" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
Products are the items that are being delivered or picked up in a task.
Get collection of products of a task
RateLimit (60/min)
uuid of the corresponding task
curl --request GET \
--get "https://api.routelogic.io/api/v2/tasks/978ae920-a9b9-3aa6-8c32-e2923720296a/products" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"uuid": "9e037f06-e138-4bff-8bf8-bfc285c2f588",
"quantity": "1.00",
"description": "Test line",
"unit": "pieces",
"identifier": "2f7e673aae64ffbe3821016e253b45ed"
}
]
}
Create a or multiple products of a task
RateLimit (60/min)
uuid of the corresponding task
curl --request POST \
"https://api.routelogic.io/api/v2/tasks/61767039-e595-3df7-9a90-a2ff2fefb9a4/products" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": [
{
\"identifier\": \"byeqqreyfnykatxkeztfqpbv\",
\"quantity\": 10,
\"unit\": \"weight\",
\"description\": \"Table\"
}
]
}"
{
"data": [
{
"uuid": "9e037f08-10c3-404c-a396-23472354d2f1",
"quantity": 1,
"description": "Test line",
"unit": "pieces",
"identifier": "2f7e673aae64ffbe3821016e253b45ed"
},
{
"uuid": "9e037f08-1155-4888-bfde-09d114bb5282",
"quantity": 5,
"description": "Test line 2",
"unit": "weight",
"identifier": "838c87eb890a63944ecc8e83ffb0e4bb"
}
]
}
Get a product of a task
RateLimit (60/min)
uuid of the corresponding task
uuid of the corresponding product
curl --request GET \
--get "https://api.routelogic.io/api/v2/tasks/c1edbc16-ea2c-3277-b49a-32fa634250a7/products/d0e0845e-c94d-3ca1-85e7-adc09ac85f33" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"uuid": "9e037f06-e138-4bff-8bf8-bfc285c2f588",
"quantity": "1.00",
"description": "Test line",
"unit": "pieces",
"identifier": "2f7e673aae64ffbe3821016e253b45ed"
}
}
Update a product of a task
RateLimit (60/min)
uuid of the corresponding task
uuid of the corresponding product
curl --request PUT \
"https://api.routelogic.io/api/v2/tasks/bab52bc8-9a40-369a-8c32-ec30dbcf22ca/products/de4c4a79-450d-3905-945d-d9d3a44b0f04" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"identifier\": \"r\",
\"quantity\": 12,
\"unit\": \"weight\",
\"description\": \"Table\"
}"
{
"data": {
"uuid": "9e037f06-e138-4bff-8bf8-bfc285c2f588",
"quantity": "1.00",
"description": "Test line",
"unit": "pieces",
"identifier": "2f7e673aae64ffbe3821016e253b45ed"
}
}
Delete a product of a task
RateLimit (60/min)
uuid of the corresponding task
uuid of the corresponding product
curl --request DELETE \
"https://api.routelogic.io/api/v2/tasks/c152cbd0-c41b-374a-aa7d-d46ebbfd6b15/products/bfd8ae6e-5c7e-3fe6-8202-e023cb1c13a7" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
RateLimit (60/min)
uuid of the corresponding task
curl --request DELETE \
"https://api.routelogic.io/api/v2/tasks/fb559fbc-28d8-3bcb-b48f-7a32fb656a36/products" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
Task Codes are the bar/qr codes that are being scanned in a task.
Get collection of codes of a task
RateLimit (60/min)
uuid of the corresponding task
curl --request GET \
--get "https://api.routelogic.io/api/v2/tasks/acaaa53c-7f78-3a05-9522-88fdc51c41cb/codes" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"uuid": "9e037f06-e210-4a08-99d6-7f68ce6995d4",
"amount": 1,
"code": "MPICnjl07Q65tfF6",
"description": "table"
}
]
}
Create a or multiple codes of a task
RateLimit (60/min)
uuid of the corresponding task
curl --request POST \
"https://api.routelogic.io/api/v2/tasks/41385f10-abec-3ced-b87e-fe3197ddf751/codes" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": [
{
\"amount\": 2,
\"code\": \"ywumln\",
\"description\": \"Table\"
}
]
}"
{
"data": [
{
"uuid": "9e037f08-281e-4bcb-b6c4-034370083158",
"amount": 1,
"code": "1234567890",
"description": "Box"
},
{
"uuid": "9e037f08-2883-4813-992a-584d5ee21eb2",
"amount": 2,
"code": "ABCDEFGHIJ",
"description": "Table"
}
]
}
Get a code of a task
RateLimit (60/min)
uuid of the corresponding task
uuid of the corresponding task code
curl --request GET \
--get "https://api.routelogic.io/api/v2/tasks/9edc32fb-568e-3b42-9c57-0d11c7bb751b/codes/a66df1bf-8564-3564-a8e5-aacd8d7d7cae" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"uuid": "9e037f06-e210-4a08-99d6-7f68ce6995d4",
"amount": 1,
"code": "MPICnjl07Q65tfF6",
"description": "table"
}
}
Update a code of a task
RateLimit (60/min)
uuid of the corresponding task
uuid of the corresponding task code
curl --request PUT \
"https://api.routelogic.io/api/v2/tasks/e22d8377-a6a0-3932-9380-0172d4018975/codes/caaec9fb-7ca1-3a2c-ac62-dec41a22916a" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"amount\": 12,
\"code\": \"zldgantzsdngr\",
\"description\": \"Table\"
}"
{
"data": {
"uuid": "9e037f06-e210-4a08-99d6-7f68ce6995d4",
"amount": 1,
"code": "MPICnjl07Q65tfF6",
"description": "table"
}
}
Delete a code of a task
RateLimit (60/min)
uuid of the corresponding task
uuid of the corresponding task code
curl --request DELETE \
"https://api.routelogic.io/api/v2/tasks/fea1c6e6-b89d-3b6a-b5a6-ac774edf6eb7/codes/46399722-4306-3cff-9a61-195d62243856" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
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 collection of codes of a visit
RateLimit (60/min)
uuid of the corresponding scheduled visit
curl --request GET \
--get "https://api.routelogic.io/api/v2/visits/ffec4843-b3ba-39bb-b28e-51acc429820a/codes" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"uuid": "9e037f06-ecf0-4ed9-a466-48f1b1ec2d5d",
"amount": 1,
"code": "M7rxCqWAb970VrI4",
"description": "chair"
}
]
}
Create a or multiple codes of a visit
RateLimit (60/min)
uuid of the corresponding scheduled visit
curl --request POST \
"https://api.routelogic.io/api/v2/visits/6de67590-ced9-32c9-b93b-fd865fe55d1a/codes" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data\": [
{
\"amount\": 10,
\"code\": \"hotlkflvufndjmaoaphhx\",
\"description\": \"Table\"
}
]
}"
{
"data": [
{
"uuid": "9e037f08-8f95-427e-9cf2-c1871e6a4427",
"amount": 1,
"code": "1234567890",
"description": "Box"
},
{
"uuid": "9e037f08-8fee-46d0-a407-e70ac2245694",
"amount": 2,
"code": "ABCDEFGHIJ",
"description": "Table"
}
]
}
Get a code of a visit
RateLimit (60/min)
uuid of the corresponding scheduled visit
uuid of the corresponding scheduled visit code
curl --request GET \
--get "https://api.routelogic.io/api/v2/visits/f9c33b14-7fce-315e-8f3f-e295fe73b517/codes/ae8b0e64-9ff8-38d8-bd34-f5a1b4316bfb" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"uuid": "9e037f06-ecf0-4ed9-a466-48f1b1ec2d5d",
"amount": 1,
"code": "M7rxCqWAb970VrI4",
"description": "chair"
}
}
Update a code of a visit
RateLimit (60/min)
uuid of the corresponding scheduled visit
uuid of the corresponding scheduled visit code
curl --request PUT \
"https://api.routelogic.io/api/v2/visits/92080334-a83c-33ba-9c67-c876c3e48c37/codes/206f8ff3-d771-3749-a432-f7cac643cd59" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"amount\": 21,
\"code\": \"dgnbeslfzwsndquseyivdma\",
\"description\": \"Table\"
}"
{
"data": {
"uuid": "9e037f06-ecf0-4ed9-a466-48f1b1ec2d5d",
"amount": 1,
"code": "M7rxCqWAb970VrI4",
"description": "chair"
}
}
Delete a code of a visit
RateLimit (60/min)
uuid of the corresponding scheduled visit
uuid of the corresponding scheduled visit code
curl --request DELETE \
"https://api.routelogic.io/api/v2/visits/c84c6209-cca2-3ff3-a715-46d46a641c96/codes/446a093d-6f53-30b1-9396-78b0b298a6f2" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
Webhook groups are the configured webhooks between Routelogic and your applications.
Get paginated collection of webhook groups from your company
RateLimit (60/min)
Amount of items on each page. 24 by default. Must not be greater than 100. Must be at least 1.
Page number. 1 by default. Must be at least 1.
curl --request GET \
--get "https://api.routelogic.io/api/v2/webhookGroups?filters[limit]=18&filters[page]=39" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"uuid": "9e037f06-e8ca-4c93-8fda-45d954078d2d",
"name": "Webhook group 1",
"description": "Task webhook group 1",
"webhook_url": "https://test.com/webhook/",
"events": []
},
{
"uuid": "9e037f06-f861-4f3d-9ede-75b14e93acb7",
"name": "Webhook group 2",
"description": "task webhook group 2",
"webhook_url": "https://test.com/webhook/",
"events": [
"task_created"
]
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 24,
"to": 2,
"total": 2,
"next": null,
"prev": null
}
}
Create a webhook group for your company.
RateLimit (60/min)
curl --request POST \
"https://api.routelogic.io/api/v2/webhookGroups" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"webhook\",
\"description\": \"Webhook for listening to when a task is created\",
\"webhook_url\": \"https:\\/\\/example.com\\/webhook\",
\"webhook_secret\": \"token\",
\"events\": [
\"internal_note_created\"
]
}"
{
"data": {
"uuid": "9e037f08-4ce4-4daf-8896-0271a7b8c8f7",
"name": "Demo webhook group",
"description": "send to my api",
"webhook_url": "https://routelogic.io",
"events": [
"task_created",
"task_updated"
]
}
}
Get a webhook group from your company
RateLimit (60/min)
uuid of the corresponding webhook group
curl --request GET \
--get "https://api.routelogic.io/api/v2/webhookGroups/b437de08-a5fc-3ca7-8206-7427bfab1be0" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"uuid": "9e037f06-f861-4f3d-9ede-75b14e93acb7",
"name": "Webhook group 2",
"description": "task webhook group 2",
"webhook_url": "https://test.com/webhook/",
"events": [
"task_created"
]
}
}
Update a webhook group from your company
RateLimit (60/min)
uuid of the corresponding webhook group
curl --request PUT \
"https://api.routelogic.io/api/v2/webhookGroups/329983f0-208b-31b6-bc04-65d076435d0e" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"webhook\",
\"description\": \"Webhook for listening to when a task is created\",
\"webhook_url\": \"https:\\/\\/example.com\\/webhook\",
\"webhook_secret\": \"token\",
\"events\": [
\"task_deleted\"
]
}"
{
"data": {
"uuid": "9e037f06-f861-4f3d-9ede-75b14e93acb7",
"name": "Webhook group 2",
"description": "task webhook group 2",
"webhook_url": "https://test.com/webhook/",
"events": [
"task_created"
]
}
}
Delete a webhook group from your company
RateLimit (60/min)
uuid of the corresponding webhook group
curl --request DELETE \
"https://api.routelogic.io/api/v2/webhookGroups/a0284ae4-9ee7-3be1-95f3-3c350b33e232" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
Webhooks are the events that are being sent to your system.
Filter by failed status (>= 400). False by default.
Amount of items on each page. 24 by default. Must not be greater than 100. Must be at least 1.
Page number. 1 by default. Must be at least 1.
curl --request GET \
--get "https://api.routelogic.io/api/v2/webhookEvents?filters[status_failed]=1&filters[limit]=84&filters[page]=23" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"uuid": "35167dac-f1fc-44ea-b642-11daaefec65f",
"webhook_url": "https://test.com/webhook/",
"event_data": {
"data": {
"note": null,
"tags": [],
"type": "delivery",
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"end_time": "17:00:00",
"recurring": null,
"created_at": "2025-01-20T13:08:52.000000Z",
"start_time": "09:00:00",
"updated_at": "2025-01-20T13:08:52.000000Z",
"delivery_date": "2025-01-20",
"external_link": null,
"used_capacity": 0,
"return_required": null,
"used_capacity_2": 0,
"used_capacity_3": 0,
"return_task_uuid": null,
"delivery_from_date": "2025-01-20",
"external_reference": null,
"signature_required": null,
"external_identifier": "67P5za",
"pending_payment_amount": 0,
"delivery_duration_minutes": 0,
"notification_template_uuid": null
},
"type": "task_created",
"timestamp": "2025-01-20T14:08:52+01:00"
},
"response_status": 200,
"created_at": "2025-01-20T13:08:52.000000Z",
"updated_at": "2025-01-20T13:08:52.000000Z"
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 24,
"to": 1,
"total": 1,
"next": null,
"prev": null
}
}
uuid of the corresponding webhook event
curl --request GET \
--get "https://api.routelogic.io/api/v2/webhookEvents/2b53f683-5d1e-3ae0-9619-de83d7b8ff71" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"uuid": "35167dac-f1fc-44ea-b642-11daaefec65f",
"webhook_url": "https://test.com/webhook/",
"event_data": {
"data": {
"note": null,
"tags": [],
"type": "delivery",
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"end_time": "17:00:00",
"recurring": null,
"created_at": "2025-01-20T13:08:52.000000Z",
"start_time": "09:00:00",
"updated_at": "2025-01-20T13:08:52.000000Z",
"delivery_date": "2025-01-20",
"external_link": null,
"used_capacity": 0,
"return_required": null,
"used_capacity_2": 0,
"used_capacity_3": 0,
"return_task_uuid": null,
"delivery_from_date": "2025-01-20",
"external_reference": null,
"signature_required": null,
"external_identifier": "67P5za",
"pending_payment_amount": 0,
"delivery_duration_minutes": 0,
"notification_template_uuid": null
},
"type": "task_created",
"timestamp": "2025-01-20T14:08:52+01:00"
},
"response_status": 200,
"created_at": "2025-01-20T13:08:52.000000Z",
"updated_at": "2025-01-20T13:08:52.000000Z"
}
}
uuid of the corresponding webhook event
curl --request POST \
"https://api.routelogic.io/api/v2/webhookEvents/413b1bb9-ccb2-3ed2-a9ee-bbe99b6eedca/resend" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
[Empty response]
uuid of the corresponding webhook event
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"
{
"data": [],
"meta": {
"count": 0
}
}
Templates are the predefined messages that are being sent to your customers.
Get collection of templates
RateLimit (16/min)
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"
{
"data": [
{
"uuid": "9e037f06-c05e-40dc-b666-0ce64b0da98f",
"identifier": "WlOjZwpYO31AKyNx",
"title": "Standaard e-mail en SMS notificatie voor bezorgen",
"default": true,
"default_pickup": false
},
{
"uuid": "9e037f06-c2a7-42d7-9249-a6ba205c17c3",
"identifier": "YdfiWhZJHPmKsW7y",
"title": "Standaard e-mail en SMS notificatie voor ophalen",
"default": false,
"default_pickup": true
}
]
}
Schedules are the planned routes for your vehicles.
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
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
.
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
.
Amount of items on each page. 24 by default. Must not be greater than 24. Must be at least 1.
Must be at least 1.
curl --request GET \
--get "https://api.routelogic.io/api/v2/schedules?filters[from_date]=2025-01-20&filters[to_date]=2025-01-20&filters[limit]=52&filters[page]=90" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": [
{
"uuid": "27ca256e-7e23-42bf-b26f-6df19f6b5cb3",
"date": "2025-01-20",
"description": "Example Schedule 1",
"total_travel_time": 0,
"total_distance": 0,
"notifications_send": false,
"schedule_vehicles": {
"data": [
{
"uuid": "9e037f06-e373-4d7a-be81-9201d838cbe7",
"start_time": "08:00:00",
"end_time": "10:00:00",
"started_at": "2025-01-20 08:03:00",
"finished_at": "2025-01-20 10:02:00",
"total_travel_time": 0,
"total_distance": 1850,
"vehicle": {
"uuid": "9e037f06-c932-44da-8e8c-47516a980218",
"licence_plate": "6puPCBSrf",
"description": "Van 1"
},
"user": {
"uuid": "9e037f06-cd3b-4d58-9de9-4c2d3f018607",
"name": "Tyrell Ziemann I",
"public_name": "Tyrell Ziemann I"
},
"visits": {
"data": [
{
"uuid": "9e037f06-e46d-465a-a9cc-aeb874dc3eab",
"type": "task",
"order_index": 0,
"delivery_time": "09:00:00",
"task": {
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "RLlpEWdWyP52",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"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": "2025-01-20T13:08:53.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null,
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"customer": {
"name": "Audrey Walsh",
"email": null,
"phone_number": null
}
},
"schedule_date": "2025-01-19T23:00:00.000000Z",
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"scanned_codes": {
"data": [
{
"type": "task_code",
"code_uuid": "9e037f06-e210-4a08-99d6-7f68ce6995d4",
"scanned_count": 1
},
{
"type": "schedule_visit_code",
"code_uuid": "9e037f06-ecf0-4ed9-a466-48f1b1ec2d5d",
"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
}
}
Get a single schedule by its uuid
RateLimit (60/min)
string The UUID of the schedule
curl --request GET \
--get "https://api.routelogic.io/api/v2/schedules/5f837f16-a30f-3bc2-8d32-2c3b1229c0b2" \
--header "Authorization: Bearer {YOUR_API_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
{
"data": {
"uuid": "27ca256e-7e23-42bf-b26f-6df19f6b5cb3",
"date": "2025-01-20",
"description": "Example Schedule 1",
"total_travel_time": 0,
"total_distance": 0,
"notifications_send": false,
"schedule_vehicles": {
"data": [
{
"uuid": "9e037f06-e373-4d7a-be81-9201d838cbe7",
"start_time": "08:00:00",
"end_time": "10:00:00",
"started_at": "2025-01-20 08:03:00",
"finished_at": "2025-01-20 10:02:00",
"total_travel_time": 0,
"total_distance": 1850,
"vehicle": {
"uuid": "9e037f06-c932-44da-8e8c-47516a980218",
"licence_plate": "6puPCBSrf",
"description": "Van 1"
},
"user": {
"uuid": "9e037f06-cd3b-4d58-9de9-4c2d3f018607",
"name": "Tyrell Ziemann I",
"public_name": "Tyrell Ziemann I"
},
"visits": {
"data": [
{
"uuid": "9e037f06-e46d-465a-a9cc-aeb874dc3eab",
"type": "task",
"order_index": 0,
"delivery_time": "09:00:00",
"task": {
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "RLlpEWdWyP52",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"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": "2025-01-20T13:08:53.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null,
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"customer": {
"name": "Audrey Walsh",
"email": null,
"phone_number": null
}
},
"schedule_date": "2025-01-19T23:00:00.000000Z",
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"scanned_codes": {
"data": [
{
"type": "task_code",
"code_uuid": "9e037f06-e210-4a08-99d6-7f68ce6995d4",
"scanned_count": 1
},
{
"type": "schedule_visit_code",
"code_uuid": "9e037f06-ecf0-4ed9-a466-48f1b1ec2d5d",
"scanned_count": 1
}
]
},
"status": {
"status_identifier": "delivered"
}
}
]
}
}
]
}
}
}
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.
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.
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.
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.
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.
This event is sent when a task has been created
{
"type": "task_created",
"timestamp": "2025-01-20T14:08:53+01:00",
"data": {
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "67P5za",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"start_time": "09:00:00",
"end_time": "17:00:00",
"delivery_duration_minutes": 0,
"recurring": null,
"return_required": null,
"signature_required": null,
"used_capacity": 0,
"used_capacity_2": 0,
"used_capacity_3": 0,
"updated_at": "2025-01-20T13:08:52.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null
}
}
This event is sent when a task has been updated
{
"type": "task_updated",
"timestamp": "2025-01-20T14:08:53+01:00",
"data": {
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "67P5za",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"start_time": "09:00:00",
"end_time": "17:00:00",
"delivery_duration_minutes": 0,
"recurring": null,
"return_required": null,
"signature_required": null,
"used_capacity": 0,
"used_capacity_2": 0,
"used_capacity_3": 0,
"updated_at": "2025-01-20T13:08:52.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null
}
}
This event is sent when a task has been deleted
{
"type": "task_deleted",
"timestamp": "2025-01-20T14:08:53+01:00",
"data": {
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "67P5za",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"start_time": "09:00:00",
"end_time": "17:00:00",
"delivery_duration_minutes": 0,
"recurring": null,
"return_required": null,
"signature_required": null,
"used_capacity": 0,
"used_capacity_2": 0,
"used_capacity_3": 0,
"updated_at": "2025-01-20T13:08:52.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null
}
}
This event is sent when a visit status has been updated
{
"type": "visit_status_updated",
"timestamp": "2025-01-20T14:08:53+01:00",
"data": {
"uuid": "9e037f06-e46d-465a-a9cc-aeb874dc3eab",
"type": "task",
"order_index": 0,
"delivery_time": "09:00:00",
"task": {
"uuid": "9e037f06-cf99-4944-ae0c-13a54eeff666",
"type": "delivery",
"external_identifier": "67P5za",
"external_reference": null,
"note": null,
"pending_payment_amount": 0,
"external_link": null,
"delivery_from_date": "2025-01-20",
"delivery_date": "2025-01-20",
"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": "2025-01-20T13:08:52.000000Z",
"created_at": "2025-01-20T13:08:52.000000Z",
"tags": [],
"notification_template_uuid": null,
"return_task_uuid": null,
"address": {
"street": "95026 Astrid Shoals Suite 726",
"house_number": "921",
"house_number_extension": null,
"postal_code": "34355-6890",
"city": "Deckowshire",
"latitude": 44.935034,
"longitude": 97.779597,
"address_line": "95026 Astrid Shoals Suite 726 921",
"full_address_line": "95026 Astrid Shoals Suite 726 921, 34355-6890, Deckowshire",
"country": {
"iso_code": "NL",
"description": "Nederland"
}
},
"customer": {
"name": "Audrey Walsh",
"email": null,
"phone_number": null
}
},
"schedule_date": null,
"status": {
"status_identifier": "delivered"
},
"schedule_uuid": "27ca256e-7e23-42bf-b26f-6df19f6b5cb3"
}
}
This event is send when an internal note has been created
{
"type": "internal_note_created",
"timestamp": "2025-01-20T14:08:53+01:00",
"data": {
"message": "This is an example message. Drivers use this to communicate with their managers"
}
}
This event is sent everytime a schedule has been calculated
{
"type": "schedule_calculated",
"timestamp": "2025-01-20T14:08:53+01:00",
"data": {
"uuid": "27ca256e-7e23-42bf-b26f-6df19f6b5cb3",
"date": "2025-01-20",
"description": "Example Schedule 1",
"total_travel_time": 0,
"total_distance": 0,
"notifications_send": false,
"schedule_vehicles": {
"data": [
{
"uuid": "9e037f06-e373-4d7a-be81-9201d838cbe7",
"start_time": "08:00:00",
"end_time": "10:00:00",
"started_at": "2025-01-20 08:03:00",
"finished_at": "2025-01-20 10:02:00",
"total_travel_time": 0,
"total_distance": 1850,
"visits": {
"data": [
{
"uuid": "9e037f06-e46d-465a-a9cc-aeb874dc3eab",
"type": "task",
"order_index": 0,
"delivery_time": "09:00:00",
"schedule_date": "2025-01-19T23:00:00.000000Z",
"status": {
"status_identifier": "delivered"
}
}
]
}
}
]
}
}
}