Introduction
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
AI Insights Endpoints
List of endpoints associated to AI Insights
POST api/beyond/report-anomaly/insight
Example request:
curl --request POST \
"http://diabolocom-ai.local/api/beyond/report-anomaly/insight" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"insight_id\": \"repellendus\",
\"rating\": 5,
\"text\": \"veniam\",
\"persist\": false
}"
const url = new URL(
"http://diabolocom-ai.local/api/beyond/report-anomaly/insight"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"insight_id": "repellendus",
"rating": 5,
"text": "veniam",
"persist": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"data": {
"id": "6d148a6c-bddc-4260-91d4-369331f9450c",
"text": "Est velit nemo voluptas sit voluptas voluptates. Dicta quibusdam et quo facilis magni inventore deleniti atque. Voluptate assumenda et eius.",
"object": [],
"type": "title"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Phone Calls Endpoints
List of endpoints associated to Phone Calls and in the future to any entity where we can use AI on it
GET api/beyond/phone-calls/export
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/phone-calls/export" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/phone-calls/export"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Binary data - The exported file
Example response (404):
{
"message": "File not found."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/beyond/phone-calls/{phoneCallId}
Example request:
curl --request DELETE \
"http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
true
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/beyond/phone-calls/{phoneCall}/audio-long-term
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e/audio-long-term" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e/audio-long-term"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Binary data - Stream Response of the audio file (format:mp3)
Example response (404):
{
"message": "No recording available"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/beyond/phone-calls/{phoneCall}/audio
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e/audio" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e/audio"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Binary data - Stream Response of the audio file (format:mp3)
Example response (404):
{
"message": "No recording available"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/beyond/phone-calls
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/phone-calls?filter%5Bprovider_call_id%5D=Carrefour&filter%5Bcall_title%5D=Support+Call&filter%5Btext%5D=Hello%2BWorld&filter%5Bcreated_at_time_ge%5D=10%3A30&filter%5Bcreated_at_time_le%5D=10%3A40&filter%5Bcreated_at_date_ge%5D=2024-04-28&filter%5Bcreated_at_date_le%5D=2024-04-29&filter%5Bcreated_at_day_of_week_ge%5D=1&filter%5Bcreated_at_day_of_week_le%5D=5&filter%5Bcreated_at_day_of_week_eq%5D=3&filter%5Bduration_ge%5D=300&filter%5Bduration_le%5D=1800&filter%5Bduration_eq%5D=600&filter%5Bdiabolocom_agent_id%5D=agent-123&filter%5Bdiabolocom_agent_name%5D=Lilian&filter%5Bdiabolocom_queue_id%5D=queue-456&filter%5Bdiabolocom_wrap_up_code%5D=wrap-789&filter%5Bdiabolocom_wrap_up_name%5D=Customer+Satisfaction" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/phone-calls"
);
const params = {
"filter[provider_call_id]": "Carrefour",
"filter[call_title]": "Support Call",
"filter[text]": "Hello+World",
"filter[created_at_time_ge]": "10:30",
"filter[created_at_time_le]": "10:40",
"filter[created_at_date_ge]": "2024-04-28",
"filter[created_at_date_le]": "2024-04-29",
"filter[created_at_day_of_week_ge]": "1",
"filter[created_at_day_of_week_le]": "5",
"filter[created_at_day_of_week_eq]": "3",
"filter[duration_ge]": "300",
"filter[duration_le]": "1800",
"filter[duration_eq]": "600",
"filter[diabolocom_agent_id]": "agent-123",
"filter[diabolocom_agent_name]": "Lilian",
"filter[diabolocom_queue_id]": "queue-456",
"filter[diabolocom_wrap_up_code]": "wrap-789",
"filter[diabolocom_wrap_up_name]": "Customer Satisfaction",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"phone_calls": [
{
"id": "714c2167-853e-4ef9-9005-d1d1e29f88fb",
"original_id": "f6fc0107-688f-3898-87c0-197a024d5388",
"duration": 3287,
"job_id": "aab3b81d-a987-43f4-96c3-05885add5198",
"job_status": "success",
"agent_id": null,
"created_at": "2025-08-12 10:23",
"transcript": {
"text": "Quisquam non non autem. Laborum et qui earum voluptatem odio. Qui sequi asperiores deserunt quaerat.\n\nVeritatis aliquam expedita pariatur optio vero non ratione. Facere ratione id quo repellat cum non animi. Vero animi nostrum velit commodi enim. Ab error voluptate qui quod debitis in a minus.\n\nQuia occaecati aut a in rerum neque repellendus molestiae. Veniam est dolore a. Nesciunt excepturi provident quos placeat adipisci explicabo amet. Sunt consequatur nihil dolorum quo exercitationem.",
"diarized_text": "Exercitationem saepe aut vel repellendus corporis modi earum. Asperiores est sed doloribus in temporibus. Aut et non aspernatur culpa est consequuntur voluptatum.\n\nPraesentium libero omnis voluptatibus consequatur quae debitis blanditiis. Et possimus sit aspernatur perferendis neque assumenda exercitationem ducimus. Est aut ducimus ad eius dolor mollitia enim.\n\nExpedita voluptatem voluptatem cum sed doloremque. Quisquam necessitatibus consequatur dolor doloribus ut ut. Omnis hic illo ducimus nihil totam et. Est ex porro sunt quia est.",
"segments": [
{
"id": "b6e7b1ba-85ef-484e-8c43-59d3fd35dfda",
"text": "Hic recusandae in distinctio explicabo maxime.",
"start": 43384,
"end": 153883,
"duration": 110499,
"speaker": "second",
"words": [
{
"id": "31e35476-5306-454f-81b1-4f4d19b22d1f",
"text": "exercitationem",
"start": 234,
"end": 504,
"duration": 270,
"probability": null,
"speaker": "second",
"segment_id": "b6e7b1ba-85ef-484e-8c43-59d3fd35dfda"
},
{
"id": "ab0f4c0c-f293-49c2-b6dd-887ab52ced80",
"text": "sint",
"start": 320,
"end": 873,
"duration": 553,
"probability": null,
"speaker": "first",
"segment_id": "b6e7b1ba-85ef-484e-8c43-59d3fd35dfda"
},
{
"id": "fc1180af-4ba4-4ee8-8509-5e1a9e13fbd3",
"text": "quisquam",
"start": 300,
"end": 801,
"duration": 501,
"probability": null,
"speaker": "first",
"segment_id": "b6e7b1ba-85ef-484e-8c43-59d3fd35dfda"
}
],
"start_end_timestamps": "00:43-02:33"
}
]
},
"ai_insights": [
{
"id": "898d6c80-fa1c-4ad4-90ef-10195afea49b",
"text": "Et et dolores provident ut provident cupiditate quasi. Nam hic possimus impedit odit fugit. Qui placeat iste vel et veritatis.",
"object": [],
"type": "title"
},
{
"id": "b6f48782-fae2-4ab3-b9bb-efc6277e576f",
"text": "Quisquam enim distinctio dicta harum. A repellendus delectus adipisci eveniet repellendus sint. Fugiat fugiat nihil voluptatem doloribus.",
"object": [],
"type": "title"
}
],
"title": "Et et dolores provident ut provident cupiditate quasi. Nam hic possimus impedit odit fugit. Qui placeat iste vel et veritatis.",
"tags": [],
"full_text": "",
"audio_is_long_stored": false
},
{
"id": "57fd6116-8e9c-4969-9291-3c0657f08867",
"original_id": "f8776f16-9743-3c9e-94ad-e40e3c89edc2",
"duration": 3301,
"job_id": "181a18c1-ed14-4a83-ac68-9eba454488f2",
"job_status": "success",
"agent_id": null,
"created_at": "2025-08-12 10:23",
"transcript": {
"text": "Ut sit velit vel eligendi. Est architecto accusantium qui. Est id voluptatibus nobis exercitationem officiis dolor eligendi et. Sed iure labore quasi et ut quo.\n\nEos alias est voluptatem dolor aut recusandae ullam. Temporibus consequatur fuga velit autem aspernatur quos minima. Fugiat tempore tempora vel in. Hic fuga qui suscipit necessitatibus.\n\nCupiditate esse dignissimos consequuntur ipsum. Aperiam error et quis sed non. Ea architecto praesentium quod aut ut.",
"diarized_text": "Aut beatae et sint mollitia beatae. Odit enim quia illo. Voluptatem quisquam cupiditate voluptates voluptatem ut rerum vitae. Quia non eos quasi hic nulla aut qui. Qui veniam qui error magnam aut id.\n\nPossimus est quae error sit earum ipsa qui. Voluptas nihil quam ratione blanditiis reiciendis officiis quia quisquam. Dolor vitae aut aspernatur. Optio laboriosam similique quae rerum harum iusto accusantium.\n\nBeatae alias odit enim laborum. Non consequatur id possimus perferendis. Mollitia alias voluptatem tenetur debitis nulla quo facere consectetur. Maiores explicabo quam nihil nihil quidem reprehenderit sed.",
"segments": [
{
"id": "e39fde66-d3ce-4e7d-a71a-e5175dbda94f",
"text": "Quo dicta aut et suscipit quia quis.",
"start": 15425,
"end": 168621,
"duration": 153196,
"speaker": "second",
"words": [
{
"id": "1fd58dcc-0203-4a8b-9f65-a8e45279878b",
"text": "omnis",
"start": 411,
"end": 760,
"duration": 349,
"probability": null,
"speaker": "second",
"segment_id": "e39fde66-d3ce-4e7d-a71a-e5175dbda94f"
},
{
"id": "b914a6a7-039c-444d-80c6-7b79a41cd98b",
"text": "et",
"start": 388,
"end": 916,
"duration": 528,
"probability": null,
"speaker": "first",
"segment_id": "e39fde66-d3ce-4e7d-a71a-e5175dbda94f"
},
{
"id": "f0d6787a-1d2d-442a-8010-ee362aa1774f",
"text": "dolor",
"start": 410,
"end": 935,
"duration": 525,
"probability": null,
"speaker": "second",
"segment_id": "e39fde66-d3ce-4e7d-a71a-e5175dbda94f"
}
],
"start_end_timestamps": "00:15-02:48"
}
]
},
"ai_insights": [
{
"id": "182d3255-7aee-4b5b-ac38-2dc8b0144699",
"text": "Et in qui dolore quia. Earum excepturi quis voluptatem facere aut eum. Consequatur nesciunt atque id alias nam quaerat mollitia. Delectus enim harum velit sapiente aut.",
"object": [],
"type": "title"
},
{
"id": "7725f12d-ceaa-4dae-be18-73fa6aa98b60",
"text": "Voluptatem nemo natus et tenetur natus ut. Aut libero eius non. Distinctio fuga assumenda sed. Natus eius nam et id facere.",
"object": [],
"type": "title"
}
],
"title": "Et in qui dolore quia. Earum excepturi quis voluptatem facere aut eum. Consequatur nesciunt atque id alias nam quaerat mollitia. Delectus enim harum velit sapiente aut.",
"tags": [],
"full_text": "",
"audio_is_long_stored": false
}
],
"cursor": "some cursor token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/beyond/phone-calls/{phoneCallId}/tags
GET api/beyond/phone-calls/{phoneCallId}
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/phone-calls/9a679a83-75ed-437e-84a1-f9d7be4a981a?include=endUserAiInsights" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/phone-calls/9a679a83-75ed-437e-84a1-f9d7be4a981a"
);
const params = {
"include": "endUserAiInsights",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"id": "9a679a83-75ed-437e-84a1-f9d7be4a981a",
"original_id": "09cd4e64-1c54-3298-b7d4-4fdf3e2ec6fa",
"duration": 3036,
"job_id": "6b4e572b-b7a0-4049-b705-c202303cf71b",
"job_status": "success",
"agent_id": null,
"created_at": "2025-08-12 10:23",
"transcript": {
"text": "Perspiciatis id esse non maiores et. Enim minus quidem consequuntur eveniet. Est quidem velit sit.\n\nIste quis magni molestiae quod. Ut fugiat numquam voluptates possimus neque. Enim sed quis cupiditate itaque sit distinctio et consectetur.\n\nIpsa id aperiam dolores esse adipisci alias. Quod amet tenetur autem aut.",
"diarized_text": "Eveniet ipsum ab nostrum maiores et id. Deserunt corporis itaque autem facilis quos unde id excepturi. Reprehenderit aliquid veritatis nobis dolore voluptate. Illo inventore doloremque omnis reiciendis voluptatem voluptas quae.\n\nCupiditate dignissimos dolores nesciunt autem nemo quidem. Aliquam ducimus sunt officiis sint maxime a exercitationem. Aut perferendis aut quam voluptate. Dolor voluptates qui quia quaerat suscipit harum.\n\nVeniam delectus necessitatibus voluptatibus necessitatibus. Eum amet sunt dolor porro. Enim quia ipsam nobis quos nam. Rerum at voluptas non.",
"segments": [
{
"id": "cf982e84-3ac9-4942-a0a7-980a135b0e08",
"text": "In iste eaque debitis perferendis suscipit aut qui.",
"start": 54325,
"end": 139395,
"duration": 85070,
"speaker": "first",
"words": [
{
"id": "7eb7c67c-21d6-4b36-b222-43e9ccc48eef",
"text": "non",
"start": 360,
"end": 956,
"duration": 596,
"probability": null,
"speaker": "first",
"segment_id": "cf982e84-3ac9-4942-a0a7-980a135b0e08"
},
{
"id": "d78d8447-d163-4a8e-b3fe-1ab090f7720d",
"text": "qui",
"start": 165,
"end": 735,
"duration": 570,
"probability": null,
"speaker": "first",
"segment_id": "cf982e84-3ac9-4942-a0a7-980a135b0e08"
},
{
"id": "dc73b4aa-4174-4a95-848d-c8f5e43b5309",
"text": "praesentium",
"start": 282,
"end": 633,
"duration": 351,
"probability": null,
"speaker": "first",
"segment_id": "cf982e84-3ac9-4942-a0a7-980a135b0e08"
}
],
"start_end_timestamps": "00:54-02:19"
}
]
},
"ai_insights": [
{
"id": "57d3b202-4ce5-479f-bf62-89aae30407ca",
"text": "Quas quia soluta est at iste consequuntur molestiae optio. Qui maiores qui vero. Sit vero qui et mollitia. Iusto nihil non est est ipsum enim voluptatum. Soluta et enim tempora id est ullam.",
"object": [],
"type": "title"
},
{
"id": "beb0b55e-2326-47b1-8649-16b19c4d10a5",
"text": "Consequatur natus est quae expedita voluptatem provident eligendi. Voluptatem non officia incidunt pariatur eos et voluptatem enim. Odit dolorem quisquam facilis quis magnam tempora ratione in.",
"object": [],
"type": "title"
}
],
"title": "Quas quia soluta est at iste consequuntur molestiae optio. Qui maiores qui vero. Sit vero qui et mollitia. Iusto nihil non est est ipsum enim voluptatum. Soluta et enim tempora id est ullam.",
"tags": [],
"full_text": "",
"audio_is_long_stored": false,
"meta": {}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Real Time Sessions Endpoints
List of endpoints associated to Real Time Sessions
GET api/beyond/real-time-sessions/signaling
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/real-time-sessions/signaling" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/real-time-sessions/signaling"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
vary: Origin
{
"message": "App\\Actions\\RealTimeSessions\\AuthorizeIncomingClientSignalingRequest::parseBearerToken(): Argument #1 ($bearerToken) must be of type string, null given, called in /var/app/app/Traits/TraitVerifiesJwtTokenClaims.php on line 55",
"exception": "TypeError",
"file": "/var/app/app/Traits/TraitVerifiesJwtTokenClaims.php",
"line": 58,
"trace": [
{
"file": "/var/app/app/Traits/TraitVerifiesJwtTokenClaims.php",
"line": 55,
"function": "parseBearerToken",
"class": "App\\Actions\\RealTimeSessions\\AuthorizeIncomingClientSignalingRequest",
"type": "::"
},
{
"file": "/var/app/app/Actions/RealTimeSessions/AuthorizeIncomingClientSignalingRequest.php",
"line": 22,
"function": "parseIncomingJwtTokenFromRequest",
"class": "App\\Actions\\RealTimeSessions\\AuthorizeIncomingClientSignalingRequest",
"type": "::"
},
{
"file": "/var/app/vendor/lorisleiva/laravel-actions/src/Concerns/AsObject.php",
"line": 24,
"function": "handle",
"class": "App\\Actions\\RealTimeSessions\\AuthorizeIncomingClientSignalingRequest",
"type": "->"
},
{
"file": "/var/app/app/Actions/RealTimeSessions/GenerateSignalingClientWssConnectionJwtTokenForSocketUser.php",
"line": 26,
"function": "run",
"class": "App\\Actions\\RealTimeSessions\\AuthorizeIncomingClientSignalingRequest",
"type": "::"
},
{
"file": "/var/app/vendor/lorisleiva/laravel-actions/src/Decorators/ControllerDecorator.php",
"line": 168,
"function": "asController",
"class": "App\\Actions\\RealTimeSessions\\GenerateSignalingClientWssConnectionJwtTokenForSocketUser",
"type": "->"
},
{
"file": "/var/app/vendor/lorisleiva/laravel-actions/src/Decorators/ControllerDecorator.php",
"line": 138,
"function": "resolveFromRouteAndCall",
"class": "Lorisleiva\\Actions\\Decorators\\ControllerDecorator",
"type": "->"
},
{
"file": "/var/app/vendor/lorisleiva/laravel-actions/src/Decorators/ControllerDecorator.php",
"line": 71,
"function": "run",
"class": "Lorisleiva\\Actions\\Decorators\\ControllerDecorator",
"type": "->"
},
{
"file": "/var/app/vendor/lorisleiva/laravel-actions/src/Decorators/ControllerDecorator.php",
"line": 59,
"function": "__invoke",
"class": "Lorisleiva\\Actions\\Decorators\\ControllerDecorator",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 43,
"function": "callAction",
"class": "Lorisleiva\\Actions\\Decorators\\ControllerDecorator",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 259,
"function": "dispatch",
"class": "Illuminate\\Routing\\ControllerDispatcher",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 205,
"function": "runController",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 806,
"function": "run",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/app/app/Http/Middleware/JwtAuthMiddleware.php",
"line": 16,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\JwtAuthMiddleware",
"type": "->"
},
{
"file": "/var/app/app/Http/Middleware/GetLocaleFromHttpAcceptLanguage.php",
"line": 31,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "App\\Http\\Middleware\\GetLocaleFromHttpAcceptLanguage",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
"line": 50,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 159,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 125,
"function": "handleRequest",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
"line": 87,
"function": "handleRequestUsingNamedLimiter",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 25,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Laravel\\Sanctum\\Http\\Middleware\\{closure}",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/sanctum/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php",
"line": 24,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 805,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 784,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 748,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 737,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 200,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 144,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
"line": 31,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
"line": 40,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
"line": 99,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
"line": 62,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\HandleCors",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
"line": 39,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 183,
"function": "handle",
"class": "Illuminate\\Http\\Middleware\\TrustProxies",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 119,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 175,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 144,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 303,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 291,
"function": "callLaravelOrLumenRoute",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 102,
"function": "makeApiCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 44,
"function": "makeResponseCall",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Strategies/Responses/ResponseCalls.php",
"line": 35,
"function": "makeResponseCallIfConditionsPass",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 231,
"function": "__invoke",
"class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 159,
"function": "iterateThroughStrategies",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Extracting/Extractor.php",
"line": 91,
"function": "fetchResponses",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 127,
"function": "processRoute",
"class": "Knuckles\\Scribe\\Extracting\\Extractor",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 74,
"function": "extractEndpointsInfoFromLaravelApp",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/GroupedEndpoints/GroupedEndpointsFromApp.php",
"line": 52,
"function": "extractEndpointsInfoAndWriteToDisk",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/app/vendor/knuckleswtf/scribe/src/Commands/GenerateDocumentation.php",
"line": 53,
"function": "get",
"class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 36,
"function": "handle",
"class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Container/Util.php",
"line": 41,
"function": "Illuminate\\Container\\{closure}",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 93,
"function": "unwrapIfClosure",
"class": "Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
"line": 35,
"function": "callBoundMethod",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Container/Container.php",
"line": 662,
"function": "call",
"class": "Illuminate\\Container\\BoundMethod",
"type": "::"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 211,
"function": "call",
"class": "Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/var/app/vendor/symfony/console/Command/Command.php",
"line": 326,
"function": "execute",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Console/Command.php",
"line": 180,
"function": "run",
"class": "Symfony\\Component\\Console\\Command\\Command",
"type": "->"
},
{
"file": "/var/app/vendor/symfony/console/Application.php",
"line": 1096,
"function": "run",
"class": "Illuminate\\Console\\Command",
"type": "->"
},
{
"file": "/var/app/vendor/symfony/console/Application.php",
"line": 324,
"function": "doRunCommand",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/app/vendor/symfony/console/Application.php",
"line": 175,
"function": "doRun",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
"line": 201,
"function": "run",
"class": "Symfony\\Component\\Console\\Application",
"type": "->"
},
{
"file": "/var/app/artisan",
"line": 35,
"function": "handle",
"class": "Illuminate\\Foundation\\Console\\Kernel",
"type": "->"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/beyond/real-time-sessions/connection
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/real-time-sessions/connection?interactionId=quisquam" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/real-time-sessions/connection"
);
const params = {
"interactionId": "quisquam",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"token": "someConnectionToken"
}
Example response (404):
{
"message": "No real time session with this interactionId found for account"
}
Example response (404):
{
"message": "No real time session found for this socket user id"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/beyond/real-time-sessions/subscriptions
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/real-time-sessions/subscriptions?interaction_id=quia&clientId=molestiae" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/real-time-sessions/subscriptions"
);
const params = {
"interaction_id": "quia",
"clientId": "molestiae",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Example response (404):
{
"message": "No real time session found for this socket user id"
}
Example response (404):
{
"message": "No real time session with this interactionId found for account"
}
Example response (422):
{
"user": "Socket user is not part of the real time session"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/beyond/real-time-sessions/browser-extension/{interactionId}
Example request:
curl --request GET \
--get "http://diabolocom-ai.local/api/beyond/real-time-sessions/browser-extension/aut" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://diabolocom-ai.local/api/beyond/real-time-sessions/browser-extension/aut"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (403):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
vary: Origin
[]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Tags Endpoints
List of endpoints associated to tags
GET api/beyond/tags/statistics/export
GET api/beyond/tags
GET api/beyond/tags/statistics
POST api/beyond/tags/{fromTag_id}/merge-to/{toTag_id}