MENU navbar-image

Introduction

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

Authenticating requests

To authenticate requests, include an Authorization header 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"
    }
}
 

Request      

POST api/beyond/report-anomaly/insight

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

insight_id   string   

Example: repellendus

rating   integer   

La valeur de value doit Γͺtre supΓ©rieure ou Γ©gale Γ  1. La valeur de value ne peut Γͺtre supΓ©rieure Γ  5. Example: 5

text   string  optional  

This field is required when object is not present. Example: veniam

object   object  optional  

This field is required when text is not present.

persist   boolean  optional  

Example: false

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."
}
 

Request      

GET api/beyond/phone-calls/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

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
 

Request      

DELETE api/beyond/phone-calls/{phoneCallId}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

phoneCallId   string   

Example: phone_call_id_test_e2e

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"
}
 

Request      

GET api/beyond/phone-calls/{phoneCall}/audio-long-term

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

phoneCall   string   

Example: phone_call_id_test_e2e

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"
}
 

Request      

GET api/beyond/phone-calls/{phoneCall}/audio

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

phoneCall   string   

Example: phone_call_id_test_e2e

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"
}
 

Request      

GET api/beyond/phone-calls

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

filter[provider_call_id]   string  optional  

Exact id of provider call Example: Carrefour

filter[call_title]   string  optional  

Exact match for the call title Example: Support Call

filter[text]   string  optional  

Partial match of text to look in call metadata Example: Hello+World

filter[transcript.text]   string  optional  

Partial match of text to look in transcript Example: Hello+World

filter[created_at_time_ge]   string  optional  

Minimum time to filter phone calls Example: 10:30

filter[created_at_time_le]   string  optional  

Maximum time to filter phone calls Example: 10:40

filter[created_at_date_ge]   string  optional  

Minimum date to filter phone calls Example: 2024-04-28

filter[created_at_date_le]   string  optional  

Maximum date to filter phone calls Example: 2024-04-29

filter[created_at_day_of_week_ge]   string  optional  

Minimum day of the week to filter phone calls Example: 1

filter[created_at_day_of_week_le]   string  optional  

Maximum day of the week to filter phone calls Example: 5

filter[created_at_day_of_week_eq]   string  optional  

Exact day of the week to filter phone calls Example: 3

filter[duration_ge]   string  optional  

Minimum duration of the phone call (in seconds) Example: 300

filter[duration_le]   string  optional  

Maximum duration of the phone call (in seconds) Example: 1800

filter[duration_eq]   string  optional  

Exact duration of the phone call (in seconds) Example: 600

filter[tags.word]   string  optional  

Exact match of words to look in tags Example: Hello

filter[diabolocom_agent_id]   string  optional  

Exact match for Diabolocom agent id Example: agent-123

filter[diabolocom_agent_name]   string  optional  

Exact match for Diabolocom agent name Example: Lilian

filter[diabolocom_queue_id]   string  optional  

Exact match for Diabolocom queue id Example: queue-456

filter[diabolocom_wrap_up_code]   string  optional  

Exact match for Diabolocom wrap-up code Example: wrap-789

filter[diabolocom_wrap_up_name]   string  optional  

Exact match for Diabolocom wrap-up name Example: Customer Satisfaction

POST api/beyond/phone-calls/{phoneCallId}/tags

Example request:
curl --request POST \
    "http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e/tags" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tags\": [
        \"eaque\"
    ]
}"
const url = new URL(
    "http://diabolocom-ai.local/api/beyond/phone-calls/phone_call_id_test_e2e/tags"
);

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

let body = {
    "tags": [
        "eaque"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/beyond/phone-calls/{phoneCallId}/tags

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

phoneCallId   string   

Example: phone_call_id_test_e2e

Body Parameters

tags   string[]  optional  

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": {}
}
 

Request      

GET api/beyond/phone-calls/{phoneCallId}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

phoneCallId   string   

Example: 9a679a83-75ed-437e-84a1-f9d7be4a981a

Query Parameters

include   string  optional  

Example: endUserAiInsights

Must be one of:
  • transcript
  • endUserAiInsights
  • metadata

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": "->"
        }
    ]
}
 

Request      

GET api/beyond/real-time-sessions/signaling

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

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"
}
 

Request      

GET api/beyond/real-time-sessions/connection

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

interactionId   string   

The interaction id associated to a real time session Example: quisquam

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"
}
 

Request      

GET api/beyond/real-time-sessions/subscriptions

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

interaction_id   string   

The interaction id associated to a real time session Example: quia

clientId   string   

The client id to subscribe to the real time session Example: molestiae

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
 

[]
 

Request      

GET api/beyond/real-time-sessions/browser-extension/{interactionId}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

interactionId   string   

Example: aut

Tags Endpoints

List of endpoints associated to tags

GET api/beyond/tags/statistics/export

Example request:
curl --request GET \
    --get "http://diabolocom-ai.local/api/beyond/tags/statistics/export?sort=period_average_score_difference&filter%5Btag_id%5D=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://diabolocom-ai.local/api/beyond/tags/statistics/export"
);

const params = {
    "sort": "period_average_score_difference",
    "filter[tag_id]": "1",
};
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):

Binary data -  The exported tags statistics file
 

Request      

GET api/beyond/tags/statistics/export

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

sort   string  optional  

Example: period_average_score_difference

Must be one of:
  • period_average_score_difference
filter[date.(ge|le)]   string  optional  

Minimum and Maximum date to look for tags statistics Example: 2024-04-28

filter[tag.word]   string  optional  

Look for a specific word in the tag Example: red

filter[tag_id]   string  optional  

Look for a specific tag id Example: 1

filter[period_occurrences.(gt|lt|ge|le)]   string  optional  

comparison filter for period occurences Example: 10

filter[period_average_score.(ge|le|eq)]   string  optional  

comparison filter for average score on period Example: 50

filter[period_occurrences_difference.(ge|le|eq)]   string  optional  

comparison filter for period occurences difference Example: 2

filter[period_average_score_difference.(ge|le|eq)]   string  optional  

comparison filter for average score difference on period Example: 15

GET api/beyond/tags

Example request:
curl --request GET \
    --get "http://diabolocom-ai.local/api/beyond/tags?sort=word&filter%5Bword%5D=an%2Bexact%2Bword&include=occurencesCount" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://diabolocom-ai.local/api/beyond/tags"
);

const params = {
    "sort": "word",
    "filter[word]": "an+exact+word",
    "include": "occurencesCount",
};
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):


{
    "data": [
        {
            "id": "fbadfd4b-c549-47da-9707-37278e3c02fa",
            "name": "perspiciatis"
        },
        {
            "id": "273aa333-3c17-4975-8200-86bf3faf0feb",
            "name": "vero"
        }
    ]
}
 

Request      

GET api/beyond/tags

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

sort   string  optional  

Example: word

Must be one of:
  • (-)word
  • (-)occurrences_count
filter[word]   string  optional  

Example: an+exact+word

include   string  optional  

Example: occurencesCount

Must be one of:
  • occurencesCount

GET api/beyond/tags/statistics

Example request:
curl --request GET \
    --get "http://diabolocom-ai.local/api/beyond/tags/statistics?sort=period_average_score_difference&filter%5Btag_id%5D=1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://diabolocom-ai.local/api/beyond/tags/statistics"
);

const params = {
    "sort": "period_average_score_difference",
    "filter[tag_id]": "1",
};
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, List of tags statistics):


Need an example here
 

Request      

GET api/beyond/tags/statistics

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

sort   string  optional  

Example: period_average_score_difference

Must be one of:
  • period_average_score_difference
filter[date.(ge|le)]   string  optional  

Minimum and Maximum date to look for tags statistics Example: 2024-04-28

filter[tag.word]   string  optional  

Look for a specific word in the tag Example: red

filter[tag_id]   string  optional  

Look for a specific tag id Example: 1

filter[period_occurrences.(gt|lt|ge|le)]   string  optional  

comparison filter for period occurences Example: 10

filter[period_average_score.(ge|le|eq)]   string  optional  

comparison filter for average score on period Example: 50

filter[period_occurrences_difference.(ge|le|eq)]   string  optional  

comparison filter for period occurences difference Example: 2

filter[period_average_score_difference.(ge|le|eq)]   string  optional  

comparison filter for average score difference on period Example: 15

POST api/beyond/tags/{fromTag_id}/merge-to/{toTag_id}

Example request:
curl --request POST \
    "http://diabolocom-ai.local/api/beyond/tags/10a09129-0bff-455a-bc8d-268bcb02f99c/merge-to/10a09129-0bff-455a-bc8d-268bcb02f99c" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://diabolocom-ai.local/api/beyond/tags/10a09129-0bff-455a-bc8d-268bcb02f99c/merge-to/10a09129-0bff-455a-bc8d-268bcb02f99c"
);

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

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (200):


null
 

Example response (422):


{
    "message": "Impossible to merge tags, report the bug & retry later"
}
 

Request      

POST api/beyond/tags/{fromTag_id}/merge-to/{toTag_id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

fromTag_id   string   

The ID of the fromTag. Example: 10a09129-0bff-455a-bc8d-268bcb02f99c

toTag_id   string   

The ID of the toTag. Example: 10a09129-0bff-455a-bc8d-268bcb02f99c