Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Supadata

Scalekit connector
Open markdown

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

Tools
21
What they doRead · write · destructive
17 · 4 · 017 read4 write0 destructive
Users sign in with

What you can do

  • Get video transcripts: extract transcripts from YouTube, TikTok, Instagram, X, Facebook, or file URLs, and translate YouTube transcripts
  • Fetch video metadata: read titles, descriptions, authors, and engagement stats for videos across platforms
  • Explore YouTube: search YouTube and read channel, playlist, and video details, including batch lookups for many videos
  • Scrape websites: turn a web page into clean Markdown, map a site’s URLs, or crawl every page
  • Extract structured data: use AI to pull structured data from a video with a prompt or schema

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 Supadata connection

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

    Console steps with screenshots

    Register your Scalekit environment with the Supadata connector so Scalekit can proxy API requests and inject your API key automatically. Supadata uses API key authentication.

    1. Get a Supadata API key

      Your Supadata API key is generated automatically when you create an account.

      • Go to dash.supadata.ai and sign up or sign in. No credit card is required for the free tier.
      • After signing in, click API Keys in the left sidebar.
      • Your auto-generated key is listed in the table. Click the key row to reveal or copy it.
      • To create a new dedicated key for this integration, click + New Key, give it a name (e.g., Agent Auth), and click Create.

      Supadata dashboard showing the API Keys page with existing keys and the New Key button

    2. Create a connection in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Supadata and click Create.
      • Note the Connection name — you will use this as connection_name in your code (e.g., supadata).
      • Click Save.

      Scalekit connection configuration page for Supadata showing the connection name and API Key authentication type

    3. Add a connected account

      Connected accounts link a specific user identifier in your system to a Supadata API key. Add one in the dashboard to test. In production, each user adds their own through the authorization link: they enter their credentials on the page it opens.

      In the dashboard, to test

      • Open the connection you created and click the Connected Accounts tab → Add account.

      • Fill in:

        • Your User’s ID — a unique identifier for this user in your system (e.g., user_123)
        • API Key — the Supadata API key you copied in step 1
      • Click Save.

      Add connected account form for Supadata in Scalekit dashboard showing User ID and API Key fields

      From your backend, if your app already has the credentials

      For example, when users enter them on a settings page in your app:

      import { ConnectorStatus } from '@scalekit-sdk/node'
      // Never hard-code API keys — read from secure storage or user input
      const supadataApiKey = getUserSupadataKey(); // retrieve from your secure store
      const authorizationDetails = {
      details: {
      case: 'staticAuth',
      value: { details: { api_key: supadataApiKey } },
      },
      };
      let { connectedAccount } = await scalekit.actions.upsertConnectedAccount({
      connectionName: 'supadata',
      identifier: 'user_123', // your user's unique ID
      authorizationDetails,
      });
      // Make sure the account is ACTIVE before the first tool call.
      if (connectedAccount?.status !== ConnectorStatus.ACTIVE) {
      ({ connectedAccount } = await scalekit.actions.upsertConnectedAccount({
      connectionName: 'supadata',
      identifier: 'user_123',
      authorizationDetails,
      }));
      }
  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 = 'supadata'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Supadata:', 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: 'supadata_account_get',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Supadata credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • supadata_account_getRetrieve organization details, plan information, and credit usage for the connected Supadata account.Read-only

    Get Account Info

    Retrieve organization details, plan information, and credit usage for the connected Supadata account. Use this to check remaining credits before running credit-consuming operations.

    Inputs

    This tool takes no inputs.

  • supadata_extract_getCheck the status of an AI structured-data extraction job and retrieve its results once complete.Read-only

    Get Extract Results

    Check the status of an AI structured-data extraction job and retrieve its results once complete. Use the jobId returned by Extract Structured Data.

    Inputs

    jobIdstringrequired
    ID of the extraction job to check, returned by Extract Structured Data.
  • supadata_metadata_getRetrieve unified metadata for a video or media URL including title, description, author info, engagement stats, media details, and creation date.Read-only

    Get Media Metadata

    Retrieve unified metadata for a video or media URL including title, description, author info, engagement stats, media details, and creation date. Supports YouTube, TikTok, Instagram, X (Twitter), Facebook, and more.

    Inputs

    urlstringrequired
    URL of the video or media to retrieve metadata for.
  • supadata_transcript_getExtract transcripts from YouTube, TikTok, Instagram, X (Twitter), Facebook, or direct file URLs.Read-only

    Get Transcript

    Extract transcripts from YouTube, TikTok, Instagram, X (Twitter), Facebook, or direct file URLs. Supports native captions, auto-generated captions, or AI-generated transcripts. Returns timestamped segments with speaker labels.

    Inputs

    urlstringrequired
    URL of the video or media file to transcribe. Supports YouTube, TikTok, Instagram, X, Facebook, or direct video/audio file URLs.
    chunkSizeinteger
    Maximum number of characters per transcript segment chunk.
    langstring
    ISO 639-1 language code for the transcript (e.g., en, fr, de). Defaults to the video's original language.
    modestring
    Transcript generation mode: native (use existing captions, 1 credit), auto (native with AI fallback), or generate (AI-generated, 2 credits/minute).one of nativeautogenerate
    textboolean
    Return plain text instead of timestamped segments. Defaults to false.
  • supadata_transcript_job_getPoll the status and result of an asynchronous transcript job.Read-only

    Get Transcript Job

    Poll the status and result of an asynchronous transcript job. supadata_transcript_get switches to async mode (returning a 202 with a jobId) for videos longer than roughly 20 minutes; use this tool to poll that jobId until status is completed or failed. Recommended poll interval is 1 second; results remain available for 1 hour after completion.

    Inputs

    jobIdstringrequired
    ID of the transcript job to check, returned by Get Transcript when it responds asynchronously.
  • supadata_web_crawl_getCheck the status of a web crawl job and retrieve its results once complete.Read-only

    Get Web Crawl Results

    Check the status of a web crawl job and retrieve its results once complete. Use the jobId returned by Start Web Crawl.

    Inputs

    jobIdstringrequired
    ID of the crawl job to check, returned by Start Web Crawl.
  • supadata_web_mapDiscover and return all URLs found on a website.Read-only

    Map Website URLs

    Discover and return all URLs found on a website. Useful for site structure analysis, link auditing, and building crawl lists. Costs 1 credit per request.

    Inputs

    urlstringrequired
    Base URL of the website to map.
  • supadata_web_scrapeScrape a web page and return its content as clean Markdown.Read-only

    Scrape Web Page

    Scrape a web page and return its content as clean Markdown. Ideal for extracting readable content from any URL while stripping away navigation and ads.

    Inputs

    urlstringrequired
    URL of the web page to scrape.
    langstring
    ISO 639-1 language code to request content in a specific language (e.g., en, fr, de).
    noLinksboolean
    Strip all hyperlinks from the Markdown output. Defaults to false.

Workflows

Proxy API call
// Get a YouTube transcript — no API key needed here
const result = await actions.request({
connectionName: 'supadata',
identifier: 'user_123',
path: '/v1/youtube/transcript',
method: 'GET',
queryParams: { videoId: 'dQw4w9WgXcQ', text: 'true' },
});
console.log(result);
Execute a tool
const result = await actions.executeTool({
connector: 'supadata',
identifier: 'user_123',
toolName: 'supadata_metadata_get',
toolInput: {},
});
console.log(result);