Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to AssemblyAI

Scalekit connector
Open markdown

The AssemblyAI connector lets your AI agent act in each user's AssemblyAI account. Each user connects their own AssemblyAI API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 12 tools.

Tools
12
What they doRead · write · destructive
9 · 2 · 19 read2 write1 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the AssemblyAI connection

    In AgentKit > Connections, create an AssemblyAI connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. 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.actions
    const connector = 'assemblyai'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize AssemblyAI:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'assemblyai_list_llm_models',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their AssemblyAI credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • assemblyai_create_chat_completionSend a prompt or chat messages to an LLM through AssemblyAI's LLM Gateway, optionally with a transcript's text inserted, to summarize, answer questions about or extract data from audio.Read-only

    Create Chat Completion

    Send a prompt or chat messages to an LLM through AssemblyAI's LLM Gateway, optionally with a transcript's text inserted, to summarize, answer questions about or extract data from audio. Returns choices with the model's message (content and any tool_calls), finish_reason, usage token counts and request_id. Use this for free-form prompts over transcripts (the replacement for LeMUR). Use assemblyai_run_speech_understanding for built-in translation, speaker identification, custom formatting, summaries or action items. Get a valid model ID from assemblyai_list_llm_models. To use a transcript, it must be completed; reference it with transcript_id and the {{ transcript }} tag.

    Inputs

    modelstringrequired
    ID of the LLM to use, from assemblyai_list_llm_models, for example claude-sonnet-4-5-20250929, gpt-4.1 or gemini-2.5-flash-lite. Never guess it; check the model list. Example: gemini-2.5-flash-lite
    fallback_configobject
    Fallback behaviour: retry (default true) retries once after 500 ms, and depth (1 or 2, default 1) caps how many fallbacks are tried. Example: {"retry": true, "depth": 2}
    fallbacksarray
    Fallback models to try in order when the primary model fails. Each item needs a model and can override other request fields. Example: [{"model": "claude-sonnet-4-6"}]
    max_tokensinteger
    Maximum number of tokens to generate. Defaults to 1000. Example: 1500
    messagesarray
    Conversation so far, as objects with role (system, user, assistant or tool) and content. Provide messages or prompt. To use a transcript, put the tag {{ transcript }} in a message and set transcript_id. Example: [{"role": "system", "content": "You summarize calls."}, {"role": "user", "content": "Summarize this call: {{ transcript }}"}]
    model_regionstring
    Set to global to route to the provider's global (non-regional) endpoints for lower cost. Currently live for Anthropic Claude models. Leave empty for in-region processing.one of global
    post_processing_stepsarray
    Steps applied to the model's answer. The only step today is json-repair, which fixes malformed JSON. Example: [{"type": "json-repair"}]
    promptstring
    A single prompt, sent as one user message. Use instead of messages for one-shot requests. Can contain the {{ transcript }} tag. Example: List the action items in this meeting: {{ transcript }}
    response_formatobject
    Constrain the answer to JSON that matches a schema: {"type": "json_schema", "json_schema": {"name": ..., "schema": {...}, "strict": true}}. Not supported by gpt-oss models. Example: {"type": "json_schema", "json_schema": {"name": "summary", "schema": {"type": "object", "properties": {"summary": {"type": "string"}}, "required": ["summary"]}, "strict": true}}
    temperaturenumber
    Randomness from 0 to 2; lower is more deterministic. Leave empty for the model's default. Example: 0.2
    tool_choicestring
    Which tool the model may call: none, auto, or {"type": "function", "function": {"name": "get_weather"}} to force one. Example: auto
    toolsarray
    Functions the model may call, each {"type": "function", "function": {"name": ..., "description": ..., "parameters": <JSON Schema>}}. Tool calls come back in choices[].message.tool_calls; send results back as role tool messages. Example: [{"type": "function", "function": {"name": "get_weather", "parameters": {"type": "object", "properties": {"city": {"type": "string"}}}}}]
    transcript_idstring
    ID of a completed AssemblyAI transcript whose text replaces the first {{ transcript }} tag in the messages or prompt. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
  • assemblyai_get_redacted_audioGet the PII-redacted copy of a transcript's audio.Read-only

    Get Redacted Audio

    Get the PII-redacted copy of a transcript's audio. Returns status (redacted_audio_ready) and redacted_audio_url, a download link that expires after 24 hours. Use this after assemblyai_create_transcript ran with redact_pii and redact_pii_audio set to true and the transcript completed. Use assemblyai_get_transcript for the redacted text.

    Inputs

    transcript_idstringrequired
    ID of the transcript, as returned by assemblyai_create_transcript or assemblyai_list_transcripts. A UUID. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
  • assemblyai_get_subtitlesExport a completed AssemblyAI transcript as SRT or WebVTT subtitles.Read-only

    Get Subtitles

    Export a completed AssemblyAI transcript as SRT or WebVTT subtitles. Returns the caption file as plain text, not JSON. Use this to produce captions for a video player. Use assemblyai_get_transcript_sentences for structured, timestamped segments. The transcript must have status completed (check with assemblyai_get_transcript).

    Inputs

    transcript_idstringrequired
    ID of the transcript, as returned by assemblyai_create_transcript or assemblyai_list_transcripts. A UUID. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
    chars_per_captioninteger
    Maximum number of characters in each caption. Leave empty for AssemblyAI's default line length. Example: 32
    subtitle_formatstring
    Caption format: srt (SubRip, the default) or vtt (WebVTT).one of srtvttdefault srt
  • assemblyai_get_transcriptGet an AssemblyAI transcript by ID, including its processing status.Read-only

    Get Transcript

    Get an AssemblyAI transcript by ID, including its processing status. Returns status (queued, processing, completed or error), the full text, word-level timestamps, speaker utterances, detected language, error when it failed, and the results of any enabled features (entities, sentiment, PII redaction, speech understanding). Use this to poll a transcript started with assemblyai_create_transcript and to read the whole result. Use assemblyai_get_transcript_sentences or assemblyai_get_transcript_paragraphs for readable segments, and assemblyai_list_transcripts to find IDs.

    Inputs

    transcript_idstringrequired
    ID of the transcript, as returned by assemblyai_create_transcript or assemblyai_list_transcripts. A UUID. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
  • assemblyai_get_transcript_paragraphsGet a completed AssemblyAI transcript split into paragraphs.Read-only

    Get Transcript Paragraphs

    Get a completed AssemblyAI transcript split into paragraphs. Returns the transcript id, confidence, audio_duration and a paragraphs list, each with text, start and end (milliseconds), confidence and words. Use this for a readable, paragraph-formatted transcript. Use assemblyai_get_transcript_sentences for sentence-level segments and assemblyai_get_transcript for the full text. The transcript must have status completed (check with assemblyai_get_transcript).

    Inputs

    transcript_idstringrequired
    ID of the transcript, as returned by assemblyai_create_transcript or assemblyai_list_transcripts. A UUID. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
  • assemblyai_get_transcript_sentencesGet a completed AssemblyAI transcript split into sentences.Read-only

    Get Transcript Sentences

    Get a completed AssemblyAI transcript split into sentences. Returns the transcript id, confidence, audio_duration and a sentences list, each with text, start and end (milliseconds), confidence, speaker and words. Use this for sentence-level timestamps or captions. Use assemblyai_get_transcript_paragraphs for longer reading blocks and assemblyai_get_transcript for the full text. The transcript must have status completed (check with assemblyai_get_transcript).

    Inputs

    transcript_idstringrequired
    ID of the transcript, as returned by assemblyai_create_transcript or assemblyai_list_transcripts. A UUID. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
  • assemblyai_list_llm_modelsList the LLMs available through AssemblyAI's LLM Gateway.Read-only

    List LLM Models

    List the LLMs available through AssemblyAI's LLM Gateway. Returns data, one entry per model with id, name, creator, context_length, supported_parameters, pricing, available_regions, retirement_date and benchmark performance. Use this to pick a valid model ID for assemblyai_create_chat_completion.

    Inputs

    This tool takes no inputs.

  • assemblyai_list_transcriptsList transcripts created with this API key's project in the last 30 days, newest first, optionally filtered by status or creation date.Read-only

    List Transcripts

    List transcripts created with this API key's project in the last 30 days, newest first, optionally filtered by status or creation date. Returns transcripts (id, status, audio_url, created, completed, error) and page_details with prev_url and next_url links. Use this to find transcript IDs. Use assemblyai_get_transcript to read one transcript. To page back, pass the last transcript's id as before_id.

    Inputs

    after_idstring
    Only return transcripts created after the transcript with this ID. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
    before_idstring
    Only return transcripts created before the transcript with this ID. Use the oldest ID from the previous page to get the next (older) page. Example: 0072a82b-aa22-4962-add2-6121c36c17c6
    created_onstring
    Only return transcripts created on this date (YYYY-MM-DD). Example: 2026-10-01
    limitinteger
    Maximum number of transcripts to return, 1 to 200. Defaults to 10. Example: 50
    statusstring
    Only return transcripts with this status: queued, processing, completed or error.one of queuedprocessingcompletederror
    throttled_onlyboolean
    Set to true to return only throttled transcripts. Overrides status.