### Meeting Events Response Example Source: https://docs.public-api.leexi.ai/reference/list-meeting-events Example JSON response returned by the list meeting events endpoint, showing a collection of meeting objects and pagination metadata. ```json { "data": [ { "uuid": "bcdvde61-b4b5-4c93-96be-aa5162086f4d", "title": "Nihil tenetur dolore illum.", "organizer": { "email": "philippe@leexi.ai" }, "attendees": [ { "email": "bob@test.com" }, { "email": "alice@test.com" } ], "meeting_url": "https://teams.microsoft.com/l/meetup-join/...", "meeting_provider": "teams_meeting", "internal": false, "direction": "outbound", "start_time": "2024-06-20T09:30:00.000Z", "end_time": "2024-06-20T10:00:00.000Z", "description": "Maxime pariatur vitae. Pariatur ea reprehenderit. Et omnis id.", "owned": true, "to_record": true, "bot_scheduled": false, "bot_running": false, "bot_runs" : [ { "uuid": "f3d6e1d4-aa2c-489b-9b73-6db6b0e5089a", "start_time": "2024-06-20T09:30:00.000Z", "end_time": "2024-06-20T10:30:00.000Z", "recording_start_time": "2024-06-20T09:35:00.000Z", "end_reason": "participants_left" } ], "origin": "api", "created_at": "2024-06-13T11:40:12.759Z", "updated_at": "2024-06-13T11:40:12.759Z", "recording_notified": false, "active": true }, { "uuid": "bgd3gh77-9e4f-4928-8f96-e531d029e196", "title": "Ipsam omnis ullam est.", "organizer": { "email": "martin@leexi.ai" }, "attendees": [ { "email": "carole@test.com" } ], "meeting_url": "https://meet.google.com/abc-defg-hij", "meeting_provider": "google_meeting", "internal": false, "direction": "outbound", "start_time": "2024-06-20T10:30:00.000Z", "end_time": "2024-06-20T11:00:00.000Z", "description": "Ut hic libero. Dolores repellat beatae. Placeat provident repellendus.", "owned": true, "to_record": true, "bot_scheduled": false, "bot_running": false, "bot_runs": [], "origin": "api", "created_at": "2024-06-13T12:40:12.688Z", "updated_at": "2024-06-13T12:40:12.688Z", "recording_notified": false, "active": true } ], "pagination": { "page": 2, "items": 10, "count": 12 } } ``` -------------------------------- ### GET /users Source: https://docs.public-api.leexi.ai/reference/list-users Retrieves a list of users from the system. ```APIDOC ## GET /users ### Description Retrieves a list of users. ### Method GET ### Endpoint https://public-api.leexi.ai/v1/users ### Response #### Success Response (200) - **data** (object) - The list of users. ``` -------------------------------- ### GET /calls Source: https://docs.public-api.leexi.ai/reference/list-calls Retrieves a list of calls from the system. ```APIDOC ## GET /calls ### Description Retrieves a list of calls. ### Method GET ### Endpoint https://public-api.leexi.ai/v1/calls ### Response #### Success Response (200) - **data** (object) - The list of calls. #### Error Response (400) - **success** (boolean) - Indicates the request failed. - **message** (string) - Error description. #### Response Example { "success": false, "message": "An error occurred" } ``` -------------------------------- ### Success Response Example Source: https://docs.public-api.leexi.ai/reference/create-a-call The JSON response returned upon a successful call submission. ```json { "message": "successfully submitted call for creation" } ``` -------------------------------- ### GET /users Source: https://docs.public-api.leexi.ai/reference/list-users List all users in your workspace. Requires the read_users permission scope. ```APIDOC ## GET /users ### Description List all users in your workspace. ### Method GET ### Endpoint /users ### Parameters #### Query Parameters - **page** (integer) - Optional - Page number (default: 1) - **items** (integer) - Optional - Number of items per page, min: 1, max: 100 (default: 10) ### Response #### Success Response (200) - **data** (array) - List of user objects - **pagination** (object) - Pagination metadata #### Response Example { "data": [ { "uuid": "befb9860-8661-442a-9496-8743de9e17cd", "name": "John Smith", "email": "john.smith@acme.com", "active": true, "license": "pro", "team": { "uuid": "5290728d-b3c4-4330-918d-d8f153e9500d", "name": "Sales Team", "active": true }, "created_at": "2024-06-14T11:00:33.534Z", "updated_at": "2024-06-14T11:00:33.534Z" } ], "pagination": { "page": 1, "items": 10, "count": 1 } } ``` -------------------------------- ### GET /calls Source: https://docs.public-api.leexi.ai/reference/list-calls Retrieves a list of calls with pagination support. ```APIDOC ## GET /calls ### Description Retrieves a paginated list of calls recorded in the system. ### Method GET ### Endpoint /calls ### Response #### Success Response (200) - **data** (array) - List of call objects - **pagination** (object) - Pagination metadata including count, items, and page #### Response Example { "data": [ { "uuid": "422dda3c-6e1b-4868-b96e-acd12fdf9139", "title": "Aliquam pretium ut arcu id", "created_at": "2024-06-13T10:52:26.579Z", "duration": 123.716 } ], "pagination": { "count": 42, "items": 10, "page": 1 } } ``` -------------------------------- ### GET /calls Source: https://docs.public-api.leexi.ai/reference/get-call Retrieves details for a specific call. ```APIDOC ## GET /calls ### Description Retrieves information about a call, including transcript details, timestamps, and metadata. ### Method GET ### Endpoint https://public-api.leexi.ai/v1/calls ### Response #### Success Response (200) - **uuid** (string) - Unique identifier for the call - **transcript_url** (string) - URL to the call transcript - **updated_at** (string) - Timestamp of the last update - **visible** (boolean) - Visibility status of the call - **video_archived_at** (string) - Timestamp when the video was archived ``` -------------------------------- ### GET /teams Source: https://docs.public-api.leexi.ai/reference/list-teams List all teams in your workspace. Requires the `read_teams` permission scope on the API key. ```APIDOC ## GET /teams ### Description List all teams in your workspace. ### Method GET ### Endpoint /teams ### Parameters #### Query Parameters - **page** (integer) - Optional - Page number (default: 1) - **items** (integer) - Optional - Number of items per page (min: 1, max: 100, default: 10) ### Response #### Success Response (200) - **data** (array) - List of team objects - **pagination** (object) - Pagination metadata #### Response Example { "data": [ { "uuid": "5290728d-b3c4-4330-918d-d8f153e9500d", "name": "Sales Team", "active": true, "created_at": "2024-06-14T11:00:33.534Z", "updated_at": "2024-06-14T11:00:33.534Z" } ], "pagination": { "page": 1, "items": 10, "count": 1 } } ``` -------------------------------- ### GET /call-notes Source: https://docs.public-api.leexi.ai/reference/list-call-notes Retrieves a list of call notes. ```APIDOC ## GET /call-notes ### Description Retrieves a list of call notes from the system. ### Method GET ### Endpoint https://public-api.leexi.ai/v1/call-notes ### Response #### Success Response (200) - **pagination** (object) - Contains count, items, and page information. #### Error Responses - **400** - Bad Request (e.g., missing required parameters) - **404** - Call not found - **422** - Unprocessable Entity (e.g., invalid prompt category) ``` -------------------------------- ### 400 Bad Request Error Response Source: https://docs.public-api.leexi.ai/reference/create-a-meeting-event Example of the JSON response returned when a required field is missing. ```json { "success": false, "message": "text is required" } ``` -------------------------------- ### GET /meeting-events Source: https://docs.public-api.leexi.ai/reference/list-meeting-events Retrieves a list of meeting events from the system. ```APIDOC ## GET /meeting-events ### Description Retrieves a list of meeting events. ### Method GET ### Endpoint https://public-api.leexi.ai/v1/meeting-events ### Response #### Success Response (200) - Returns a list of meeting events. #### Error Response (400) - **success** (boolean) - Indicates the operation status (false). - **message** (string) - Description of the error occurred. ``` -------------------------------- ### GET /calls Source: https://docs.public-api.leexi.ai/reference/list-calls Retrieves a list of calls with an optional parameter to include a simple transcript string. ```APIDOC ## GET /calls ### Description Retrieves a list of calls. You can optionally request the transcript as a simple string. ### Method GET ### Endpoint /calls ### Parameters #### Query Parameters - **with_simple_transcript** (boolean) - Optional - Get transcript as a string. Defaults to false. ### Response #### Success Response (200) - **Result** (object) - The list of calls and associated data. ``` -------------------------------- ### Error Response Example Source: https://docs.public-api.leexi.ai/reference/create-a-call The JSON response returned when a request fails, such as missing required fields. ```json { "success": false, "message": "external_id must be set" } ``` -------------------------------- ### 409 Conflict Error Response Source: https://docs.public-api.leexi.ai/reference/create-a-meeting-event Returned when a meeting event with the provided URL and start time already exists in the system. ```json { "success": false, "message": "A meeting event with this URL and start time already exists" } ``` -------------------------------- ### Retrieve Call Note Error Response Source: https://docs.public-api.leexi.ai/reference/get-a-call-note Example of the JSON response returned when a requested call note cannot be found. ```json { "success": false, "message": "Call note not found" } ``` -------------------------------- ### Call Data JSON Response Source: https://docs.public-api.leexi.ai/reference/list-calls Example of the JSON object returned when listing calls, containing a data array and pagination metadata. ```json { "data": [ { "audio_archived_at": "2024-06-14T11:00:33.534Z", "chapters": [ { "uuid": "b1c2d3e4-f5a6-7b8c-9d0e-f1a2b3c4d5e6", "index": 0, "title": "Chapter 1: Intro", "text": "Content for chapter 1", "start_time": 10 }, { "uuid": "b1c2d3e4-f5a6-7b8c-9d0e-f1a2b3c4d5e6", "index": 0, "title": "Chapter 2: Details", "text": "Content for chapter 2", "start_time": 10 } ], "completions_archived_at": null, "conversation_type": { "uuid": "79af83f0-467c-4f65-8320-401c74978dff", "slug": "sales_visio_onboarding", "active": true }, "created_at": "2024-06-13T10:52:26.579Z", "customer_email_addresses": [], "customer_phone_numbers": [ "+1..." ], "customers": [ { "uuid": "f1a2b3c4-d5e6-7f8a-9b0c-d1e2f3a4b5c6", "name": "Wei Kemmer", "email": null, "phone_number": "+1..." } ], "deal": null, "description": "Morbi imperdiet dignissim interdum. Donec vestibulum lacus ipsum.", "direction": "outbound", "duration": 123.716, "feedbacks": [], "is_video": false, "leexi_url": "...", "locale": "en-US", "meeting_event": null, "owner": { "email": "philippe@leexi.ai", "name": "Philippe", "uuid": "a4ce7181-07f3-451c-8593-c067209efe4c" }, "participating_users": [ { "email": "philippe@leexi.ai", "name": "Philippe", "uuid": "a4ce7181-07f3-451c-8593-c067209efe4c" } ], "performed_at": "2024-06-13T10:49:47.000Z", "prompts": [ { "category": "summary", "completions": [ "Modi sint ea aliquam." ], "title": "summary", "uuid": "5e7f2976-3da1-4bd9-ac61-1109f175a28f" } ], "recording_url": "...", "scorecards": [], "simple_transcript": "Bob (00:00 - 00:10)\nHello, how are you?\nAlice (00:10 - 00:20)\nI'm fine, thank you.", "source": "aircall", "source_id": "4231481288", "speakers": [ { "email_address": "philippe@leexi.ai", "index": 0, "is_user": true, "name": "Philippe", "phone_number": null, "uuid": "22cd0302-e459-468d-9e03-54532d996552", "duration": 100.3, "longest_monologue": 10.2 }, { "email_address": null, "index": 1, "is_user": false, "name": "Wei Kemmer", "phone_number": "+1...", "uuid": "6f9edfb7-dc61-4f27-9c99-3e42f4bb1de0", "duration": 70.3, "longest_monologue": 5.2 } ], "tasks": [ { "active": true, "created_at": "2024-06-13T10:49:47.000Z", "description": "Description of Task 1", "done": false, "last_editor": { "uuid": "user1_uuid", "name": "user", "email": "user@user.com", "active": true }, "speaker": { "duration": 10, "longest_monologue": 5, "uuid": "6f9edfb7-dc61-4f27-9c99-3e42f4bb1de0", "name": "user", "is_user": true, "index": 0, "phone_number": "+1..", "email_address": "user@user.com" }, "subject": "Task 1", "updated_at": "2024-06-13T10:49:47.000Z", "uuid": "6f9edfb7-dc61-4f27-9c99-3e42f4bb1de0" } ], "title": "Aliquam pretium ut arcu id", "transcript_archived_at": null, "transcript_url": "...", "updated_at": "2024-06-13T11:00:33.534Z", "uuid": "422dda3c-6e1b-4868-b96e-acd12fdf9139", "video_archived_at": "2024-06-14T11:00:33.534Z", "visible": true } ], "pagination": { "count": 42, "items": 10, "page": 1 } } ``` -------------------------------- ### Call Object JSON Structure Source: https://docs.public-api.leexi.ai/reference/get-call Example of a call object returned by the API, containing details about the meeting, participants, and transcriptions. ```json Donec vestibulum lacus ipsum.", "direction": "outbound", "duration": 123.716, "feedbacks": [], "is_video": false, "leexi_url": "...", "locale": "en-US", "meeting_event": null, "owner": { "email": "philippe@leexi.ai", "name": "Philippe", "uuid": "a4ce7181-07f3-451c-8593-c067209efe4c" }, "participating_users": [ { "email": "philippe@leexi.ai", "name": "Philippe", "uuid": "a4ce7181-07f3-451c-8593-c067209efe4c" } ], "performed_at": "2024-06-13T10:49:47.000Z", "prompts": [ { "category": "summary", "completions": [ "Modi sint ea aliquam." ], "title": "summary", "uuid": "5e7f2976-3da1-4bd9-ac61-1109f175a28f" } ], "recording_url": "...", "scorecards": [], "simple_transcript:": "Bob (00:00 - 00:10)\nHi, how are you?\nAlice (00:10 - 00:20)\nI'm good, how are you?", "source": "aircall", "source_id": "4231481288", "speakers": [ { "email_address": "philippe@leexi.ai", "index": 0, "is_user": true, "name": "Philippe", "phone_number": null, "uuid": "22cd0302-e459-468d-9e03-54532d996552", "duration": 100.3, "longest_monologue": 10.2 }, { "email_address": null, "index": 1, "is_user": false, "name": "Wei Kemmer", "phone_number": "+1...", "uuid": "6f9edfb7-dc61-4f27-9c99-3e42f4bb1de0", "duration": 70.3, "longest_monologue": 5.2 } ], "tasks": [ { "active": true, "created_at": "2024-06-13T10:49:47.000Z", "description": "Description of Task 1", "done": false, "last_editor": { "uuid": "user1_uuid", "name": "user", "email": "user@user.com", "active": true }, "speaker": { "duration": 10, "longest_monologue": 5, "uuid": "6f9edfb7-dc61-4f27-9c99-3e42f4bb1de0", "name": "user", "is_user": true, "index": 0, "phone_number": "+1..", "email_address": "user@user.com" }, "subject": "Task 1", "updated_at": "2024-06-13T10:49:47.000Z", "uuid": "6f9edfb7-dc61-4f27-9c99-3e42f4bb1de0" } ], "title": "Aliquam pretium ut arcu id", "transcript": [ { "end_time": 16.773, "items": [ { "content": "How", "end_time": 3.8, "start_time": 3.05 } ], "speaker_index": 0, "start_time": 3.05 } ], "transcript_archived_at": null, "transcript_url": "...", "updated_at": "2024-06-13T11:00:33.534Z", "uuid": "422dda3c-6e1b-4868-b96e-acd12fdf9139", "video_archived_at": "2024-06-14T11:00:33.534Z", "visible": true } } ``` -------------------------------- ### GET /call_notes Source: https://docs.public-api.leexi.ai/reference/list-call-notes List call notes for a given call. call_uuid is required. You can optionally filter by prompt_uuid. Only call notes generated from prompts in the summary or text categories are returned. The call must be within the API key's access scope. ```APIDOC ## GET /call_notes ### Description List call notes for a given call. call_uuid is required. You can optionally filter by prompt_uuid. Only call notes generated from prompts in the summary or text categories are returned. The call must be within the API key's access scope. ### Method GET ### Endpoint /call_notes ### Parameters #### Query Parameters - **page** (integer) - Optional - Page number (default: 1) - **items** (integer) - Optional - Number of items per page (min: 1, max: 100, default: 10) - **call_uuid** (string) - Required - The uuid of the call whose notes you want to list. - **prompt_uuid** (string) - Optional - Optional prompt uuid to filter call notes to a single prompt. ### Response #### Success Response (200) - **data** (array) - List of call note objects - **pagination** (object) - Pagination metadata ``` -------------------------------- ### Error Response Examples Source: https://docs.public-api.leexi.ai/reference/list-call-notes JSON response bodies returned when a request fails due to validation errors, missing resources, or invalid prompt categories. ```json { "success": false, "message": "call_uuid is required" } ``` ```json { "success": false, "message": "Call not found" } ``` ```json { "success": false, "message": "The prompt associated with the call note must be of category summary or text" } ``` -------------------------------- ### OpenAPI definition for Get a call note Source: https://docs.public-api.leexi.ai/reference/get-a-call-note The OpenAPI specification for the endpoint, including security requirements and the expected JSON response structure. ```json { "components": { "securitySchemes": { "sec0": { "description": "Send the API key signature as `Authorization: Basic `.", "in": "header", "name": "Authorization", "type": "apiKey" } } }, "info": { "title": "leexi-public-api", "version": "1.0" }, "openapi": "3.1.0", "paths": { "/call_notes/{uuid}": { "get": { "description": "Retrieve a single call note", "operationId": "get-a-call-note", "parameters": [ { "in": "path", "name": "uuid", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "examples": { "Result": { "value": "{\n \"success\": true,\n \"data\": {\n \"uuid\": \"note-show\",\n \"created_at\": \"2026-04-13T11:00:00.000Z\",\n \"updated_at\": \"2026-04-13T11:30:00.000Z\",\n \"call\": {\n \"uuid\": \"call-1\",\n \"created_at\": \"2026-04-12T09:00:00.000Z\",\n \"updated_at\": \"2026-04-13T11:30:00.000Z\",\n \"performed_at\": \"2026-04-13T10:00:00.000Z\",\n \"locale\": \"en-US\",\n \"duration\": 184.007,\n \"direction\": \"outbound\",\n \"is_video\": false,\n \"visible\": true,\n \"leexi_url\": \"...\",\n \"video_archived_at\": null,\n \"audio_archived_at\": null,\n \"transcript_archived_at\": null,\n \"completions_archived_at\": null\n },\n \"prompt\": {\n \"uuid\": \"prompt-summary\",\n \"title\": \"Summary\",\n \"category\": \"summary\"\n },\n \"translations\": [\n {\n \"uuid\": \"translation-en-us\",\n \"locale\": \"en-US\",\n \"text\": \"Translated newest note\",\n \"original_text\": \"Newest note\",\n \"updated_at\": \"2026-04-13T11:50:00.000Z\"\n }\n ]\n },\n \"message\": \"Call note successfully retrieved\"\n}" } }, "schema": { "properties": { "data": { "properties": { "call": { "properties": { "audio_archived_at": {}, "completions_archived_at": {}, "created_at": { "example": "2026-04-12T09:00:00.000Z", "type": "string" }, "direction": { "example": "outbound", "type": "string" }, "duration": { "example": 184.007, "type": "number" }, "is_video": { "example": false, "type": "boolean" }, "leexi_url": { "example": "...", "type": "string" }, "locale": { "example": "en-US", "type": "string" }, "performed_at": { "example": "2026-04-13T10:00:00.000Z", "type": "string" }, "transcript_archived_at": {}, "updated_at": { "example": "2026-04-13T11:30:00.000Z", "type": "string" }, "uuid": { "example": "call-1", "type": "string" }, "video_archived_at": {}, "visible": { "example": true, "type": "boolean" } }, "type": "object" }, "created_at": { "example": "2026-04-13T11:00:00.000Z", "type": "string" }, "prompt": { "properties": { "category": { ``` -------------------------------- ### GET /calls Source: https://docs.public-api.leexi.ai/reference/list-calls List all calls and meetings within the API key's access scope. Keys with whole-company access list every call; scoped keys list only the calls they can access. ```APIDOC ## GET /calls ### Description List all calls and meetings within the API key's access scope. Keys with whole-company access list every call; scoped keys list only the calls they can access. ### Method GET ### Endpoint /calls ### Parameters #### Query Parameters - **page** (integer) - Optional - Default: 1 - **items** (integer) - Optional - Default: 10, min: 1, max: 100 - **order** (string) - Optional - Default: "created_at desc". Enum: "created_at desc", "created_at asc", "performed_at desc", "performed_at asc", "updated_at desc", "updated_at asc" - **date_filter** (string) - Optional - Default: "created_at". Enum: "created_at", "performed_at", "updated_at" - **from** (string) - Optional - YYYY-MM-DDTHH:MM:SS.000Z, filters on the call creation date in Leexi (created_at) - **to** (string) - Optional - YYYY-MM-DDTHH:MM:SS.000Z, filters on the call creation date in Leexi (created_at) - **source** (string) - Optional - Integration slug - **source_id** (array) - Optional - Call id within Integration - **owner_uuid** (array) - Optional - Filter by owner UUID - **participating_user_uuid** (array) - Optional - Filter by participating user UUID - **conversation_type_uuid** (string) - Optional - Filter by conversation type uuid - **customer_phone_number** (array) - Optional - Filter by customer phone number - **customer_email_address** (array) - Optional - Filter by customer email address ``` -------------------------------- ### POST /meetings/launch Source: https://docs.public-api.leexi.ai/reference/launch-a-meeting-assistant Launches a meeting assistant bot to join and record a meeting based on the provided meeting URL. ```APIDOC ## POST /meetings/launch ### Description Launches a meeting assistant bot to join and record a meeting. ### Method POST ### Endpoint https://public-api.leexi.ai/v1/meetings/launch ### Response #### Success Response (200) - **success** (boolean) - Indicates if the operation was successful. - **message** (string) - A confirmation message. - **data** (object) - The meeting object details including uuid, title, start_time, and meeting_url. #### Error Response (400) - **success** (boolean) - Indicates failure. - **message** (string) - Error description (e.g., "Meeting provider is invalid"). ``` -------------------------------- ### Upload a file using a presigned URL with curl Source: https://docs.public-api.leexi.ai/reference/request-a-presigned-url Use this command to upload a local audio file to the provided presigned URL via a PUT request. ```bash export PRESIGNED_URL="https://leexi-quarantine-dev.s3.eu-west-3.amazonaws.com/leexi/recordings/upload/bec9d04c-ba91-43c1-8a46-79f690a844c1.mp3?X-Amz-Algorithm=...." export FILE_PATH="audio.mp3" curl -X PUT \ -H "x-amz-tagging: temporary=true" \ -T "$FILE_PATH" \ "$PRESIGNED_URL" ``` -------------------------------- ### Request a presigned URL Source: https://docs.public-api.leexi.ai/reference/request-a-presigned-url Endpoint to generate a presigned URL for uploading audio files. Requires the 'write_calls' permission scope. ```APIDOC ## Request a presigned URL ### Description Request a presigned URL to upload a call recording before creating a call. The file must be uploaded via a PUT request to the returned URL with specific headers. ### Authentication Requires the `write_calls` permission scope on the API key. ### Usage To upload the file, send a PUT request to the returned URL with the following header: - **x-amz-tagging**: temporary=true ``` -------------------------------- ### Authenticate with API Key Source: https://docs.public-api.leexi.ai/reference/public-api Use HTTP Basic Authentication by providing the base64-encoded string of your API Key ID and Secret in the Authorization header. ```shell # Key ID: KEY_ID # Key Secret: KEY_SECRET # KEY_ID:KEY_SECRET base64 encoded: S0VZX0lEOktFWV9TRUNSRVQ= curl --header "Authorization: Basic S0VZX0lEOktFWV9TRUNSRVQ=" --location "https://public-api.leexi.ai/v1/users" ``` -------------------------------- ### Pagination Source: https://docs.public-api.leexi.ai/reference All list routes support pagination via optional query parameters to control the number of items returned. ```APIDOC ## Pagination ### Description All list routes support pagination to manage the volume of returned data. ### Query Parameters - **page** (integer) - Optional - The page number to retrieve. - **items** (integer) - Optional - Number of items per page (1-100, default to 10). ``` -------------------------------- ### GET /meetings Source: https://docs.public-api.leexi.ai/reference/list-meeting-events Retrieves a list of meeting events with pagination support. ```APIDOC ## GET /meetings ### Description Retrieves a list of meeting events. The response includes a data array containing meeting details and pagination information. ### Method GET ### Endpoint /meetings ### Response #### Success Response (200) - **data** (array) - List of meeting objects - **pagination** (object) - Pagination metadata including page, items, and count #### Response Example { "data": [ { "uuid": "bcdvde61-b4b5-4c93-96be-aa5162086f4d", "title": "Nihil tenetur dolore illum.", "organizer": { "email": "philippe@leexi.ai" }, "attendees": [ { "email": "bob@test.com" } ], "meeting_url": "https://teams.microsoft.com/l/meetup-join/...", "meeting_provider": "teams_meeting", "start_time": "2024-06-20T09:30:00.000Z", "end_time": "2024-06-20T10:00:00.000Z", "active": true } ], "pagination": { "page": 2, "items": 10, "count": 12 } } ``` -------------------------------- ### POST /calls Source: https://docs.public-api.leexi.ai/reference/create-a-call Create a call or meeting asynchronously. Note that the creation process typically takes a few minutes. ```APIDOC ## POST /calls ### Description Create a call or meeting asynchronously (creation time is typically a few minutes). You must first finish uploading the recording of the call using a presigned recording url retrieved with the previous endpoint. Use the "LIST users" endpoint to find the user_uuid to use in this request. ### Method POST ### Endpoint /calls ### Request Body - **customers** (array) - Optional - The external participants (customers) of the call. An array of objects, each accepting any of `name`, `email`, `phone_number` and `uuid`. - **description** (string) - Optional - Description of the call. - **direction** (string) - Optional - inbound or outbound (default: outbound). - **emails** (array) - Optional - ⚠️ DEPRECATED. A list of emails of other participants in the call. - **external_id** (string) - Optional - The id of the call in your system (default: 123). - **locale** (string) - Optional - The locale of the call (e.g., fr-FR, en-US). - **participating_user_uuids** (array) - Optional - UUIDs of fellow Leexi users participating in the call. - **performed_at** (string) - Optional - ISO8601 format timestamp of when the call occurred. - **raw_phone_number** (string) - Optional - ⚠️ DEPRECATED. A string representation of the customer's phone_number. ``` -------------------------------- ### GET /call-notes/{uuid} Source: https://docs.public-api.leexi.ai/reference/get-a-call-note Retrieves the details of a specific call note. ```APIDOC ## GET /call-notes/{uuid} ### Description Retrieves the details of a specific call note by its unique identifier. ### Method GET ### Endpoint https://public-api.leexi.ai/v1/call-notes/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the call note. ### Response #### Success Response (200) - **success** (boolean) - Indicates if the request was successful. - **message** (string) - A confirmation message. - **data** (object) - The call note object containing uuid, updated_at, translations, and summary. #### Error Response (404) - **success** (boolean) - Indicates the request failed. - **message** (string) - Error message indicating the call note was not found. ``` -------------------------------- ### OpenAPI definition for launching a meeting assistant Source: https://docs.public-api.leexi.ai/reference/launch-a-meeting-assistant Defines the security scheme, path, and request/response structure for the launch-a-meeting-assistant operation. ```json { "components": { "securitySchemes": { "sec0": { "description": "Send the API key signature as `Authorization: Basic `.", "in": "header", "name": "Authorization", "type": "apiKey" } } }, "info": { "title": "leexi-public-api", "version": "1.0" }, "openapi": "3.1.0", "paths": { "/meeting_events/{uuid}/launch_bot": { "post": { "description": "", "operationId": "launch-a-meeting-assistant", "parameters": [ { "in": "path", "name": "uuid", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "properties": { "stop_task": { "default": false, "description": "Stop the ongoing bot", "type": "boolean" } }, "type": "object" } } } }, "responses": { "200": { "content": { "application/json": { "examples": { "Result": { "value": "{\n \"success\": true,\n \"data\": {\n \"uuid\": \"dfghj586-01c4-dfdf-8a56-bb3c10b153b6\",\n \"title\": \"Quarterly business review\",\n \"organizer\": {\n \"email\": \"ops@acme.com\"\n },\n \"attendees\": [\n {\n \"email\": \"alice@acme.com\"\n }\n ],\n \"meeting_url\": \"https://meet.google.com/abc-behz-cyt\",\n \"meeting_provider\": \"google_meeting\",\n \"internal\": true,\n \"direction\": \"outbound\",\n \"start_time\": \"2024-06-13T12:00:00.000Z\",\n \"end_time\": \"2024-06-13T12:30:00.000Z\",\n \"description\": \"Quarterly business review\",\n \"owned\": true,\n \"to_record\": true,\n \"bot_scheduled\": false,\n \"bot_running\": false,\n \"bot_runs\": [],\n \"origin\": \"api\",\n \"created_at\": \"2024-06-13T12:55:06.153Z\",\n \"updated_at\": \"2024-06-13T12:55:06.153Z\",\n \"recording_notified\": false,\n \"active\": true\n },\n \"message\": \"Meeting event bot launched\"\n}" } }, "schema": { "properties": { "data": { "properties": { "active": { "example": true, "type": "boolean" }, "attendees": { "items": { "properties": { "email": { "example": "alice@acme.com", "type": "string" } }, "type": "object" }, "type": "array" }, "bot_running": { "example": false, "type": "boolean" }, "bot_runs": { "items": { "properties": {}, "type": "object" }, "type": "array" }, "bot_scheduled": { "example": false, "type": "boolean" }, "created_at": { "example": "2024-06-13T12:55:06.153Z", "type": "string" }, "description": { "example": "Quarterly business review", "type": "string" }, "direction": { "example": "outbound", "type": "string" }, "end_time": { "example": "2024-06-13T12:30:00.000Z", "type": "string" }, "internal": { "example": true, "type": "boolean" }, "meeting_provider": { "example": "google_meeting", "type": "string" } ``` -------------------------------- ### GET /meetings Source: https://docs.public-api.leexi.ai/reference/list-meeting-events Retrieves a list of meeting events with pagination support. ```APIDOC ## GET /meetings ### Description Retrieves a paginated list of meeting events. ### Method GET ### Endpoint /meetings ### Response #### Success Response (200) - **data** (array) - List of meeting objects - **pagination** (object) - Pagination metadata including count, items, and page #### Response Example { "data": [ { "uuid": "bcdvde61-b4b5-4c93-96be-aa5162086f4d", "title": "Nihil tenetur dolore illum.", "start_time": "2024-06-20T09:30:00.000Z", "end_time": "2024-06-20T10:00:00.000Z", "meeting_provider": "teams_meeting", "organizer": { "email": "philippe@leexi.ai" } } ], "pagination": { "count": 12, "items": 10, "page": 2 } } ```