Skip to content
Dark mode

Query call data

Returns Call AI recordings and their metadata, participants, transcripts, themes, stats, and scores with the recordingsV2 query.

Prerequisites

  1. Authentication: A valid Call AI access token.
POST /public/graphapi

Base URL: https://api-gateway.callai.mindtickle.com.

Headers: Authorization: Bearer ACCESS_TOKEN, Content-Type: application/json.

The primary query for retrieving data is recordingsV2. This query lets you fetch details of all the recordings.

Parameter Required Description
first Required Specifies the number of recordings to fetch.
after Required Indicates the cursor position to start fetching from. Required for pagination.
filters Required Defines criteria to filter the results. Accepts a RecordingsV2Filters object with the properties listed below.
filters.categoryId Required A string denoting the category of recordings. Values: 1 for all accessible recordings, including the recordings of your team members, 2 for recordings where you were a participant, 3 for recordings shared with you, 4 for recordings bookmarked by you, 5 for recordings where you and your team members participated, and 6 for recordings shared by you.
filters.personIds Optional An array of IDs to filter by specific people.
filters.date Optional Filters by a specific date range. Requires an array of two values: start time and end time.
filters.duration Optional Filters recordings exceeding a minimum duration. Requires an array containing a single integer value in milliseconds.
filters.title Optional Filters recordings by matching the title string.
filters.themeIds Optional An array of IDs to filter by specific themes.
filters.libraryIds Optional An array of IDs to filter by specific libraries.
filters.callScore Optional An array of integers to filter by specific call scores.
filters.recorderType Optional An array of integers to filter by recorder type.
filters.language Optional An array of strings to filter by language.
sort Optional Defines the sorting order for the response. Pass an array where each element contains sortOrder and sortType.
sort.sortOrder Not specified asc or desc.
sort.sortType Not specified score, start_date, call_score, or last_shared.

Provide both sortOrder and sortType when sorting, as shown below.

{
recordingsV2(
first: 1
after: "0"
filters: { categoryId: "1" }
sort: { sortType: "start_date", sortOrder: desc }
) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
id
mediaUrls {
streamingSource
}
}
}
}
}

For subsequent pages, pass data.recordingsV2.pageInfo.endCursor as after while hasNextPage is true. Keep the filters and sorting unchanged. Check GraphQL errors before advancing; stop if a required continuation cursor is missing or repeats.

The following fields are available within the node object, a nested field of edges, returned by the recordingsV2 query.

Field Description
id A unique numerical identifier for the meeting.
title The title of the meeting as it appears in the calendar event.
description The description of the meeting as it appears in the calendar event.
date The scheduled date and timestamp of the meeting, for example 2025-11-02T09:00:00.000Z.
actualStartedAt The time when any participant actually joined the meeting. This may differ from the scheduled start time.
aspectRatio The video display ratio, for example 16:9 for widescreen. Use this to size video players so recordings display correctly in your interface.
actualEndedAt The time when all participants left the meeting.
isNew Currently documented as returning null rather than a boolean value.
duration The total duration of the meeting in seconds, for example 1385.72.
sharedBy The name of the user who shared the meeting.
sharedAt The timestamp indicating when the meeting was shared.
sharedWithInternalV2 A list of internal users, within the organization, with whom the meeting was shared. Returns an array of InternalShareObjectV2. See Notes.
sharedWithExternal A list of external users, outside the organization, with whom the meeting was shared. Returns an array of ExternalShareUser, where each element contains id, a unique share identifier, email, the email address of the recipient, and externalShareObject, which contains sharedBy, allowDownload, accessRemoved, and externalLink. Parameter: showAccessRemoved, boolean, default false.
speakerEventsV2 Captures every instance a participant speaks. Multiple events may trigger for the same participant. Returns an array of SpeakerEventV2, one per speaker, containing speaker, the ParticipantV2 object who triggered the event, events, an array of SpeakerEvents detailing startTime in seconds, endTime in seconds, and startChunk, time, the total aggregated speaking time for this speaker, and percentage, the percentage of the total meeting time this speaker talked.
participantsV2 Details of all meeting attendees. Returns an array of ParticipantV2, containing subfields such as id, name, email, and type. Parameters: excludeBots, boolean, specify whether to exclude the Call AI bot, and excludeUnknowns, boolean, specify whether to exclude unidentified participants.
transcription The full meeting transcript. Contains meetingId, the ID of the meeting, chunks, an array of TranscriptChunk objects each containing text, startTime, endTime, and speakerEmails, and languageDirection, which indicates text direction with the values ltr for left to right or rtl for right to left.
account Customer account information from your CRM, for example Salesforce or HubSpot. Contains subfields including id, name, and stage, for example “Prospect” or “Customer”. Use this to link recordings to customer accounts.
themesV2 Details of all themes detected during the meeting. Returns a MeetingThemeV2 object containing meetingId, the ID of the meeting, spoken, an array of MeetingThemeDetails for themes spoken by internal reps, heard, an array of MeetingThemeDetails for themes spoken by external participants, and filler, an array of MeetingThemeDetails for filler words spoken by internal participants. Each MeetingThemeDetails object includes id, themeDetails with name, keywords, and counts, and keywordOccurrence.
aggregatedThemes A consolidated view of spoken and heard themes, similar to themesV2. Returns an array of AggregatedThemes containing type, the THEME_TYPE of SPOKEN, HEARD, or ALL, and themes, an array of AggregatedTheme objects containing theme with id, name, and keywords, startChunk, endChunk, startTime, and endTime. If type is ALL, the themes field includes both. Parameter: types, an input array of THEME_TYPE to specify which themes to request.
mediaUrls URLs to access the recording. Includes streamingSource, the URL for online playback, downloadSource, the URL for downloading the file, and label, the quality type, for example “HD” or “Audio”.
isBookmarked Returns true if you have bookmarked this recording.
isDeleted Returns true if the recording has been deleted.
stats Conversation analytics and engagement metrics. Includes interchanges, the number of speaker turn-taking occurrences, avgPatienceTeam and avgPatienceProspect, the average response time in seconds, talktime, the total team talk time in milliseconds with team talk percentage and team listen percentage, questions, team and prospect question arrays containing fields such as displayId and chunkId, and longestMonologue, the longest uninterrupted speaking segments for team and prospect.
notes Your private, paginated notes on this recording. Returns an array of Note objects containing id, noteEntities, type, content, and taggedTimestamps. Parameters: count, how many notes to fetch, and cursor, the next cursor position for pagination.
notesTaggedTimestamps A list of all video timestamps you have referenced in your notes.
conversations Paginated one-on-one message threads about the recording. Returns an array of Conversation objects containing id, author, recipient, and an array of messages. Parameters: count and cursor.
conversationsTaggedTimestamps All video timestamps referenced in conversation messages.
discussions Paginated group discussion threads about this recording. Returns an array of Discussion objects containing an id and an array of comments. Parameters: count and cursor.
discussionsTaggedTimestamps All video timestamps referenced in discussion comments.
libraries Content libraries containing this recording. Includes id, name, description, type, which is SCOPED or PUBLIC, and creator user details.
notesByIds Specific notes fetched without pagination. Parameter: ids, an array of note IDs.
conversationsByIds Specific private conversation threads fetched without pagination. Parameter: ids, an array of conversation IDs.
discussionsByIds Specific public group discussion threads fetched without pagination. Parameter: ids, an array of discussion IDs.
snippets Shorter video clips created from this recording. Returns id, startTime, and endTime. Parameters: contexts and snippetIds.
sharedWithMTDetails Status of sharing to the Mindtickle learning platform. Includes status, which is SUCCESS, PENDING, FAILURE, or NOT_INITIATED, sharedBy, and sharedOn timestamps.
score AI-powered call quality scores and analysis. Includes callScore, score, scoreLevel, and totalLevel.
host Information about the meeting organizer. Includes id, name, emails, type, which is TEAM, PROSPECT, or UNKNOWN, and a full user object if the host is a registered user.
recorderType Numeric code indicating which recording tool was used in the meeting, for example Zoom or Google Meet.
recordingType Returns VIDEO or AUDIO. Helps determine if video features such as thumbnails are available.
thumbnailUrlV2 Preview image URL for video recordings. Returns null for audio. Parameter: type, which currently only accepts TEAM_FIRST.
allPermittedUsers Complete list of users who have permission to access the recording. Includes id, name, email, and designation.
nextStepsV2 AI-extracted action items from the meeting. Includes descriptions, timestamps of mentions, and user feedback on accuracy.
meetingUrl Different URL formats for accessing the recording page. Includes primary for the main view, embedded, and standalone URLs.
meetingType Categorizes the recording as EXTERNAL, with customers, or INTERNAL, team only.
transcriptReady Returns true if transcription is complete and available.
movieReady Returns true if the video is processed and ready for playback.
language The primary language code for the recording, for example en for English or es for Spanish.
internalAccessType Returns ALL, everyone in the company, or DEFAULT, restricted access.
externalShareUrl Public URL for sharing outside your organization. Returns null if not shared.
hasExternalSharePublicLink Returns true if a public share link exists, even if it is expired or revoked.
keyMomentsV2 AI-identified key moments from the meeting. Includes timestamp, endTime, text description, and topic.
keyMomentsByIds Specific key moments fetched by ID. Parameter: ids, an array of key moment IDs.
copilot Contains an isEnabled boolean indicating whether Mindtickle Copilot features are available for this recording.
callSummary AI-generated meeting summary. Includes concise summary text, processing state, errorCode, and genericFeedback.
  • Behavior: The response contains only the fields you request in the query.
  • Shared with internal users: sharedWithInternalV2 segregates recipients into two lists: users, onboarded Mindtickle users, and emails, users who are not onboarded but share the company email domain and are not Call AI users. Items in both lists include snippet and sharedAt metadata, items in the users list contain a user object, and items in the emails list contain an email address field.
  • Rate limits: Use a batch size of fewer than 10 meetings where possible and wait at least 60 seconds between successive batches. See Interacting with the API.
  • Errors: A failed GraphQL request can still return HTTP 200 OK with an errors array in the body. See Error handling.
  • Permissions: You can only access data for call recordings you are authorized to view within Call AI.