Introduction
This documentation aims to provide all the information you need to work with Dots Platform Clients API.
Base URL
clients-api.dots.live
Authenticating requests
This API is authenticated by sending a Api-Auth-Token
header with the value "{{YOUR_API_AUTH_TOKEN}}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
See Authentication section to retrieve your token
Endpoints
DELETE api/v2/users/{user}
Example request:
curl --request DELETE \
"clients-api.dots.live/api/v2/users/earum?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'clients-api.dots.live/api/v2/users/earum',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
POST api/v2/orders/{order}/siri/validate
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/orders/ACfBeecC-Aaac-EDCb-edBf-EadbdCADfAFb/siri/validate?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/orders/ACfBeecC-Aaac-EDCb-edBf-EadbdCADfAFb/siri/validate',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
POST api/v2/orders/{order}/siri/reorder
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/orders/fAFeCDde-Bffd-eBDC-aBcD-aaBCDbBBeedA/siri/reorder?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/orders/fAFeCDde-Bffd-eBDC-aBcD-aaBCDbBBeedA/siri/reorder',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
Geo
Reverse Geocode Data Returns reverse geocoded data by longitude and latitude.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/deleniti/start-screen/reverse-geocode?latitude=14&longitude=40556&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/deleniti/start-screen/reverse-geocode',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'latitude'=> '14',
'longitude'=> '40556',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"cityId": null,
"cityMonoCompanyId": null,
"isCitySupported": false,
"isInDeliveryZone": false,
"geocodedAddress": null
}
Received response:
Request failed with error:
Geocode Data Returns geocoded data by address.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/ipsa/geo/geocode?address=assumenda&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/ipsa/geo/geocode',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'address'=> 'assumenda',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (422):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"message": "The city field is required.",
"errors": {
"city": [
"The city field is required."
]
}
}
Received response:
Request failed with error:
Reverse Geocode Data Returns reverse geocoded data by longitude and latitude.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/illo/geo/reverse-geocode?latitude=50787.697898&longitude=62055920.756574&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/illo/geo/reverse-geocode',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'latitude'=> '50787.697898',
'longitude'=> '62055920.756574',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"cityId": null,
"cityMonoCompanyId": null,
"isCitySupported": false,
"isInDeliveryZone": false,
"geocodedAddress": null
}
Received response:
Request failed with error:
Accounts
Account Settings By Domain Information.
These settings bit differ from account settings. Used for Web.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/settings-by-domain?domain=jacksburgersbar.com&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/settings-by-domain',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'domain'=> 'jacksburgersbar.com',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"phoneMask": "+38 (###) ###-##-##",
"phoneDigitsCount": 12,
"isCashbackAvailable": true,
"isCompaniesZoningActive": true,
"minCashbackChargeAmount": 50,
"monoCityId": null,
"gdpr": {
"cookiesMessagesMode": 0,
"privacyDataUsageMode": 2
},
"appearances": {
"isShadowEnabled": true,
"colors": {
"primaryColor": "#47C128",
"accentColor": "#FA9A10",
"elementTextColor": "#FFFFFF",
"lightTheme": {
"backgroundColor": "#F7F7F7",
"blockColor": "#FFFFFF",
"primaryTextColor": "#000000"
},
"darkTheme": {
"backgroundColor": "#010101",
"blockColor": "#262626",
"primaryTextColor": "#FFFFFF"
}
}
},
"rulesUrlsByLangs": {
"ru": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit",
"en": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit"
}
}
Received response:
Request failed with error:
Account Settings.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/sed/settings?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/sed/settings',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"phoneMask": "+38 (###) ###-##-##",
"phoneDigitsCount": 12,
"isCashbackAvailable": true,
"isCompaniesZoningActive": true,
"minCashbackChargeAmount": 50,
"monoCityId": null,
"gdpr": {
"cookiesMessagesMode": 0,
"privacyDataUsageMode": 2
},
"appearances": {
"isShadowEnabled": true,
"colors": {
"primaryColor": "#47C128",
"accentColor": "#FA9A10",
"elementTextColor": "#FFFFFF",
"lightTheme": {
"backgroundColor": "#F7F7F7",
"blockColor": "#FFFFFF",
"primaryTextColor": "#000000"
},
"darkTheme": {
"backgroundColor": "#010101",
"blockColor": "#262626",
"primaryTextColor": "#FFFFFF"
}
}
},
"rulesUrlsByLangs": {
"ru": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit",
"en": "https://docs.google.com/document/d/123A7Nn3mzd3A5h8OU8Xhy4o09w-W_6CkfGl3Vjdc630/edit"
}
}
Received response:
Request failed with error:
Account Start Data.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/at/start?city=ut&deviceLocale=dolorem&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/at/start',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'city'=> 'ut',
'deviceLocale'=> 'dolorem',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"settings" => [
"phoneMask" => "380999999999",
"phoneDigitsCount" => 12,
"isCashbackAvailable" => false,
"minCashbackChargeAmount" => 0.0,
"monoCityId" => null,
"gdpr" => null,
"appearances" => [
"isShadowEnabled" => true,
"colors" => [
"primaryColor" => "#01AFB2",
"accentColor" => "#FA9A0F",
"elementTextColor" => "#FFFFFF",
"lightTheme" => [
"backgroundColor" => "#F7F7F7",
"blockColor" => "#FFFFFF",
"primaryTextColor" => "#000000",
],
"darkTheme" => [
"backgroundColor" => "#010101",
"blockColor" => "#262626",
"primaryTextColor" => "#FFFFFF",
],
],
],
],
"langs" => [
"items" => [],
"hasNext" => false,
],
"cityMonoCompanyId" => null,
}
Received response:
Request failed with error:
Account Langs Information.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/nisi/langs?deviceLocale=ua&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/nisi/langs',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'deviceLocale'=> 'ua',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"code": "ru",
"locale": "ru",
"name": "Русский",
"isCurrent": false,
"isMain": false
},
{
"code": "en",
"locale": "en",
"name": "English",
"isCurrent": true,
"isMain": true
}
],
"hasNext": false
}
Received response:
Request failed with error:
Account id by domain.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/accounts/id-by-domain?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/accounts/id-by-domain',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (422):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"message": "The domain field is required.",
"errors": {
"domain": [
"The domain field is required."
]
}
}
Received response:
Request failed with error:
App
Api version info.
Check that version is supported.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/app/version?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/app/version',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"version": 2,
"supported": true
}
Received response:
Request failed with error:
Welcome screens.
Shows configured welcome screens.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/app/welcome-screen?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/app/welcome-screen',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"firstScreen": {
"title": "Jack's Burgers - order in a few clicks.",
"description": "Reliable service and fast delivery at your service."
},
"secondScreen": {
"title": "Turn on notifications - it is important!",
"description": "They will help tracking the status of each order."
},
"thirdScreen": {
"title": "Please share your location.",
"description": "This will help determine the possibility of delivery to your address."
}
}
Received response:
Request failed with error:
AppTokens
Register app.
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/app-tokens?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"deviceToken\": \"i0F1kt1jAqsZC7vewcfv4d\",
\"type\": \"ios\",
\"data\": \"{\\\"deviceModel\\\": \\\"Iphone 13 Pro\\\", \\\"apiVersion\\\": \\\"2.0.0\\\"}\",
\"notificationToken\": \"r88W2NwhWTqgzQCdVs01UeLIhvfzTWIS9Ek3D7JK8rxFX8VkYKZ4uphaNxh1OrZelyJGercYC1DhTqmCKcplAWvipo1ducbZXJvHGb0yNhk0gm9vKaajk25GoRZwfnJpp9vVVzKOExIrqkPmQJvlF1clHc1zzzNCF5pICLOX6ptgNC3nTLVsTGp5tzzJmRXxFnztzdOWDvZjddQKR6dCkmC581ugDQLUZJiSQJdWrynllMgnFCQ7lV2nh7fpAmO3\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/app-tokens',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'deviceToken' => 'i0F1kt1jAqsZC7vewcfv4d',
'type' => 'ios',
'data' => '{"deviceModel": "Iphone 13 Pro", "apiVersion": "2.0.0"}',
'notificationToken' => 'r88W2NwhWTqgzQCdVs01UeLIhvfzTWIS9Ek3D7JK8rxFX8VkYKZ4uphaNxh1OrZelyJGercYC1DhTqmCKcplAWvipo1ducbZXJvHGb0yNhk0gm9vKaajk25GoRZwfnJpp9vVVzKOExIrqkPmQJvlF1clHc1zzzNCF5pICLOX6ptgNC3nTLVsTGp5tzzJmRXxFnztzdOWDvZjddQKR6dCkmC581ugDQLUZJiSQJdWrynllMgnFCQ7lV2nh7fpAmO3',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"id": "2a07c7eb-fed2-4d1e-8442-b92e77300484"
}
Received response:
Request failed with error:
Set app notification token.
This token will be used to send Push notifications. Used when token is changed in app.
.Example request:
curl --request POST \
"clients-api.dots.live/api/v2/app-tokens/numquam/notification?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"notificationToken\": \"z7gJsy9X5wp1ys6c2ehuJU9Lx4vcNef9jPVBXabRVsCzGMEfUdSJvgNZmWD6dqpkMC98F2mlGXu1AFSHGetJiZhWt63FyfGXkOCd50hMiPlJXVEz4IPivlEps1nGR9OulozcneVoyRrvOZWeObi9VrD2AMDOKhALN99GLrQyiu6ekjxA1t22gdivvRB7d3f3zM4ZvUEqIqxCOs53EmYhPzMCYWLBFNOpAnp1JbdyMpsiwth9ibiCtI9gNCInfYiO\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/app-tokens/numquam/notification',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'notificationToken' => 'z7gJsy9X5wp1ys6c2ehuJU9Lx4vcNef9jPVBXabRVsCzGMEfUdSJvgNZmWD6dqpkMC98F2mlGXu1AFSHGetJiZhWt63FyfGXkOCd50hMiPlJXVEz4IPivlEps1nGR9OulozcneVoyRrvOZWeObi9VrD2AMDOKhALN99GLrQyiu6ekjxA1t22gdivvRB7d3f3zM4ZvUEqIqxCOs53EmYhPzMCYWLBFNOpAnp1JbdyMpsiwth9ibiCtI9gNCInfYiO',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
[
"ok"
]
Received response:
Request failed with error:
Update app token lang.
Use it when user changes lang in your app. Then system will send notifications in specified lang.
Example request:
curl --request PATCH \
"clients-api.dots.live/api/v2/app-tokens/et/lang?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"lang\": \"ua\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'clients-api.dots.live/api/v2/app-tokens/et/lang',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'lang' => 'ua',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
[
"ok"
]
Received response:
Request failed with error:
Cart
Cart info.
Returns Cart Info. Used to render Company Name. And to get amount that is required for free delivery if promotion is configured. Additional massages are also retrieved here. See example response.
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/cart/info?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"companyId\": \"{{companyId}}\",
\"cartItems\": \"[{\\\"id\\\": {{itemId}}, \\\"count\\\": 2}]\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/cart/info',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'companyId' => '{{companyId}}',
'cartItems' => '[{"id": {{itemId}}, "count": 2}]',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"companyName": "Peperoni",
"cartMessagesPopup": {
"title": "Important!",
"minPriceForFreeDelivery": 100,
"messages": [
"You have alcohol in cart. Please show your ID when you receive your order."
]
}
}
Example response (422, Validation error: No company id):
{
"message": "The given data was invalid.",
"errors": {
"companyId": [
"validation.required"
]
}
}
Received response:
Request failed with error:
Resolve cart prices.
Validation and params are NOT the same as in Store Order Request. Username and phone are not required.
.Example request:
curl --request POST \
"clients-api.dots.live/api/v2/cart/prices/resolve?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/cart/prices/resolve',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example With Distance Popup Message):
{
"price": 75,
"basePrice": 0,
"deliveryPrice": 95,
"totalPrice": 170,
"baseTotalPrice": 125,
"popups": [
{
"acceptButtonShow": true,
"cancelButtonShow": true,
"message": "Відстань від точки видачі до вказаної Вами адреси перевищує 4 км. Доплата становитиме 45 ₴",
"title": "Доплата за доставку",
"type": "general"
}
],
"data": null,
"paidByCashbackAmount": 0,
"totalPromoDiscountsAmount": 0,
"promoCodeApplied": false
}
Received response:
Request failed with error:
Validate Cart Prices.
Validation and params are the same as in Store Order Request.
.Example request:
curl --request POST \
"clients-api.dots.live/api/v2/cart/prices/validate?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/cart/prices/validate',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
Checkout
Checkout page info Returns all needed information to render checkout page.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/cart/checkout?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/cart/checkout',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
[
"nonDeliveryCompanyAddressesData" => [
"pickUpAddresses" => [
0 => [
"id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
"address" => "Pr. Mury 41"
]
]
"bookingAddresses" => [
0 => [
"id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
"address" => "Pr. Mury 41"
]
]
"innerDeliveryAddresses" => [
0 => [
"id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
"address" => "Pr. Mury 41"
]
]
"innerDeliveryToRoomAddresses" => [
0 => [
"id" => "6cfac268-cf8f-3c7c-8c81-d8fea53d1db7"
"address" => "Pr. Mury 41"
]
]
]
"timeForGetting" => [
"deliveryTime" => [
0 => {
"date": 1617310800,
"times": [
1617372300,
1617372900,
1617373500,
1617374100,
1617374700,
1617375300,
]
}
]
"nonDeliveryTime" => [
0 => {
"date": 1617310800,
"times": [
1617372300,
1617372900,
1617373500,
1617374100,
1617374700,
1617375300,
]
}
]
]
"deliveryTypes" => [
0 => [
"title" => "Delivery home"
"price" => 24.0
"type" => 0
"isPeopleCountAvailable" => true
]
1 => [
"title" => "Door delivery"
"price" => 26.0
"type" => 1
"isPeopleCountAvailable" => true
]
2 => [
"title" => "Pickup"
"price" => 0.0
"type" => 2
"isPeopleCountAvailable" => true
]
3 => [
"title" => "Pre-order and table reservation"
"price" => 0.0
"type" => 3
"isPeopleCountAvailable" => true
]
4 => [
"title" => "Delivery to table"
"price" => 0.0
"type" => 4
"isPeopleCountAvailable" => true
]
5 => [
"title" => "Delivery to room"
"price" => 0.0
"type" => 5
"isPeopleCountAvailable" => true
]
]
"paymentTypes" => [
0 => [
"type" => 1
"title" => "Cash payment"
]
1 => [
"type" => 2
"title" => "Online payment"
]
2 => [
"type" => 3
"title" => "Payment by terminal"
]
]
"userAddresses" => []
"deliveryTimeTypes" => [
0 => [
"title" => "As soon as possible"
"type" => "asap"
]
1 => [
"title" => "On specific time"
"type" => "onTime"
]
]
"userAvailableCashbackBalance" => 0.0
"cashbackInfoText" => "1 bonus = 1 UAH"
"phoneMask" => "380999999999"
"phoneDigitsCount" => 12
"gdpr" => [
"gdprMode" => 0
]
]
}
Received response:
Request failed with error:
Cities
Active Cities List.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/cities?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/cities',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, One City Account):
{
"items": [
{
"id": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
"name": "Kyiv",
"url": "kyiv",
"status": 1,
"centerCoordinates": {
"latitude": 50.4501,
"longitude": 30.5234
}
}
],
"hasNext": false
}
Example response (200, Multi Cities Account):
{
"items": [
{
"id": "ccf4725c-4ff3-11eb-a418-0242ac130005",
"name": "Чернигов",
"url": "chernigov",
"status": 1,
"centerCoordinates": {
"latitude": 51.4982,
"longitude": 31.2893499
}
},
{
"id": "ccf61141-4ff3-11eb-a418-0242ac130005",
"name": "Лутск",
"url": "lutsk",
"status": 1,
"centerCoordinates": {
"latitude": 50.747233,
"longitude": 25.325383
}
}
],
"hasNext": false
}
Example response (200, Empty List):
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
City by ip info.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/cities/by-ip?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/cities/by-ip',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"id": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
"name": "Kyiv",
"url": "kyiv",
"supportPhone": "(050) 000-00-00",
"status": 1,
"isChatEnabled": true,
"currency": {
"formatted": "$",
"token": "USD"
},
"timezone": "Europe/Kiev",
"pageFacebook": "https://www.facebook.com/mister.am.chernigov",
"pageInsta": "https://www.instagram.com/mister.am.chernihiv",
"noticeMessage": null,
"centerCoordinates": {
"latitude": 50.4501,
"longitude": 30.5234
},
"deliveryTypes": [
{
"id": 0,
"title": "Home delivery"
},
{
"id": 1,
"title": "Door delivery"
},
{
"id": 2,
"title": "Takeaway"
},
{
"id": 3,
"title": "Table reservation"
}
],
"promotions": []
}
Received response:
Request failed with error:
City info.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/cities/rem?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/cities/rem',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"id": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
"name": "Kyiv",
"url": "kyiv",
"supportPhone": "(050) 000-00-00",
"status": 1,
"isChatEnabled": true,
"currency": {
"formatted": "$",
"token": "USD"
},
"timezone": "Europe/Kiev",
"pageFacebook": "https://www.facebook.com/mister.am.chernigov",
"pageInsta": "https://www.instagram.com/mister.am.chernihiv",
"noticeMessage": null,
"centerCoordinates": {
"latitude": 50.4501,
"longitude": 30.5234
},
"deliveryTypes": [
{
"id": 0,
"title": "Home delivery"
},
{
"id": 1,
"title": "Door delivery"
},
{
"id": 2,
"title": "Takeaway"
},
{
"id": 3,
"title": "Table reservation"
}
],
"promotions": []
}
Received response:
Request failed with error:
City Active Companies.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/cities/dBcdCcaB-AbdC-abfd-bFAB-BACDdeddFFCf/companies?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/cities/dBcdCcaB-AbdC-abfd-bFAB-BACDdeddFFCf/companies',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"id": "f7bccc99-5521-11eb-9cdd-f23c92a7f68e",
"name": "Jack's Burgers",
"image": "https://assets.dots.live/misteram-public/94232638631eb7a7a21e7566ddb3bff8.png",
"availablePaymentTypes": [
{
"type": 1,
"title": "Cash"
},
{
"type": 2,
"title": "Online"
},
{
"type": 3,
"title": "Terminal"
}
],
"rating": 4.8,
"status": 1,
"showReviews": true,
"schedule": [
{
"id": 0,
"start": "08:00",
"end": "23:00",
"startTime": 1635746440,
"endTime": 1635800440,
"isActive": true
},
{
"id": 1,
"start": "08:00",
"end": "23:00",
"startTime": 1635832840,
"endTime": 1635886840,
"isActive": true
},
{
"id": 2,
"start": "08:00",
"end": "23:00",
"startTime": 1635919240,
"endTime": 1635973240,
"isActive": true
},
{
"id": 3,
"start": "09:00",
"end": "23:00",
"startTime": 1636009240,
"endTime": 1636059640,
"isActive": true
},
{
"id": 4,
"start": "09:00",
"end": "23:00",
"startTime": 1636095640,
"endTime": 1636146040,
"isActive": true
},
{
"id": 5,
"start": "08:30",
"end": "23:00",
"startTime": 1636180240,
"endTime": 1636232440,
"isActive": true
},
{
"id": 6,
"start": "08:00",
"end": "23:00",
"startTime": 1636264840,
"endTime": 1636318840,
"isActive": true
}
],
"deliveryTimeText": "up to 45 min.",
"deliveryPriceText": "from $50",
"promoLabelText": null,
"availableDeliveryTypes": [
0,
1,
2,
3,
4,
5
],
"specializedCityCategoryIds": [
"f6e39653-5521-11eb-9cdd-f23c92a7f68e",
"f6e39b09-5521-11eb-9cdd-f23c92a7f68e",
"f6e399a6-5521-11eb-9cdd-f23c92a7f68e"
],
"priority": 100,
"url": "jacks-burgers"
}
],
"hasNext": false
}
Example response (200, Empty List):
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
City Top Active Categories.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/cities/EdAFbffd-FAbB-CeBd-EEEa-BEBCceAdfDFD/categories?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/cities/EdAFbffd-FAbB-CeBd-EEEa-BEBCceAdfDFD/categories',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"id": "f6e39653-5521-11eb-9cdd-f23c92a7f68e",
"url": "burgers",
"name": "Burgers"
},
{
"id": "f6e39b09-5521-11eb-9cdd-f23c92a7f68e",
"url": "sushi",
"name": "Sushi"
},
{
"id": "f6e399a6-5521-11eb-9cdd-f23c92a7f68e",
"url": "drinks",
"name": "Drinks"
},
{
"id": "f6e93487-5521-11eb-9cdd-f23c92a7f68e",
"url": "eating-utensils",
"name": "Eating utensils"
}
],
"hasNext": false
}
Example response (200, Empty List):
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
City polygon.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/cities/adFEbeDf-EcCe-dDCE-aADC-CBEAdbdbffAC/polygons?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/cities/adFEbeDf-EcCe-dDCE-aADC-CBEAdbdbffAC/polygons',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
[
{
"latitude": 50.51517303835635,
"longitude": 30.36210517061685
},
{
"latitude": 50.49421062933561,
"longitude": 30.366208821575448
},
{
"latitude": 50.47804575442329,
"longitude": 30.35934542283279
},
{
"latitude": 50.46056399318573,
"longitude": 30.357971191406257
},
{
"latitude": 50.43914002650341,
"longitude": 30.356600251417923
},
{
"latitude": 50.42383125367359,
"longitude": 30.366898288315987
},
{
"latitude": 50.40589182397226,
"longitude": 30.394368575580337
},
{
"latitude": 50.39407434322027,
"longitude": 30.42388892505352
},
{
"latitude": 50.37787523228101,
"longitude": 30.448609573951153
},
{
"latitude": 50.366488762738264,
"longitude": 30.46440171532267
},
{
"latitude": 50.35641383867467,
"longitude": 30.474017103459293
},
{
"latitude": 50.35203276986297,
"longitude": 30.492557002375708
},
{
"latitude": 50.34283120939227,
"longitude": 30.502169804382344
},
{
"latitude": 50.33581929989812,
"longitude": 30.51178119577264
},
{
"latitude": 50.34151655520418,
"longitude": 30.52963280346211
},
{
"latitude": 50.34326941936873,
"longitude": 30.56259790050805
},
{
"latitude": 50.350280229138775,
"longitude": 30.60584739849384
},
{
"latitude": 50.36447394633435,
"longitude": 30.63317500263451
},
{
"latitude": 50.418318894367,
"longitude": 30.70817801907518
},
{
"latitude": 50.47454991925151,
"longitude": 30.683446334369396
},
{
"latitude": 50.493074890507174,
"longitude": 30.643356974156788
},
{
"latitude": 50.513513865467566,
"longitude": 30.612861866429892
},
{
"latitude": 50.514125138233894,
"longitude": 30.55353964676316
},
{
"latitude": 50.52870631568803,
"longitude": 30.504226919673055
},
{
"latitude": 50.52608727455503,
"longitude": 30.456849084942164
},
{
"latitude": 50.523904629228625,
"longitude": 30.434875958486725
}
]
],
"hasNext": false
}
Received response:
Request failed with error:
Companies
Company Info.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/companies/iste?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/companies/iste',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"id": "f7bccc99-5521-11eb-9cdd-f23c92a7f68e",
"name": "Jack's Burgers",
"status": 1,
"rating": 4.8,
"reviewsCount": 170,
"showReviews": true,
"payForBox": true,
"description": "Jack's Burgers - real American burgers! We have built an authentic burger bar where the main dish is a gastronomic phenomenon, and not just a quick bite on the go. Specialty burgers are prepared with medium roasting on an open grill. Served with crispy fries and coleslaw salad. There is also a wide selection of snacks and drinks.",
"packagePrice": 0,
"maxCountInPackage": 5,
"schedule": [
{
"id": 0,
"start": "08:00",
"end": "23:00",
"startTime": 1635746406,
"endTime": 1635800406,
"isActive": true
},
{
"id": 1,
"start": "08:00",
"end": "23:00",
"startTime": 1635832806,
"endTime": 1635886806,
"isActive": true
},
{
"id": 2,
"start": "08:00",
"end": "23:00",
"startTime": 1635919206,
"endTime": 1635973206,
"isActive": true
},
{
"id": 3,
"start": "09:00",
"end": "23:00",
"startTime": 1636009206,
"endTime": 1636059606,
"isActive": true
},
{
"id": 4,
"start": "09:00",
"end": "23:00",
"startTime": 1636095606,
"endTime": 1636146006,
"isActive": true
},
{
"id": 5,
"start": "08:30",
"end": "23:00",
"startTime": 1636180206,
"endTime": 1636232406,
"isActive": true
},
{
"id": 6,
"start": "08:00",
"end": "23:00",
"startTime": 1636264806,
"endTime": 1636318806,
"isActive": true
}
],
"paymentTypes": [
{
"type": 1,
"title": "Cash"
},
{
"type": 2,
"title": "Online"
},
{
"type": 3,
"title": "Terminal"
}
],
"deliveryTime": {
"title": "Delivery time is up to 45 minutes",
"label": "up to 45 min.",
"description": "On average, the delivery time takes up to 45 minutes. Orders, on holidays or weekends, as well as during peak periods, may take longer to deliver."
},
"delivery": {
"title": "Standard delivery from $50",
"label": "from $50",
"description": "Standard delivery - $50.\r\nDoorstep delivery - $55.\r\nTakeaway - free."
},
"promotions": [],
"noticeMessage": {
"title": "Important!",
"message": "Please note: This is a demo version, so your orders won't be processed."
},
"addresses": [
{
"id": "f841fda9-5521-11eb-9cdd-f23c92a7f68e",
"title": "Knyazhiy Zaton St., 9",
"location": {
"latitude": 50.402,
"longitude": 30.625218
},
"polygon": [
{
"latitude": 50.49041019120218,
"longitude": 30.582946877205476
},
{
"latitude": 50.48232779485382,
"longitude": 30.562697331614952
},
{
"latitude": 50.45129603365142,
"longitude": 30.588095066762417
},
{
"latitude": 50.42614975196303,
"longitude": 30.593929681593572
},
{
"latitude": 50.40864880687259,
"longitude": 30.600107509061885
},
{
"latitude": 50.3768680698219,
"longitude": 30.589261998107848
},
{
"latitude": 50.34598622295793,
"longitude": 30.60676584260137
},
{
"latitude": 50.35277757206081,
"longitude": 30.64829457169382
},
{
"latitude": 50.38540631004711,
"longitude": 30.681242984858073
},
{
"latitude": 50.40182168300679,
"longitude": 30.681242984858073
},
{
"latitude": 50.44889131492515,
"longitude": 30.659757882153094
},
{
"latitude": 50.48320163407991,
"longitude": 30.642254037659573
},
{
"latitude": 50.50045664818744,
"longitude": 30.596949969558743
},
{
"latitude": 50.50373220481898,
"longitude": 30.577730061879592
}
]
},
{
"id": "f84200c2-5521-11eb-9cdd-f23c92a7f68e",
"title": "Shota Rustaveli St., 10",
"location": {
"latitude": 50.4397796,
"longitude": 30.5212356
},
"polygon": [
{
"latitude": 50.4734176904836,
"longitude": 30.52203968466383
},
{
"latitude": 50.4763251751987,
"longitude": 30.514980893772595
},
{
"latitude": 50.476543664279106,
"longitude": 30.503658235981195
},
{
"latitude": 50.479820879300895,
"longitude": 30.496796019137957
},
{
"latitude": 50.47414022885109,
"longitude": 30.48959069145253
},
{
"latitude": 50.4702070709315,
"longitude": 30.484444028820064
},
{
"latitude": 50.45695757588128,
"longitude": 30.482082366943363
},
{
"latitude": 50.45214859173516,
"longitude": 30.48465758100008
},
{
"latitude": 50.448787470539486,
"longitude": 30.48890446976818
},
{
"latitude": 50.443977655582565,
"longitude": 30.487875137241684
},
{
"latitude": 50.43498527759335,
"longitude": 30.49263916439429
},
{
"latitude": 50.43148625882513,
"longitude": 30.50602929668685
},
{
"latitude": 50.43017406011533,
"longitude": 30.52113537211483
},
{
"latitude": 50.43479392398924,
"longitude": 30.53007777082775
},
{
"latitude": 50.437855365839624,
"longitude": 30.54242976114564
},
{
"latitude": 50.43370050391744,
"longitude": 30.54448842619863
},
{
"latitude": 50.435668641863806,
"longitude": 30.547919534620256
},
{
"latitude": 50.440260645542,
"longitude": 30.556154194832164
},
{
"latitude": 50.44522239702681,
"longitude": 30.556091441581852
},
{
"latitude": 50.452178398616425,
"longitude": 30.54326288588923
},
{
"latitude": 50.45812497302285,
"longitude": 30.529049575036684
},
{
"latitude": 50.46190018447044,
"longitude": 30.526784983039835
},
{
"latitude": 50.467264442847394,
"longitude": 30.525958610692804
},
{
"latitude": 50.47152064949413,
"longitude": 30.52531642342576
}
]
}
],
"appearanceSettings": {
"miniCoverImage": "https://assets.dots.live/misteram-public/94232638631eb7a7a21e7566ddb3bff8.png",
"maxiCoverImage": "https://assets.dots.live/misteram-public/0bfebdd8086ed09b45845f0a12f63ac0.png"
},
"deliveryTypes": [
{
"title": "Home delivery",
"price": 0,
"type": 0,
"isPeopleCountAvailable": true
},
{
"title": "Door delivery",
"price": 0,
"type": 1,
"isPeopleCountAvailable": true
},
{
"title": "Takeaway",
"price": 0,
"type": 2,
"isPeopleCountAvailable": true
},
{
"title": "Table reservation",
"price": 0,
"type": 3,
"isPeopleCountAvailable": true
},
{
"title": "Serving to the table",
"price": 0,
"type": 4,
"isPeopleCountAvailable": true
},
{
"title": "Room delivery",
"price": 0,
"type": 5,
"isPeopleCountAvailable": true
}
]
}
Received response:
Request failed with error:
Company Active Items By Active Categories.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/companies/EedBDcef-dCFF-eECC-CFAe-AfefCDadCCEE/items-by-categories?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/companies/EedBDcef-dCFF-eECC-CFAe-AfefCDadCCEE/items-by-categories',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"id": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"name": "Burgers",
"url": "burgers",
"items": [
{
"id": "68d0d9ec-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Big Boss",
"description": "Grilled pork cutlet, a slice of cheese, fresh lettuce, cucumber, tomato, seasoned with hot sauce in a fragrant bun.",
"fullDescription": "You won't be able to resist the crispy crust covering the juicy pork cutlet on a vegetable cushion spiced with original sauce. There is a great opportunity to choose the sharpness of our signature sauce to your taste.",
"measureText": "320 g",
"price": 105,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/022fb434302d8f320051bed88848c617-400x0.png",
"promotionsIds": [],
"modifiers": [
"Hot",
" Medium",
" Mild"
],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "256",
"valueFull": "819",
"title": "Energy, kcal"
},
{
"value100": "1072",
"valueFull": "3429",
"title": "Energy, kJ"
},
{
"value100": "8",
"valueFull": "8",
"title": "Fats, g"
},
{
"value100": "10",
"valueFull": "10",
"title": "Of which saturated, g"
},
{
"value100": "13",
"valueFull": "13",
"title": "Carbohydrates, g"
},
{
"value100": "3",
"valueFull": "3",
"title": "Of which sugar, g"
},
{
"value100": "8",
"valueFull": "8",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [
"foodTypeAcute"
],
"promoLabelText": null
},
{
"id": "68d0f687-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Caesar burger",
"description": "Juicy grilled chicken, double cheddar cheese, signature sauce, pickled cucumber.",
"fullDescription": "Signature burger with homemade brioche bun, juicy grilled chicken, crispy turkey chips, fresh Caesar salad, tomatoes, mozzarella cheese, seasoned with branded sauce.",
"measureText": "235 g",
"price": 145,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/5a8e3ebf75f5588b3eebe100533dcec9-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "196",
"valueFull": "461",
"title": "Energy, kcal"
},
{
"value100": "821",
"valueFull": "1930",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Fats, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Of which saturated, g"
},
{
"value100": "21",
"valueFull": "21",
"title": "Carbohydrates, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Of which sugar, g"
},
{
"value100": "10",
"valueFull": "10",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d0de0e-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Texas ranger",
"description": "Juicy beef cutlet, salad, bacon, spicy onions, cheddar cheese, spicy sauce in a hot bun.",
"fullDescription": "A juicy beef cutlet, slices of aromatic Cheddar cheese, fresh salad, spicy onions, crispy bacon - all spiced with a savory sauce and surrounded by a fresh sesame bun.",
"measureText": "230 g",
"price": 159,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/450f9f84cd59b678bf92b1ce5b89bd90-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "202",
"valueFull": "464",
"title": "Energy, kcal"
},
{
"value100": "846",
"valueFull": "1943",
"title": "Energy, kJ"
},
{
"value100": "8",
"valueFull": "8",
"title": "Fats, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Of which saturated, g"
},
{
"value100": "20",
"valueFull": "20",
"title": "Carbohydrates, g"
},
{
"value100": "4",
"valueFull": "4",
"title": "Of which sugar, g"
},
{
"value100": "10",
"valueFull": "10",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [
"foodTypeAcute"
],
"promoLabelText": null
},
{
"id": "68d12418-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Chicken Bao Burger",
"description": "Naturally smoked fillet grill, Chinese cabbage, tomatoes, sour-malt sauce, crispy turkey chips, fresh vegetables, two types of cheese, barbecue sauce",
"fullDescription": "The most delicious burger with a homemade bun, juicy chicken fillet, crispy turkey chips, fresh tomatoes and lettuce, pickled cucumbers and fresh red onions, Cheddar and Mozzarella cheeses, dressed with BBQ cream sauce.",
"measureText": "300 g",
"price": 159,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/df629ef71ee4dd32860e630641eb1547-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "3",
"valueFull": "822",
"title": "Energy, kcal"
},
{
"value100": "13",
"valueFull": "3442",
"title": "Energy, kJ"
},
{
"value100": "16",
"valueFull": "16",
"title": "Fats, g"
},
{
"value100": "7",
"valueFull": "7",
"title": "Of which saturated, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Carbohydrates, g"
},
{
"value100": "3",
"valueFull": "3",
"title": "Of which sugar, g"
},
{
"value100": "15",
"valueFull": "15",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d11e94-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Dorblu Burger",
"description": "Juicy beef, cheddar cheese, crispy turkey chips, pickled cucumbers, fresh onions, salad, dressed with dorblu sauce",
"fullDescription": "Hearty burger with homemade brioche bun, juicy beef, stretching cheddar cheese and crispy turkey chips, pickled cucumbers, and fresh red onions, fresh cole slow salad, and all dressed up with dorblu sauce.",
"measureText": "250 g",
"price": 155,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/76e20cb1ce52b2ae21c58cb0d78aebe2-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "300",
"valueFull": "749",
"title": "Energy, kcal"
},
{
"value100": "1256",
"valueFull": "3136",
"title": "Energy, kJ"
},
{
"value100": "20",
"valueFull": "20",
"title": "Fats, g"
},
{
"value100": "8",
"valueFull": "8",
"title": "Of which saturated, g"
},
{
"value100": "14",
"valueFull": "14",
"title": "Carbohydrates, g"
},
{
"value100": "4",
"valueFull": "4",
"title": "Of which sugar, g"
},
{
"value100": "21",
"valueFull": "21",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d12be7-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Beef bao burger",
"description": "Fresh bao bun, farm beef, cheddar, bell pepper, fresh onion, bbq sauce.",
"fullDescription": "Burger with two juicy farm beef patties, cheddar cheese, bell pepper and fresh onions, bbq sauce in a fresh bao bun.",
"measureText": "290 g",
"price": 169,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/63d8923e65f2f81132b60c3bee6e3e7d-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "180",
"valueFull": "521",
"title": "Energy, kcal"
},
{
"value100": "754",
"valueFull": "2181",
"title": "Energy, kJ"
},
{
"value100": "9",
"valueFull": "9",
"title": "Fats, g"
},
{
"value100": "5",
"valueFull": "5",
"title": "Of which saturated, g"
},
{
"value100": "12",
"valueFull": "12",
"title": "Carbohydrates, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Of which sugar, g"
},
{
"value100": "10",
"valueFull": "10",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
}
]
},
{
"id": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
"name": "Pizza",
"url": "pizza",
"items": [
{
"id": "68d0d222-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Spicy meat pizza",
"description": "Salami, ham, mushrooms, cheese, and barbecue sauce",
"fullDescription": "Pizza for those who like a combination of multiple tastes. Filled with salami sausages, smoked brisket, and juicy chicken baked with spices. The meat will be complemented by red onion with barbecue sauce and the creamy taste of mozzarella cheese.",
"measureText": "400 g",
"price": 99,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/135a8c85d59c42d7f67da15f927b9278-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "218",
"valueFull": "873",
"title": "Energy, kcal"
},
{
"value100": "913",
"valueFull": "3655",
"title": "Energy, kJ"
},
{
"value100": "13",
"valueFull": "13",
"title": "Fats, g"
},
{
"value100": "7",
"valueFull": "7",
"title": "Of which saturated, g"
},
{
"value100": "15",
"valueFull": "15",
"title": "Carbohydrates, g"
},
{
"value100": "4",
"valueFull": "4",
"title": "Of which sugar, g"
},
{
"value100": "13",
"valueFull": "13",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [
"foodTypeAcute"
],
"promoLabelText": null
},
{
"id": "68d0e187-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Creamy chicken pizza",
"description": "Creamy sauce, chicken breast, bacon, Mozzarella cheese, fresh cherry tomatoes.",
"fullDescription": "Crispy dough with creamy sauce, mushrooms, mozzarella cheese, red onion, fried chicken fillet, and fresh cherry tomatoes that perfectly complement the taste.",
"measureText": "440 g",
"price": 99,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/baa925557e52e653104a7268460ab05e-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "168",
"valueFull": "459",
"title": "Energy, kcal"
},
{
"value100": "703",
"valueFull": "1922",
"title": "Energy, kJ"
},
{
"value100": "20",
"valueFull": "20",
"title": "Fats, g"
},
{
"value100": "9",
"valueFull": "9",
"title": "Of which saturated, g"
},
{
"value100": "20",
"valueFull": "20",
"title": "Carbohydrates, g"
},
{
"value100": "0.8",
"valueFull": "0.8",
"title": "Of which sugar, g"
},
{
"value100": "18",
"valueFull": "18",
"title": "Protein, g"
},
{
"value100": "1.2",
"valueFull": "1.2",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d0ecf3-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Signature pizza",
"description": "Pork, mushrooms, tomatoes, caramelized onions, and signature sauce.",
"fullDescription": "Pizza with pork tenderloin skewers and bacon is a great option for a hearty lunch or dinner. Filled with shish kebab, mushrooms, bacon, tomatoes, and bell peppers under the \"cheese cap\".",
"measureText": "400 g",
"price": 99,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/30478f506256324a29e3303f4aebf35a-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "331.2",
"valueFull": "828",
"title": "Energy, kcal"
},
{
"value100": "1387",
"valueFull": "3467",
"title": "Energy, kJ"
},
{
"value100": "20",
"valueFull": "20",
"title": "Fats, g"
},
{
"value100": "9",
"valueFull": "9",
"title": "Of which saturated, g"
},
{
"value100": "20",
"valueFull": "20",
"title": "Carbohydrates, g"
},
{
"value100": "0.8",
"valueFull": "0.8",
"title": "Of which sugar, g"
},
{
"value100": "18",
"valueFull": "18",
"title": "Protein, g"
},
{
"value100": "1.2",
"valueFull": "1.2",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "070596ca-bd73-41bd-8512-ab00f6378e2b",
"companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "BBQ pizza",
"description": "Salami, bacon, chicken fillet, tomatoes, olives, cheese, and barbecue sauce.",
"fullDescription": "BBQ pizza is an exclusive treat for fans of sour-sweet sauce. An excellent combination of bacon, chicken fillet, mushrooms, olives, tomatoes, and red onions.",
"measureText": "400 g",
"price": 99,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/a2cddcc67bb0d8bc378755edf34eee54-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "235",
"valueFull": "940",
"title": "Energy, kcal"
},
{
"value100": "984",
"valueFull": "3936",
"title": "Energy, kJ"
},
{
"value100": "14",
"valueFull": "14",
"title": "Fats, g"
},
{
"value100": "7",
"valueFull": "7",
"title": "Of which saturated, g"
},
{
"value100": "15",
"valueFull": "15",
"title": "Carbohydrates, g"
},
{
"value100": "5",
"valueFull": "5",
"title": "Of which sugar, g"
},
{
"value100": "13",
"valueFull": "13",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d12ee9-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Pizza with salami and tomatoes",
"description": "Salami, tomatoes, olives, cheese, herbs, and our signature sauce.",
"fullDescription": "\"Super Juicy\" is probably more appropriate than \"salami and tomatoes\". Crispy dough, puffy mozzarella, salami, juicy tomatoes, aromatic mushrooms, and black olives.",
"measureText": "440 g",
"price": 99,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/7fdbcbb1d5c7ef42e5dcd390136348b8-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "215",
"valueFull": "865",
"title": "Energy, kcal"
},
{
"value100": "900",
"valueFull": "3622",
"title": "Energy, kJ"
},
{
"value100": "14",
"valueFull": "14",
"title": "Fats, g"
},
{
"value100": "7",
"valueFull": "7",
"title": "Of which saturated, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Carbohydrates, g"
},
{
"value100": "4",
"valueFull": "4",
"title": "Of which sugar, g"
},
{
"value100": "14",
"valueFull": "14",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d131e8-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f027d-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Four cheese pizza",
"description": "Сheese platter and cream sauce.",
"fullDescription": "Four cheese pizza is distinguished by an amazing taste range, as it contains parmesan. It determines such an interesting aftertaste of the Italian flatbread, which has such an overwhelming success.",
"measureText": "450 g",
"price": 110,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/c15c035da892e4fc74c55a2c8aeab42f-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "207",
"valueFull": "930",
"title": "Energy, kcal"
},
{
"value100": "867",
"valueFull": "3894",
"title": "Energy, kJ"
},
{
"value100": "15",
"valueFull": "15",
"title": "Fats, g"
},
{
"value100": "9",
"valueFull": "9",
"title": "Of which saturated, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Carbohydrates, g"
},
{
"value100": "4",
"valueFull": "4",
"title": "Of which sugar, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [
"foodTypeVegetarian"
],
"promoLabelText": null
}
]
},
{
"id": "146a4341-be88-4590-ae15-a602fa33c34a",
"name": "Sushi",
"url": "sushi",
"items": [
{
"id": "a54a8b11-5cf6-4b80-8a62-1c1110fa0029",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Philadelphia Shrimp Roll",
"description": "Snow crab, tiger shrimp, tomato concasse, ogirok, sir Philadelphia, rice, nori",
"fullDescription": "The most delicious Philadelphia Roll with shrimp you can find. Only super fresh products.",
"measureText": "240 g",
"price": 175,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/507ce09b1556f945e8f73a40a3d00b7c-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "140",
"valueFull": "336",
"title": "Energy, kcal"
},
{
"value100": "586",
"valueFull": "1407",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Fats, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Carbohydrates, g"
},
{
"value100": "8",
"valueFull": "8",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "936198df-44a5-4191-93a8-8b5876c76777",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Philadelphia Black Roll",
"description": "Salmon, Philadelphia cheese, cucumber, avocado, cuttlefish ink, sesame",
"fullDescription": "Black rolls are prepared with cuttlefish ink, which gives the dish a seafood flavor. Black rolls are very tasty and useful.",
"measureText": "240 g",
"price": 169,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/4a0f051118562706615fcf921d6388b9-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "143",
"valueFull": "341",
"title": "Energy, kcal"
},
{
"value100": "599",
"valueFull": "1428",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Fats, g"
},
{
"value100": "17",
"valueFull": "17",
"title": "Carbohydrates, g"
},
{
"value100": "8",
"valueFull": "8",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "260c719d-8de3-40ab-943b-ad622fa32892",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Philadelphia with Eel Roll",
"description": "Rice, creamy sir, cucumber, avocado, eel, unagі sauce, white sesame seeds.",
"fullDescription": "The Philadelphia roll is stuffed with cheese and avocado. The roll is wrapped in pieces of salmon. Philadelphia with eel is prepared from unagi fillets and with the sauce from the smoked eel.",
"measureText": "215 g",
"price": 145,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/213a067f94c186865c3978ddda630d97-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "141",
"valueFull": "340",
"title": "Energy, kcal"
},
{
"value100": "590",
"valueFull": "1424",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Fats, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Carbohydrates, g"
},
{
"value100": "9",
"valueFull": "9",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "79de3fb4-1e14-4a18-9435-475574d13249",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Philadelphia Tuna Roll",
"description": "Rice, nori, tuna, cream cheese, cucumber",
"fullDescription": "Philadelphia roll is an undeniable classic. This roll is considered the most popular since it is ordered most often. An ideally selected composition of ingredients creates a rich, everyone's favorite taste of Japanese cuisine!",
"measureText": "240 g",
"price": 155,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/ce85032bab405d163718bfb3575315fa-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "135",
"valueFull": "240",
"title": "Energy, kcal"
},
{
"value100": "565",
"valueFull": "1005",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Fats, g"
},
{
"value100": "14",
"valueFull": "14",
"title": "Carbohydrates, g"
},
{
"value100": "7",
"valueFull": "7",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "c6d63aa3-dac5-4520-9aa5-bcc36431a946",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Green Dragon Roll",
"description": "Eel, masago, cucumber, avocado, mayonnaise, unagi sauce, sesame seeds, rice, nori.",
"fullDescription": "Green Dragon in its classic version is loved by numerous fans of Japanese cuisine. The combination of smoked eel, avocado, and unagi sauce is delicious.",
"measureText": "275 g",
"price": 185,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/c1990f343463db7eea5b951ced6f90fe-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "180",
"valueFull": "495",
"title": "Energy, kcal"
},
{
"value100": "754",
"valueFull": "2072",
"title": "Energy, kJ"
},
{
"value100": "11",
"valueFull": "11",
"title": "Fats, g"
},
{
"value100": "13",
"valueFull": "13",
"title": "Carbohydrates, g"
},
{
"value100": "6",
"valueFull": "6",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "2e77ece9-eba0-4e83-8ee2-8a27b3e26668",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Signature tuna roll",
"description": "Smoked salmon, tuna, cream cheese, pear, cheddar cheese, cuttlefish ink, fries, spicy sauce.",
"fullDescription": "The signature tuna roll has rice covered with tuna shavings. Salmon goes well with tuna flakes.",
"measureText": "235 g",
"price": 165,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/589518406cfd190a34da1db4d3a965a4-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "151",
"valueFull": "355",
"title": "Energy, kcal"
},
{
"value100": "632",
"valueFull": "1486",
"title": "Energy, kJ"
},
{
"value100": "8",
"valueFull": "8",
"title": "Fats, g"
},
{
"value100": "12",
"valueFull": "12",
"title": "Carbohydrates, g"
},
{
"value100": "12",
"valueFull": "12",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
}
]
},
{
"id": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
"name": "Salads",
"url": "salads",
"items": [
{
"id": "68d11474-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Eurasia Salad",
"description": "Chicken breast in sweet and sour sauce with asparagus, young green peas, and broccoli",
"fullDescription": "Japanese salad with chicken made with transparent Chinese noodles, green juicy spinach, broccoli, and sesame seeds.",
"measureText": "310 g",
"price": 149,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/f36a248cae57f92bd295d1c96d2f9c82-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "72",
"valueFull": "223",
"title": "Energy, kcal"
},
{
"value100": "301",
"valueFull": "934",
"title": "Energy, kJ"
},
{
"value100": "3",
"valueFull": "3",
"title": "Fats, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Carbohydrates, g"
},
{
"value100": "11",
"valueFull": "11",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d10f05-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Fragrant chicken salad",
"description": "sous vide chicken fillet, bell pepper, feta cheese, seaweed, iceberg lettuce, creamy soy sauce, sesame, cilantro, onion.",
"fullDescription": "This salad has oriental, Thai notes - the spices added to it give such an amazing taste that neither salt nor pepper is required.",
"measureText": "320 g",
"price": 125,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/6c703e1ab951e4eb7349ef69a54a721f-400x0.png",
"promotionsIds": [],
"modifiers": [
"Hot",
" Medium",
" Mild"
],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "10",
"valueFull": "32",
"title": "Energy, kcal"
},
{
"value100": "42",
"valueFull": "134",
"title": "Energy, kJ"
},
{
"value100": "10",
"valueFull": "10",
"title": "Fats, g"
},
{
"value100": "10",
"valueFull": "10",
"title": "Carbohydrates, g"
},
{
"value100": "10",
"valueFull": "10",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [
"foodTypeAcute"
],
"promoLabelText": null
},
{
"id": "68d11958-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Fitness Salad",
"description": "Su-lind chicken fillet, bell pepper, feta cheese, chicken egg, seaweed salad, cucumber, sesame, tuna sauce, cilantro.",
"fullDescription": "A combination of low-calorie vegetables and meats is perfect for weight watchers and athletes. Iceberg lettuce leaves, tomatoes, chicken fillet, eggs, and greens contain the necessary proteins and vitamins. This light and healthy salad will make a great dinner, and the tuna sauce will enrich the overall taste of all products.",
"measureText": "340 g",
"price": 119,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/e9d548f5fd3241b1cc291c6c21d586a2-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "111",
"valueFull": "380",
"title": "Energy, kcal"
},
{
"value100": "465",
"valueFull": "1591",
"title": "Energy, kJ"
},
{
"value100": "4",
"valueFull": "4",
"title": "Fats, g"
},
{
"value100": "21",
"valueFull": "21",
"title": "Carbohydrates, g"
},
{
"value100": "11",
"valueFull": "11",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d11216-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Salad with beef, broccoli and asparagus",
"description": "Beef, broccoli, asparagus, tomatoes, signature sauce, sesame seeds, cilantro.",
"fullDescription": "A very spicy salad with a secret dressing. Can be consumed both hot and cold. Delicious, healthy and can be served as a separate dish.",
"measureText": "290 g",
"price": 155,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/ac8b33f36aac8d4bf0bd2621d441d622-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "10",
"valueFull": "10",
"title": "Fats, g"
},
{
"value100": "14",
"valueFull": "14",
"title": "Carbohydrates, g"
},
{
"value100": "18",
"valueFull": "18",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d11bb9-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Casablanca salad",
"description": "Tender sous vide chicken breast, broccoli, asparagus, and mixed cabbage, seasoned with spicy sauce and a little chili.",
"fullDescription": "A nutritious and healthy salad with fresh vegetables and chicken will sparkle with new flavors when mixed with Asian dressing. The dressing consists of fried onions, ginger, and garlic mixed with soy sauce, lemon juice, and dark sesame oil.",
"measureText": "280 g",
"price": 145,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/c4266e70bb9c07282abf7e0baac8f88c-400x0.png",
"promotionsIds": [],
"modifiers": [
"Hot",
" Medium",
" Mild"
],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "84",
"valueFull": "235",
"title": "Energy, kcal"
},
{
"value100": "352",
"valueFull": "984",
"title": "Energy, kJ"
},
{
"value100": "4",
"valueFull": "4",
"title": "Fats, g"
},
{
"value100": "15",
"valueFull": "15",
"title": "Carbohydrates, g"
},
{
"value100": "13",
"valueFull": "13",
"title": "Protein, g"
}
],
"foodTypes": [
"foodTypeAcute"
],
"promoLabelText": null
},
{
"id": "68d10bcb-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0039-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Signature salad",
"description": "We keep his recipe a strict secret, but it is definitely worth a try.",
"fullDescription": "The salad is served as a separate healthy dish. Enjoy its harmoniously balanced taste and textures.",
"measureText": "300 g",
"price": 139,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/f6262195a0a1a2af5ea8fafd932f6fde-400x0.png",
"promotionsIds": [],
"modifiers": [
"Hot",
" Medium",
" Mild"
],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "90",
"valueFull": "270",
"title": "Energy, kcal"
},
{
"value100": "377",
"valueFull": "1130",
"title": "Energy, kJ"
},
{
"value100": "8",
"valueFull": "8",
"title": "Fats, g"
},
{
"value100": "18",
"valueFull": "18",
"title": "Carbohydrates, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Protein, g"
}
],
"foodTypes": [
"foodTypeAcute"
],
"promoLabelText": null
}
]
},
{
"id": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
"name": "Drinks",
"url": "drinks",
"items": [
{
"id": "a011daf1-a724-4b45-99f4-42d8b5ccbd40",
"companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Dr.Pepper",
"description": "Refreshing drink.",
"fullDescription": "Dr. Pepper Carbonated soft drink.",
"measureText": "0.33 l",
"price": 1,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/45caac7860ae6c22cf27f38de58d29cf-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 ml",
"nutrientsData": [
{
"value100": "28",
"valueFull": "150",
"title": "Energy, kcal"
},
{
"value100": "117",
"valueFull": "628",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Carbohydrates, ml"
},
{
"value100": "40",
"valueFull": "40",
"title": "Of which sugar, ml"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d103d0-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Pepsi",
"description": "Refreshing drink.",
"fullDescription": "Carbonated soft drink.",
"measureText": "0,33 l",
"price": 1,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/aa62403d5c38ea2a76ec3ad457c770b1-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 ml",
"nutrientsData": [
{
"value100": "27",
"valueFull": "89",
"title": "Energy, kcal"
},
{
"value100": "113",
"valueFull": "373",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Carbohydrates, ml"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d1012c-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Sprite",
"description": "Refreshing drink.",
"fullDescription": "Carbonated soft drink.",
"measureText": "0,33 l",
"price": 1,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/d9f5db29d9d895e35015b2972376577b-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 ml",
"nutrientsData": [
{
"value100": "19",
"valueFull": "63",
"title": "Energy, kcal"
},
{
"value100": "80",
"valueFull": "264",
"title": "Energy, kJ"
},
{
"value100": "5",
"valueFull": "5",
"title": "Carbohydrates, ml"
},
{
"value100": "5",
"valueFull": "5",
"title": "Of which sugar, ml"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d10623-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Fanta",
"description": "Refreshing drink.",
"fullDescription": "Carbonated soft drink.",
"measureText": "0,33 l",
"price": 1,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/e5f6c28b55a6f7863e07d209cc2d0776-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 ml",
"nutrientsData": [
{
"value100": "33",
"valueFull": "109",
"title": "Energy, kcal"
},
{
"value100": "138",
"valueFull": "456",
"title": "Energy, kJ"
},
{
"value100": "8",
"valueFull": "8",
"title": "Carbohydrates, ml"
},
{
"value100": "8",
"valueFull": "8",
"title": "Of which sugar, ml"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d1093c-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Schweppes",
"description": "Refreshing drink.",
"fullDescription": "Carbonated soft drink.",
"measureText": "0,33 l",
"price": 1,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/de872f811b700c7e7a07216490965256-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 ml",
"nutrientsData": [
{
"value100": "37",
"valueFull": "122",
"title": "Energy, kcal"
},
{
"value100": "155",
"valueFull": "511",
"title": "Energy, kJ"
},
{
"value100": "9",
"valueFull": "9",
"title": "Carbohydrates, ml"
},
{
"value100": "9",
"valueFull": "9",
"title": "Of which sugar, ml"
}
],
"foodTypes": [],
"promoLabelText": null
},
{
"id": "68d0fb6e-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99f0457-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Coca-Cola",
"description": "Refreshing drink.",
"fullDescription": "Carbonated soft drink.",
"measureText": "0.33 l",
"price": 1,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/003b2a52214b9511c4e8966b831343be-400x0.png",
"promotionsIds": [],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 ml",
"nutrientsData": [
{
"value100": "42",
"valueFull": "139",
"title": "Energy, kcal"
},
{
"value100": "176",
"valueFull": "582",
"title": "Energy, kJ"
},
{
"value100": "11",
"valueFull": "11",
"title": "Carbohydrates, ml"
},
{
"value100": "11",
"valueFull": "11",
"title": "Of which sugar, ml"
}
],
"foodTypes": [],
"promoLabelText": null
}
]
}
],
"hasNext": false,
"promotions": []
}
Example response (200, Empty List):
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
Company Active Promotions.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/companies/eacdeDaa-CbdD-FBad-baAC-bDcDECdcddDc/promotions?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/companies/eacdeDaa-CbdD-FBad-baAC-bDcDECdcddDc/promotions',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"id": "f5b241d1-5521-11eb-9cdd-f23c92a7f68e",
"image": "https://assets.dots.live/misteram-public/710b3f0c766db49df6a1aaf296522bcb-400x0.png",
"title": "Save 20%",
"description": "Order any burger with a 20% discount!",
"expirationTime": 1638395999,
"promoLabelText": "-20%"
},
{
"id": "f5f7f68e-5521-11eb-9cdd-f23c92a7f68e",
"image": "https://assets.dots.live/misteram-public/733e88ff0741ca8669da87816f51c979-400x0.png",
"title": "Free delivery",
"description": "Free delivery for orders over $300",
"expirationTime": null,
"promoLabelText": "Free delivery"
},
{
"id": "f5b24e23-5521-11eb-9cdd-f23c92a7f68e",
"image": "https://assets.dots.live/misteram-public/6d2d09c5d0e1ff64252fb789446fda41-400x0.png",
"title": "Coca-Cola for free!",
"description": "Order Double Chicken Roll - get Coca-Cola for free!",
"expirationTime": 1640210399,
"promoLabelText": "Coca-Cola for free!"
}
],
"hasNext": false
}
Example response (200, Empty List):
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
Company Reviews.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/companies/BBcdBffc-eFBa-CCEB-edBa-DaEbbdBBceDb/reviews?offset=8&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/companies/BBcdBffc-eFBa-CCEB-edBa-DaEbbdBBceDb/reviews',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'offset'=> '8',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"id": "2abb0298-b0c6-40f8-8098-6a86bb7e906b",
"userName": "Ярослав",
"rating": 5,
"message": null,
"createdTime": 1635813782
},
{
"id": "fad38ebd-2c4b-4c4d-80cb-ef2abe9cab6c",
"userName": "Ярослав",
"rating": 5,
"message": null,
"createdTime": 1635813776
},
{
"id": "5d97a0f5-555f-40eb-914c-fa579554ee6e",
"userName": "@demo",
"rating": 0,
"message": "1111",
"createdTime": 1635775942
},
{
"id": "14f713c1-8a4e-4717-b3cb-bed013b3860b",
"userName": "@demo",
"rating": 5,
"message": "Qqqqq",
"createdTime": 1635775771
},
{
"id": "edfd3288-e3ee-4ab6-880b-8ecf7b790a8e",
"userName": "@demo",
"rating": 5,
"message": null,
"createdTime": 1633611162
},
{
"id": "c5f4a1ce-86f2-4d47-91d3-7c78656a9b13",
"userName": "@demo",
"rating": 5,
"message": null,
"createdTime": 1633336692
},
{
"id": "762d0245-eb32-400f-aaaf-5133810a6a1b",
"userName": "Yu",
"rating": 4,
"message": "Yyy",
"createdTime": 1633007136
},
{
"id": "0042a319-797f-4b5f-9737-f374a851d697",
"userName": "Yu",
"rating": 5,
"message": null,
"createdTime": 1633007088
},
{
"id": "461ba1ff-0343-4269-a400-efe5332b84d0",
"userName": "Ivan",
"rating": 5,
"message": null,
"createdTime": 1632993683
},
{
"id": "ecfaec0b-13e3-4512-8316-47393777627e",
"userName": "Ivan",
"rating": 5,
"message": null,
"createdTime": 1632993199
},
{
"id": "3d3e3ed1-5900-4f9c-9a75-cc933137699f",
"userName": "Yu",
"rating": 5,
"message": null,
"createdTime": 1632993047
},
{
"id": "3406cb1e-04d5-45b7-a3ae-a707275b5c57",
"userName": "Yu",
"rating": 5,
"message": null,
"createdTime": 1632991695
},
{
"id": "858e686e-4fe4-4873-8884-cfa3f359ecce",
"userName": "Ivan",
"rating": 5,
"message": "Guvgihohbj",
"createdTime": 1632990393
},
{
"id": "0d174c6e-a1b0-4827-a1bb-1acc965684c1",
"userName": "@demo",
"rating": 3,
"message": "Fff",
"createdTime": 1632919067
},
{
"id": "5060428b-8530-4a79-a6d0-6a0b899520bf",
"userName": "@demo",
"rating": 4,
"message": "Gg",
"createdTime": 1632918961
},
{
"id": "0c96011d-7316-4ec0-9ab0-a59afd20a8f3",
"userName": "Ivan",
"rating": 5,
"message": null,
"createdTime": 1632916655
},
{
"id": "9d175ea2-8d2f-4ba9-a3d4-be69c6a4dda0",
"userName": "Ivan",
"rating": 2,
"message": "Ewrwerweqrwqerwq",
"createdTime": 1632914571
},
{
"id": "5b8b9808-cf2b-46e7-9f48-c326bd2c336e",
"userName": "Ivan",
"rating": 5,
"message": null,
"createdTime": 1632911396
},
{
"id": "716e5498-f979-405d-8c2d-e6a44d64eee3",
"userName": "@demo",
"rating": 5,
"message": null,
"createdTime": 1632818434
},
{
"id": "c8221af0-f997-4d9d-af61-847b8c988775",
"userName": "Yu",
"rating": 4,
"message": "Тонкое тесто в пицце",
"createdTime": 1632739833
},
{
"id": "673ca9c7-9658-4cda-95c3-c58a98f83e46",
"userName": "Юл",
"rating": 5,
"message": null,
"createdTime": 1632377913
},
{
"id": "9719928a-ed39-463d-9e12-f5ebbebceb04",
"userName": "Юл",
"rating": 5,
"message": null,
"createdTime": 1632377789
},
{
"id": "9df396cc-0943-47f9-ba47-c725489cc058",
"userName": "Yu",
"rating": 5,
"message": null,
"createdTime": 1632377666
},
{
"id": "3bbaf73e-c66a-442c-b4f6-62387b8236dd",
"userName": "Yu",
"rating": 4,
"message": "Не приехало блюдо",
"createdTime": 1632377442
},
{
"id": "c3c2db6e-c1e9-4798-aaeb-489b38bea574",
"userName": "Yu",
"rating": 5,
"message": null,
"createdTime": 1632376320
},
{
"id": "4f738b47-d9fe-4cc3-ba39-cc3aa4dea073",
"userName": "@demo",
"rating": 5,
"message": null,
"createdTime": 1631544534
},
{
"id": "5209652f-b1c8-43de-9609-13d4f4250e7f",
"userName": "Yu",
"rating": 5,
"message": null,
"createdTime": 1631524615
},
{
"id": "c0131ab5-5954-4d25-b456-93e3a660a274",
"userName": "Yu",
"rating": 5,
"message": null,
"createdTime": 1631287403
},
{
"id": "77cee544-ba68-4f9f-8caa-a4d4c6d7f671",
"userName": "Yu",
"rating": 5,
"message": "",
"createdTime": 1628669711
},
{
"id": "f0d05da2-f819-41f4-87c6-cede7874d33a",
"userName": "Сергей",
"rating": 5,
"message": "",
"createdTime": 1625658890
}
],
"hasNext": true
}
Example response (200, Empty List):
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
Company Delivery Types.
If user location is specified than delivery types are shown accordingly to the location.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/companies/dEAfeAdE-DfAf-ddfF-cccA-dbBBaDfADFFb/delivery-types?latitude=51.1213&longitude=41.3232&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/companies/dEAfeAdE-DfAf-ddfF-cccA-dbBBaDfADFFb/delivery-types',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'latitude'=> '51.1213',
'longitude'=> '41.3232',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"title": "Home delivery",
"price": 0,
"type": 0,
"isPeopleCountAvailable": true
},
{
"title": "Door delivery",
"price": 0,
"type": 1,
"isPeopleCountAvailable": true
},
{
"title": "Takeaway",
"price": 0,
"type": 2,
"isPeopleCountAvailable": true
},
{
"title": "Table reservation",
"price": 0,
"type": 3,
"isPeopleCountAvailable": true
},
{
"title": "Serving to the table",
"price": 0,
"type": 4,
"isPeopleCountAvailable": true
},
{
"title": "Room delivery",
"price": 0,
"type": 5,
"isPeopleCountAvailable": true
}
],
"hasNext": false
}
Received response:
Request failed with error:
Company recommended items.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/companies/dbCAdECc-CaeF-cFDf-eFEd-CfdcCcdfdEBb/recommended-items?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/companies/dbCAdECc-CaeF-cFDf-eFEd-CfdcCcdfdEBb/recommended-items',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"items": [
{
"id": "68d12be7-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Beef bao burger",
"description": "Fresh bao bun, farm beef, cheddar, bell pepper, fresh onion, bbq sauce.",
"fullDescription": "Burger with two juicy farm beef patties, cheddar cheese, bell pepper and fresh onions, bbq sauce in a fresh bao bun.",
"measureText": "290 g",
"price": 169,
"promotionPrice": 135.2,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/63d8923e65f2f81132b60c3bee6e3e7d-400x0.png",
"promotionsIds": [
"f5b241d1-5521-11eb-9cdd-f23c92a7f68e",
"f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "180",
"valueFull": "521",
"title": "Energy, kcal"
},
{
"value100": "754",
"valueFull": "2181",
"title": "Energy, kJ"
},
{
"value100": "9",
"valueFull": "9",
"title": "Fats, g"
},
{
"value100": "5",
"valueFull": "5",
"title": "Of which saturated, g"
},
{
"value100": "12",
"valueFull": "12",
"title": "Carbohydrates, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Of which sugar, g"
},
{
"value100": "10",
"valueFull": "10",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": "2 promotions"
},
{
"id": "68d12418-5522-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f99efa0f-5521-11eb-9cdd-f23c92a7f68e",
"isAvailableToOrder": true,
"name": "Chicken Bao Burger",
"description": "Naturally smoked fillet grill, Chinese cabbage, tomatoes, sour-malt sauce, crispy turkey chips, fresh vegetables, two types of cheese, barbecue sauce",
"fullDescription": "The most delicious burger with a homemade bun, juicy chicken fillet, crispy turkey chips, fresh tomatoes and lettuce, pickled cucumbers and fresh red onions, Cheddar and Mozzarella cheeses, dressed with BBQ cream sauce.",
"measureText": "300 g",
"price": 159,
"promotionPrice": 127.2,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/df629ef71ee4dd32860e630641eb1547-400x0.png",
"promotionsIds": [
"f5b241d1-5521-11eb-9cdd-f23c92a7f68e",
"f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "3",
"valueFull": "822",
"title": "Energy, kcal"
},
{
"value100": "13",
"valueFull": "3442",
"title": "Energy, kJ"
},
{
"value100": "16",
"valueFull": "16",
"title": "Fats, g"
},
{
"value100": "7",
"valueFull": "7",
"title": "Of which saturated, g"
},
{
"value100": "16",
"valueFull": "16",
"title": "Carbohydrates, g"
},
{
"value100": "3",
"valueFull": "3",
"title": "Of which sugar, g"
},
{
"value100": "15",
"valueFull": "15",
"title": "Protein, g"
},
{
"value100": "1",
"valueFull": "1",
"title": "Salt, g"
}
],
"foodTypes": [],
"promoLabelText": "2 promotions"
},
{
"id": "936198df-44a5-4191-93a8-8b5876c76777",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Philadelphia Black Roll",
"description": "Salmon, Philadelphia cheese, cucumber, avocado, cuttlefish ink, sesame",
"fullDescription": "Black rolls are prepared with cuttlefish ink, which gives the dish a seafood flavor. Black rolls are very tasty and useful.",
"measureText": "240 g",
"price": 169,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/4a0f051118562706615fcf921d6388b9-400x0.png",
"promotionsIds": [
"f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "143",
"valueFull": "341",
"title": "Energy, kcal"
},
{
"value100": "599",
"valueFull": "1428",
"title": "Energy, kJ"
},
{
"value100": "7",
"valueFull": "7",
"title": "Fats, g"
},
{
"value100": "17",
"valueFull": "17",
"title": "Carbohydrates, g"
},
{
"value100": "8",
"valueFull": "8",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": "Free delivery"
},
{
"id": "2e77ece9-eba0-4e83-8ee2-8a27b3e26668",
"companyCategoryId": "146a4341-be88-4590-ae15-a602fa33c34a",
"isAvailableToOrder": true,
"name": "Signature tuna roll",
"description": "Smoked salmon, tuna, cream cheese, pear, cheddar cheese, cuttlefish ink, fries, spicy sauce.",
"fullDescription": "The signature tuna roll has rice covered with tuna shavings. Salmon goes well with tuna flakes.",
"measureText": "235 g",
"price": 165,
"promotionPrice": null,
"packagePrice": 0,
"maxCountPositionsInPackage": 1,
"image": "https://assets.dots.live/misteram-public/589518406cfd190a34da1db4d3a965a4-400x0.png",
"promotionsIds": [
"f5f7f68e-5521-11eb-9cdd-f23c92a7f68e"
],
"modifiers": [],
"nutrientsDataTitle": "Nutrition value per 100 g",
"nutrientsData": [
{
"value100": "151",
"valueFull": "355",
"title": "Energy, kcal"
},
{
"value100": "632",
"valueFull": "1486",
"title": "Energy, kJ"
},
{
"value100": "8",
"valueFull": "8",
"title": "Fats, g"
},
{
"value100": "12",
"valueFull": "12",
"title": "Carbohydrates, g"
},
{
"value100": "12",
"valueFull": "12",
"title": "Protein, g"
}
],
"foodTypes": [],
"promoLabelText": "Free delivery"
}
],
"hasNext": false
}
Example response (200, Empty List):
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
Company Item Info.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/items/nisi?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/items/nisi',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"item": {
"id": "d4e1623c-1def-43eb-a7c3-d9055aefed78",
"companyCategoryId": "60af6add-1a11-46d3-b920-770cb1598c88",
"isAvailableToOrder": true,
"name": "Test",
"description": "Description",
"fullDescription": "Full Description",
"measureText": "nme8rnmD0s Undefined",
"price": 41,
"promotionPrice": null,
"packagePrice": 14,
"maxCountPositionsInPackage": 1,
"image": "http://clients-api.test/uploads/images/Mt23fOPg1b-400x0.png",
"promotionsIds": [],
"modifiers": array:1 [,
0: "kTpKUEgwcD",
],
"nutrientsData": [],
"promoLabelText": null
},
"promotions": [],
"modifierGroups": []
}
Received response:
Request failed with error:
Orders
Store Order.
requires authentication
Delivery types:
0 - delivery to door
1 - delivery to flat
2 - pickup
3 - table booking (used when user want to book a table)
4 - order in company (used when user is in company and want to make order to table)
5 - inner order to room (used for hotels)
Payment types:
1 - cash
2 - online (used when user want to pay with a card or Apple Pay/GPay.)
3 - terminal (used when user want to pay with a credit card to your courier/company)
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/orders?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/orders',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"id": "95760c30-ba38-48fa-ae19-5ad41cbe7749"
}
Received response:
Request failed with error:
Order info.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/orders/et?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/orders/et',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"id": "f2d8c084-abca-435c-a937-25bacca9650e",
"number": "976-91940",
"cityId": "f68b48c2-5521-11eb-9cdd-f23c92a7f68e",
"companyId": "f7bccc99-5521-11eb-9cdd-f23c92a7f68e",
"showReorderButton": false,
"companyActive": true,
"completedTime": null,
"companyName": "Jack's Burgers",
"delivery": {
"deliveryTypeText": "Door delivery",
"deliveryAddress": ", "
},
"deliveryTime": {
"title": "As soon as possible",
"type": "asap"
},
"payment": {
"type": 2,
"title": "Online"
},
"user": {
"name": "vel",
"phone": "380630001122",
"wishes": "",
"peopleCount": null
},
"prices": {
"itemsPrice": 198,
"packagePrice": 0,
"deliveryPrice": 55,
"promoCodeDiscountAmount": 0,
"paidByCashbackAmount": 0,
"receivingCashbackAmount": 0,
"checkPrice": 198,
"fullPrice": 253
},
"items": [
{
"id": "68d0ecf3-5522-11eb-9cdd-f23c92a7f68e",
"count": 2,
"name": "Signature pizza",
"modifierValue": null,
"price": 99,
"promoPrice": null,
"isAvailableToOrder": false
}
],
"review": null
}
Received response:
Request failed with error:
Online payment Data.
requires authentication
When you create order system will create online payment. When it is created you need to redirect to checkoutUrl or use token to render payment within SDK.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/orders/CbcCfCdA-dFBf-cfcf-daEB-dFaDdccDaCac/online-payment-data?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/orders/CbcCfCdA-dFBf-cfcf-daEB-dFaDdccDaCac/online-payment-data',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"id": "0a9b4a1e-6ea5-4398-ad58-f1f4a8b813d2",
"status": 1,
"onlinePayment": {
"merchantId": 1440488,
"orderPrice": 21990,
"description": "Payment for order",
"currency": "UAH",
"operationId": "15164-dots",
"token": "67c814e2593e23ede3135a16cb5bf89af5faeb33",
"commission": 0.027,
"feeAmount": 594,
"callbackUrl": "https://jackburgersbar.com/ua/chernigov/cart/success",
"checkoutUrl": "https://pay.fondy.eu/merchants/61afab6b27e2c096f3ab183360792381/default/index.html?token=67c814e2593e23ede3135a16cb5bf89af5faeb33",
"totalPrice": 22584
}
}
Received response:
Request failed with error:
Order courier info.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/orders/AbdEabff-dfBE-BFcd-cdEb-dFAABDFFBAFF/courier-data?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/orders/AbdEabff-dfBE-BFcd-cdEb-dFAABDFFBAFF/courier-data',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"courier": {
"name": "Andrew 127"
},
"courierRoute": {
"status": 10,
"duration": 54,
"lastUpdated": 1622118255,
"currentCourierPositionDTO": {
"latitude": 51.496267236017,
"longitude": 31.306502453193
},
"routeCourierPositionDTOs": [
{
"latitude": 51.496267236017,
"longitude": 31.306502453193
},
{
"latitude": 51.496267236017,
"longitude": 31.306502453193
},
{
"latitude": 51.496267236017,
"longitude": 31.306502453193
},
{
"latitude": 51.49618693554,
"longitude": 31.30643749379
},
{
"latitude": 51.49618693554,
"longitude": 31.30643749379
},
{
"latitude": 51.49618693554,
"longitude": 31.30643749379
},
{
"latitude": 51.49618693554,
"longitude": 31.30643749379
},
{
"latitude": 51.49618693554,
"longitude": 31.30643749379
},
{
"latitude": 51.49618693554,
"longitude": 31.30643749379
},
{
"latitude": 51.49618693554,
"longitude": 31.30643749379
}
]
}
}
Received response:
Request failed with error:
Decline Order.
requires authentication
Example request:
curl --request PATCH \
"clients-api.dots.live/api/v2/orders/cdbBFbBB-ddAf-dCaf-dBDf-BEcdCABdDfdb/decline?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'clients-api.dots.live/api/v2/orders/cdbBFbBB-ddAf-dCaf-dBDf-BEcdCABdDfdb/decline',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
[
"ok"
]
Received response:
Request failed with error:
Get repeat order cart info.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/orders/FFACAaBD-ccFd-fdeC-BAfb-dfEeAcaABdfd/repeat-cart-data?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/orders/FFACAaBD-ccFd-fdeC-BAfb-dfEeAcaABdfd/repeat-cart-data',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
storage/app/scribe/responses/orders/repeat/success.json
Received response:
Request failed with error:
Review: Store Order Review.
requires authentication
Reviews with 5 rating will be shown in the company page immediately. Reviews with any message will be shown only after moderation.
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/orders/assumenda/reviews?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"companyRating\": 4,
\"companyMessage\": \"Soup was too salty.\",
\"courierRating\": 4,
\"courierMessage\": \"Courier was late.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/orders/assumenda/reviews',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'companyRating' => 4,
'companyMessage' => 'Soup was too salty.',
'courierRating' => 4,
'courierMessage' => 'Courier was late.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
[
"ok"
]
Received response:
Request failed with error:
Review: Update order review <aside>Message is required for reviews with rating 4 or less.</aside> Reviews with 5 rating will be shown in the company page immediately.
requires authentication
Reviews with any message will be shown only after moderation.
Example request:
curl --request PATCH \
"clients-api.dots.live/api/v2/orders/commodi/reviews/quibusdam?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"companyRating\": 4,
\"companyMessage\": \"Soup was too salty.\",
\"courierRating\": 4,
\"courierMessage\": \"Courier was late.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'clients-api.dots.live/api/v2/orders/commodi/reviews/quibusdam',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'companyRating' => 4,
'companyMessage' => 'Soup was too salty.',
'courierRating' => 4,
'courierMessage' => 'Courier was late.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
[
"ok"
]
Received response:
Request failed with error:
User Addresses
Validate User Address.
You can validate address without saving to check if user address is correctly recognized by and if it is in city polygon o delivery.
User Address types:
0 - apartment
1 - private house
2 - office
3 - other
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/user-addresses/validate?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"cityId\": \"8aa41c38-2229-427d-a6cd-b93c5d11da5c\",
\"type\": 0,
\"street\": \"Shevchenko\",
\"house\": \"11a\",
\"flat\": \"7\",
\"stage\": \"3\",
\"note\": \"The entrance is between bank and drugstore.\",
\"title\": \"Sweet home.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/user-addresses/validate',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'cityId' => '8aa41c38-2229-427d-a6cd-b93c5d11da5c',
'type' => 0,
'street' => 'Shevchenko',
'house' => '11a',
'flat' => '7',
'stage' => '3',
'note' => 'The entrance is between bank and drugstore.',
'title' => 'Sweet home.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success):
{
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"type": 0,
"position": {
"latitude": 51.50403,
"longitude": 31.33999
},
"inCityPolygon": true,
"street": "shevchenko",
"house": "99b",
"flat": "7",
"stage": "3",
"note": "New buildings",
"title": null
}
Example response (200, Success With not found address coordinates):
{
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"type": 0,
"position": null,
"inCityPolygon": false,
"street": "2312312",
"house": "99b",
"flat": "7",
"stage": "3",
"note": "New buildings",
"title": null
}
Example response (422, Validation fails):
{
"message": "The given data was invalid.",
"errors": {
"cityId": [
"validation.required"
],
"type": [
"validation.required"
],
"street": [
"validation.required"
],
"house": [
"validation.required"
],
"flat": [
"validation.required"
],
"stage": [
"validation.required"
]
}
}
Received response:
Request failed with error:
Store User Address.
Validation is the same as in Validate User Address.
Example request:
curl --request POST \
"clients-api.dots.live/api/v2/user-addresses?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"cityId\": \"8aa41c38-2229-427d-a6cd-b93c5d11da5c\",
\"type\": 0,
\"street\": \"Shevchenko\",
\"house\": \"11a\",
\"flat\": \"7\",
\"stage\": \"3\",
\"note\": \"The entrance is between bank and drugstore.\",
\"title\": \"Sweet home.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
'clients-api.dots.live/api/v2/user-addresses',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'cityId' => '8aa41c38-2229-427d-a6cd-b93c5d11da5c',
'type' => 0,
'street' => 'Shevchenko',
'house' => '11a',
'flat' => '7',
'stage' => '3',
'note' => 'The entrance is between bank and drugstore.',
'title' => 'Sweet home.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success):
{
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"type": 0,
"position": {
"latitude": 51.50403,
"longitude": 31.33999
},
"inCityPolygon": true,
"street": "shevchenko",
"house": "99b",
"flat": "7",
"stage": "3",
"note": "New buildings",
"title": null
}
Example response (200, Success With not found address coordinates):
{
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"type": 0,
"position": null,
"inCityPolygon": false,
"street": "2312312",
"house": "99b",
"flat": "7",
"stage": "3",
"note": "New buildings",
"title": null
}
Example response (422, Validation fails):
{
"message": "The given data was invalid.",
"errors": {
"cityId": [
"validation.required"
],
"type": [
"validation.required"
],
"street": [
"validation.required"
],
"house": [
"validation.required"
],
"flat": [
"validation.required"
],
"stage": [
"validation.required"
]
}
}
Received response:
Request failed with error:
Update User Address.
Validation is the same as in Validate User Address.
Example request:
curl --request PATCH \
"clients-api.dots.live/api/v2/user-addresses/sequi?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"cityId\": \"8aa41c38-2229-427d-a6cd-b93c5d11da5c\",
\"type\": 0,
\"street\": \"Shevchenko\",
\"house\": \"11a\",
\"flat\": \"7\",
\"stage\": \"3\",
\"note\": \"The entrance is between bank and drugstore.\",
\"title\": \"Sweet home.\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'clients-api.dots.live/api/v2/user-addresses/sequi',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
'json' => [
'cityId' => '8aa41c38-2229-427d-a6cd-b93c5d11da5c',
'type' => 0,
'street' => 'Shevchenko',
'house' => '11a',
'flat' => '7',
'stage' => '3',
'note' => 'The entrance is between bank and drugstore.',
'title' => 'Sweet home.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success):
{
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"type": 0,
"position": {
"latitude": 51.50403,
"longitude": 31.33999
},
"inCityPolygon": true,
"street": "shevchenko",
"house": "99b",
"flat": "7",
"stage": "3",
"note": "New buildings",
"title": null
}
Example response (200, Success With not found address coordinates):
{
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"type": 0,
"position": null,
"inCityPolygon": false,
"street": "2312312",
"house": "99b",
"flat": "7",
"stage": "3",
"note": "New buildings",
"title": null
}
Example response (422, Validation fails):
{
"message": "The given data was invalid.",
"errors": {
"cityId": [
"validation.required"
],
"type": [
"validation.required"
],
"street": [
"validation.required"
],
"house": [
"validation.required"
],
"flat": [
"validation.required"
],
"stage": [
"validation.required"
]
}
}
Received response:
Request failed with error:
Destroy User Address.
requires authentication
Example request:
curl --request DELETE \
"clients-api.dots.live/api/v2/user-addresses/totam?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'clients-api.dots.live/api/v2/user-addresses/totam',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
[
"ok"
]
Received response:
Request failed with error:
Users
User Orders: Active list.
requires authentication
Active Orders that are in progress and orders that requires review will be returned here.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/sed/orders/active?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/sed/orders/active',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"message": "App Token is invalid",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
"line": 1146,
"trace": [
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
"line": 44,
"function": "abort",
"class": "Illuminate\\Foundation\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Auth/AppAuth.php",
"line": 34,
"function": "abort"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Auth\\AppAuth",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAppTokenHeader.php",
"line": 30,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Headers\\VerifyAppTokenHeader",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAccountTokenHeader.php",
"line": 38,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Headers\\VerifyAccountTokenHeader",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/StoreUserApiVersion.php",
"line": 44,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\StoreUserApiVersion",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/RestrictUnsupportedApiVersion.php",
"line": 34,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\RestrictUnsupportedApiVersion",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 116,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 726,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 703,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 667,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 656,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 167,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 141,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/vapor-core/src/Http/Middleware/ServeStaticAssets.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Laravel\\Vapor\\Http\\Middleware\\ServeStaticAssets",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 40,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 86,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 62,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 39,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php",
"line": 48,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustHosts",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 116,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 142,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 111,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 299,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 287,
"function": "callLaravelOrLumenRoute",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 89,
"function": "makeApiCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 45,
"function": "makeResponseCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 35,
"function": "makeResponseCallIfConditionsPass",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 222,
"function": "__invoke",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 179,
"function": "iterateThroughStrategies",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 116,
"function": "fetchResponses",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 123,
"function": "processRoute",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 80,
"function": "extractEndpointsInfoFromLaravelApp",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 56,
"function": "extractEndpointsInfoAndWriteToDisk",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
"line": 55,
"function": "get",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 41,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 93,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 37,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 651,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 136,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Command/Command.php",
"line": 308,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 121,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 998,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 299,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 171,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Application.php",
"line": 102,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 129,
"function": "run",
"class": "Illuminate\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/artisan",
"line": 37,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Received response:
Request failed with error:
User Orders: History list.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/repellat/orders/history?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/repellat/orders/history',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"items": [{
"id" => "fb6be6bd-9089-4408-8837-89f27897745b",
"status" => "7",
"title" => "19.05.2021 - Test - #111-11111",
}],
"hasNext": false
Received response:
Request failed with error:
User Info.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/commodi?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/commodi',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"message": "App Token is invalid",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
"line": 1146,
"trace": [
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
"line": 44,
"function": "abort",
"class": "Illuminate\\Foundation\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Auth/AppAuth.php",
"line": 34,
"function": "abort"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Auth\\AppAuth",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAppTokenHeader.php",
"line": 30,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Headers\\VerifyAppTokenHeader",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAccountTokenHeader.php",
"line": 38,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Headers\\VerifyAccountTokenHeader",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/StoreUserApiVersion.php",
"line": 44,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\StoreUserApiVersion",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/RestrictUnsupportedApiVersion.php",
"line": 34,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\RestrictUnsupportedApiVersion",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 116,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 726,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 703,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 667,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 656,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 167,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 141,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/vapor-core/src/Http/Middleware/ServeStaticAssets.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Laravel\\Vapor\\Http\\Middleware\\ServeStaticAssets",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 40,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 86,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 62,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 39,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php",
"line": 48,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustHosts",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 116,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 142,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 111,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 299,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 287,
"function": "callLaravelOrLumenRoute",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 89,
"function": "makeApiCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 45,
"function": "makeResponseCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 35,
"function": "makeResponseCallIfConditionsPass",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 222,
"function": "__invoke",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 179,
"function": "iterateThroughStrategies",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 116,
"function": "fetchResponses",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 123,
"function": "processRoute",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 80,
"function": "extractEndpointsInfoFromLaravelApp",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 56,
"function": "extractEndpointsInfoAndWriteToDisk",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
"line": 55,
"function": "get",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 41,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 93,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 37,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 651,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 136,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Command/Command.php",
"line": 308,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 121,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 998,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 299,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 171,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Application.php",
"line": 102,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 129,
"function": "run",
"class": "Illuminate\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/artisan",
"line": 37,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Received response:
Request failed with error:
User Notifications List.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/enim/notifications?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/enim/notifications',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"hasNext": false,
"items": [{
"id" => "UUID",
"title" => "Вам нараховано кешбек.",
"text" => "Вам успішно нараховано кешбек у розмірі 30.00. Дякуємо за замовлення",
"image" => null,
"sent_at" => 1604918827,
"read" => true,
"pushNotificationActionData" => {
"params" => {
"cityId" => "UUID",
"orderId" => "UUID",
"fallback_screen" => "order-details-info",
},
"screen" => "active-orders"
},
}]
}
Received response:
Request failed with error:
User Addresses List By City.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/molestiae/addresses/by-city/corporis?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/molestiae/addresses/by-city/corporis',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"hasNext": false,
"items": [{
"id" => "UUID",
"userId" => "UUID",
"cityId" => "UUID",
"type" => 0,
"street" => "Shevchenko",
"house" => "99b",
"flat" => "1",
"stage" => "5",
"title" => "Home",
"note" => "Near hotel",
"position" => {
"latitude" => 51.4,
"longitude" => 31.4
},
"inCityPolygon" => true
}]
}
Received response:
Request failed with error:
Update User City.
requires authentication
Update users city id: used when user selects another city.
Example request:
curl --request PATCH \
"clients-api.dots.live/api/v2/users/molestiae/city?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'clients-api.dots.live/api/v2/users/molestiae/city',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
User state.
requires authentication
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/nemo/state?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/nemo/state',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"unreadNotificationsCount" => 0,
"actualOrdersCount" => 0,
}
Received response:
Request failed with error:
User Cashback info.
requires authentication
Returns user available balance and info text.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/ex/cashback-info?v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/ex/cashback-info',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"availableBalance" => 95.0
"infoText" => """
Як отримати кешбек?\n
\n
\n
Зроби замовлення через сайт чи мобільний додаток. Через 30 хв. після успішного замовлення ми нарахуємо кешбек. Сумма кешбеку становить 1% від чеку, без урахування доставки.\n
\n
\n
Як скористатися кешбеком?\n
\n
\n
Використати бонуси можна тільки через додаток. При оформленні замовлення введи всі свої дані для доставки та активуй кешбек. Мінімальна сума для списання бонусів – 50 грн.\n
\n
\n
У разі, якщо ти використав кешбек для оплати замовлення, а воно було неуспішним, кешбек повертається на рахунок. Якщо сума кешбеку не відображається, онови додаток до останньої версії.\n
\n
\n
Кешбек не нараховується:\n
\n
якщо замовляння було зроблене по телефону;\n
\n
якщо замовлення було неуспішним;\n
\n
на суму знижок за акціями та промо-кодами;\n
\n
на вартість доставки.
""",
"rateText" => "1 bonus = 1 :currency",
"transactions" => [
{
"title" => "06.05.2021 - New York Street Pizza",
"amount" => 44.37,
"orderId" => "3339",
},
],
}
Received response:
Request failed with error:
Users Statistics By Phone.
requires authentication
Requires permission: users-index. This endpoint usually used to show user's statics for operator(call center).
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/users/statistics-by-phone?phone=380631837252&v=2.0.0" \
--header "Api-Auth-Token: {{YOUR_API_AUTH_TOKEN}}" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/users/statistics-by-phone',
[
'headers' => [
'Api-Auth-Token' => '{{YOUR_API_AUTH_TOKEN}}',
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'phone'=> '380631837252',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Success Example):
{
"user": {
"id": "85f65390-001e-11ec-b62f-91e4f52e2402",
"cashbackAvailableBalance": 200,
"phone": "380631837250",
"lang": "ua",
"name": "Yehor Herasymchuk",
"cityName": "Chernihiv",
"about": "Dots Platform CTO / Likes spicy chicken. "
},
"orders": [
{
"id": "06f1efa3-fcd1-4252-a228-55e32456dfea",
"status": 1,
"deliveryType": 4,
"fullPrice": 100.5,
"company": {
"id": "631da261-93f8-4e05-b3b0-9f374dc0f261",
"name": "Hochu Pizza",
"urlPath": "/en/chernihiv/hochu-pizza"
},
"createdTime": 1652953170,
"completedTime": null,
"deadlineTime": 1652960400
}
],
"userAddresses": [
{
"id": "e278317b-dd17-4d0c-a3bf-ed3e8935e8be",
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"userId": "85f65390-001e-11ec-b62f-91e4f52e2402",
"type": 0,
"position": {
"latitude": 51.49667,
"longitude": 31.29202
},
"inCityPolygon": true,
"street": "Проспект Миру 41а кв. 18",
"house": null,
"flat": null,
"stage": null,
"note": null,
"title": null
},
{
"id": "39f85c1f-58c1-48ee-8b0a-dd17551d029f",
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"userId": "85f65390-001e-11ec-b62f-91e4f52e2402",
"type": 0,
"position": {
"latitude": 51.4938,
"longitude": 31.30932
},
"inCityPolygon": true,
"street": "Вулиця Пушкіна 12",
"house": null,
"flat": null,
"stage": null,
"note": null,
"title": null
}
]
}
Received response:
Request failed with error:
WebPages
Account Main Page Site Blocks data.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/pages/main/site-blocks?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/pages/main/site-blocks',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"items": [],
"hasNext": false
}
Received response:
Request failed with error:
Page Data By Url.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/pages/by-url?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/pages/by-url',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200, Company Item):
{
"url": "/chernigov/peperoni-release-a/soft-drinks/koka-kola",
"type": "company-item",
"lang": "ua",
"entities": {
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"cityCategoryId": null,
"companyId": "f7abed3b-5521-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": "f937434a-5521-11eb-9cdd-f23c92a7f68e",
"itemId": "68739ed3-5522-11eb-9cdd-f23c92a7f68e"
},
"redirect": null
}
Example response (200, Redirect for old company item):
{
"url": "/en/chernigov/peperoni-release-a/koka-kola",
"type": "company-item-old",
"lang": "ua",
"entities": {
"cityId": "f688da6b-5521-11eb-9cdd-f23c92a7f68e",
"cityCategoryId": null,
"companyId": "f7abed3b-5521-11eb-9cdd-f23c92a7f68e",
"companyCategoryId": null,
"itemId": "68739ed3-5522-11eb-9cdd-f23c92a7f68e"
},
"redirect": {
"code": 301,
"url": "/chernigov/peperoni-release-a/soft-drinks/koka-kola"
}
}
Received response:
Request failed with error:
Page Seo.
Available Page Types:
main
city
city-promotions
city-promotions-category
city-category
company
company-info
company-promotions
company-delivery
company-reviews
company-category
company-item
cart-index
cart-checkout
cart-success
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/pages/main/seo?url=%2Fkyiv%2Fcelentano&v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/pages/main/seo',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'url'=> '/kyiv/celentano',
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"pageType": "main",
"seo": {
"title": "Jack's Burger Bar - Food order and delivery service",
"ogTitle": "Jack's Burger Bar - Food order and delivery service",
"description": "Food order and delivery service",
"ogDescription": "Food order and delivery service",
"ogImage": "https://via.placeholder.com/640x480.png/0077bb?text=alias.png",
"ogUrl": "/",
"ogSiteName": "Jack's Burger Bar"
}
}
Received response:
Request failed with error:
Account Cashback Page data.
Example request:
curl --request GET \
--get "clients-api.dots.live/api/v2/pages/cashback?v=2.0.0" \
--header "Api-Token: {{YOUR_API_TOKEN}}" \
--header "Api-Account-Token: {{YOUR_ACCOUNT_TOKEN}}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
$client = new \GuzzleHttp\Client();
$response = $client->get(
'clients-api.dots.live/api/v2/pages/cashback',
[
'headers' => [
'Api-Token' => '{{YOUR_API_TOKEN}}',
'Api-Account-Token' => '{{YOUR_ACCOUNT_TOKEN}}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'v'=> '2.0.0',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
access-control-expose-headers: *
{
"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
"line": 1143,
"trace": [
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
"line": 44,
"function": "abort",
"class": "Illuminate\\Foundation\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Controllers/Api/Pages/CashbackPageSiteBlockController.php",
"line": 32,
"function": "abort"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "__invoke",
"class": "App\\Http\\Controllers\\Api\\Pages\\CashbackPageSiteBlockController",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"function": "callAction",
"class": "Illuminate\\Routing\\Controller",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 268,
"function": "dispatch",
"class": "Illuminate\\Routing\\ControllerDispatcher",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 211,
"function": "runController",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 725,
"function": "run",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 141,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAppTokenHeader.php",
"line": 30,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Headers\\VerifyAppTokenHeader",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/Headers/VerifyAccountTokenHeader.php",
"line": 38,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\Headers\\VerifyAccountTokenHeader",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/StoreUserApiVersion.php",
"line": 44,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\StoreUserApiVersion",
"type": "->"
},
{
"file": "/var/www/clients-api/app/Http/Middleware/RestrictUnsupportedApiVersion.php",
"line": 34,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "App\\Http\\Middleware\\RestrictUnsupportedApiVersion",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 116,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 726,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 703,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 667,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 656,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 167,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 141,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/vapor-core/src/Http/Middleware/ServeStaticAssets.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Laravel\\Vapor\\Http\\Middleware\\ServeStaticAssets",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 40,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 86,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 62,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 39,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustHosts.php",
"line": 48,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 180,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustHosts",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 116,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 142,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 111,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 299,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 287,
"function": "callLaravelOrLumenRoute",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 89,
"function": "makeApiCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 45,
"function": "makeResponseCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 35,
"function": "makeResponseCallIfConditionsPass",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 222,
"function": "__invoke",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 179,
"function": "iterateThroughStrategies",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 116,
"function": "fetchResponses",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 123,
"function": "processRoute",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 80,
"function": "extractEndpointsInfoFromLaravelApp",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 56,
"function": "extractEndpointsInfoAndWriteToDisk",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
"line": 55,
"function": "get",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 41,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 93,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 37,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 651,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 136,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Command/Command.php",
"line": 308,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 121,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 998,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 299,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/symfony/console/Application.php",
"line": 171,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Console/Application.php",
"line": 102,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 129,
"function": "run",
"class": "Illuminate\\Console\\Application",
"type": "->"
},
{
"file": "/var/www/clients-api/artisan",
"line": 37,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Received response:
Request failed with error: