The tl;dv connector lets your AI agent act in each user's tl;dv account. Each user connects their own tl;dv API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 5 tools.
- Tools
- 5
- What they doRead · write · destructive
- 4 · 1 · 04 read1 write0 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the tl;dv connection
In AgentKit > Connections, create a tl;dv connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'tldv'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize tl;dv:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'tldv_list_meetings',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "tldv"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize tl;dv:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="tldv_list_meetings",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their tl;dv credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooltldv_get_meetingRetrieve one tl;dv meeting by id.Read-onlyGet Meeting
Retrieve one tl;dv meeting by id. Returns id, name, happenedAt, url, duration, organizer, invitees, template, extraProperties, plus phoneNumber and metadata when set at import. Use get_meeting for metadata about one meeting. Use list_meetings to find ids, get_transcript for the spoken text, get_meeting_notes for the AI notes.
Inputs
meetingIdstringrequired- ID of the meeting, as returned by tldv_list_meetings (the id field).
tldv_get_meeting_notesRetrieve the AI-generated notes of a tl;dv meeting.Read-onlyGet Meeting Notes
Retrieve the AI-generated notes of a tl;dv meeting. Returns structuredNotes, markdownContent and topics for the meeting. Use get_meeting_notes for a summary and key points. Use get_transcript for the verbatim text. Prerequisite: a meeting id from list_meetings.
Inputs
meetingIdstringrequired- ID of the meeting, as returned by tldv_list_meetings (the id field).
tldv_get_transcriptRetrieve the transcript of a tl;dv meeting.Read-onlyGet Transcript
Retrieve the transcript of a tl;dv meeting. Returns the transcript id, meetingId and a data array of sentences, each with speaker, text, startTime and endTime. Use get_transcript for the full spoken text. Use get_meeting_notes for a summary instead. Only available once the transcript is complete; the meeting organizer's plan must allow API access. Prerequisite: a meeting id from list_meetings.
Inputs
meetingIdstringrequired- ID of the meeting, as returned by tldv_list_meetings (the id field).
tldv_list_meetingsList meetings in tl;dv, optionally filtered by search text, date range, participation or meeting type.Read-onlyList Meetings
List meetings in tl;dv, optionally filtered by search text, date range, participation or meeting type. Returns page, pages, total, pageSize and a results array with each meeting's id, name, happenedAt, url, duration, organizer and invitees. Use list_meetings to find a meeting id. Use get_meeting for one meeting's full details, get_transcript for what was said, get_meeting_notes for the AI summary.
Inputs
fromstring- Only return meetings that happened on or after this date, as YYYY-MM-DD or an ISO 8601 date-time.
limitinteger- Number of results per page. Default is 50, maximum 100. The total number of results cannot exceed 10,000.
meetingTypestring- Filter by meeting type: internal (all participants from the same organization) or external (at least one participant from outside it).one of
internalexternal onlyParticipatedboolean- When true, only return meetings the user participated in. Default is false.
pageinteger- Page number to return, starting at 1. Default is 1.
querystring- Text to search for in meetings.
tostring- Only return meetings that happened on or before this date, as YYYY-MM-DD or an ISO 8601 date-time.
tldv_import_meetingImport a recording from a public URL into tl;dv as a new meeting for transcription.WriteImport Meeting
Import a recording from a public URL into tl;dv as a new meeting for transcription. Returns success, jobId and a message describing the import job. Use import_meeting to add an existing audio or video file. The URL must be publicly accessible and in a supported format (.mp3, .mp4, .wav, .m4a, .mkv, .mov, .avi, .wma, .flac). Processing is asynchronous: poll list_meetings for the new meeting.
Inputs
namestringrequired- Name of the imported meeting or recording.
urlstringrequired- Publicly accessible URL of the media file. Supported formats: .mp3, .mp4, .wav, .m4a, .mkv, .mov, .avi, .wma, .flac.
dryRunboolean- When true, validates the import without persisting it or running anything. For testing only.
happenedAtstring- When the meeting happened, as an ISO 8601 UTC date-time with fractional seconds. Defaults to the current time if omitted.
metadataobject- Flat object of your own identifiers (up to 20 keys; keys match ^[A-Za-z0-9_-]{1,64}$; values are strings up to 256 characters, numbers or booleans; no nesting). Returned verbatim by get_meeting. Example: {"crmRecordId": "rec_123", "callId": 42}.
participantsarray- Emails of the participants invited to the meeting or recording.
phoneNumberstring- Phone number associated with the recording, such as the other party of a call. Maximum 64 characters.
No tools match.