> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agentkit`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Supadata

**Authentication:** API Key
**Categories:** Data, Analytics
## What you can do

Connect this agent connector to let your agent:

- **Get metadata, youtube playlist, youtube channel** — Retrieve unified metadata for a video or media URL including title, description, author info, engagement stats, media details, and creation date
- **Scrape web** — Scrape a web page and return its content as clean Markdown
- **Search youtube** — Search YouTube for videos, channels, or playlists
- **Map web** — Discover and return all URLs found on a website
- **Translate youtube transcript** — Retrieve and translate a YouTube video transcript into a target language

## Authentication

This connector uses **API Key** authentication. Your users provide their Supadata API key once, and Scalekit stores and manages it securely. Your agent code never handles keys directly — you only pass a `connectionName` and a user `identifier`.

Before calling this connector from your code, create the Supadata connection in **AgentKit** > **Connections** and copy the exact **Connection name** from that connection into your code. The value in code must match the dashboard exactly.

## Set up the connector

Register your Scalekit environment with the Supadata connector so Scalekit can proxy API requests and inject your API key automatically. Unlike OAuth connectors, Supadata uses API key authentication — there is no redirect URI or OAuth flow.

1. ### Get a Supadata API key

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

   - Go to [dash.supadata.ai](https://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**.

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

   > note: Credits and plan tiers
>
> Supadata uses a credit-based billing model. Different tools consume different amounts of credits per request:
>
> | Plan | Monthly credits | Rate limit |
> | --- | --- | --- |
> | **Free** | 100 credits | 1 req/s |
> | **Pro** ($9/mo) | 5,000 credits | 10 req/s |
> | **Ultra** ($29/mo) | 20,000 credits | 50 req/s |
> | **Mega** ($59/mo) | 50,000 credits | 100 req/s |
>
> Upgrade your plan at [dash.supadata.ai](https://dash.supadata.ai) → **Billing**.

2. ### Create a connection in Scalekit

   - In [Scalekit dashboard](https://app.scalekit.com), 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**.

   > Image: 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 them via the dashboard for testing, or via the Scalekit API in production.

   **Via dashboard (for testing)**

   - 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**.

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

   **Via API (for production)**

   
     ### Node.js

```typescript
// Never hard-code API keys — read from secure storage or user input
const supadataApiKey = getUserSupadataKey(); // retrieve from your secure store

await scalekit.actions.upsertConnectedAccount({
  connectionName: 'supadata',
  identifier: 'user_123',       // your user's unique ID
  credentials: { api_key: supadataApiKey },
});
```

     ### Python

```python
# Never hard-code API keys — read from secure storage or user input
supadata_api_key = get_user_supadata_key()  # retrieve from your secure store

scalekit_client.actions.upsert_connected_account(
    connection_name="supadata",
    identifier="user_123",
    credentials={"api_key": supadata_api_key}
)
```

   

   > tip: Production usage tip
>
> In production, call `upsert_connected_account` (Python) / `upsertConnectedAccount` (Node.js) when a user enters their Supadata API key — for example, on a settings page in your app.

> note: Rate limits and credit usage
>
> Each API key has plan-specific rate limits. The Free plan allows 1 request/second. Exceeding your credit quota returns a `402 Payment Required` error. Monitor your usage at [dash.supadata.ai](https://dash.supadata.ai) → **Usage**.

## Code examples

Once a connected account is set up, make API calls through the Scalekit proxy. Scalekit injects the Supadata API key automatically as the `x-api-key` header — you never handle credentials in your application code.

You can interact with Supadata in two ways — via direct proxy API calls or via Scalekit optimized tool calls. Scroll down to see the list of available Scalekit tools.

## Proxy API calls

  ### Node.js

```typescript

const connectionName = 'supadata'; // connection name from your Scalekit dashboard
const identifier = 'user_123';    // your user's unique identifier

// Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
const scalekit = new ScalekitClient(
  process.env.SCALEKIT_ENV_URL,
  process.env.SCALEKIT_CLIENT_ID,
  process.env.SCALEKIT_CLIENT_SECRET
);
const actions = scalekit.actions;

// Get a YouTube transcript via Scalekit proxy — no API key needed here
const result = await actions.request({
  connectionName,
  identifier,
  path: '/v1/youtube/transcript',
  method: 'GET',
  queryParams: { videoId: 'dQw4w9WgXcQ', text: 'true' },
});
console.log(result);
```

  ### Python

```python

from dotenv import load_dotenv
load_dotenv()

connection_name = "supadata"  # connection name from your Scalekit dashboard
identifier = "user_123"       # your user's unique identifier

# Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
scalekit_client = scalekit.client.ScalekitClient(
    client_id=os.getenv("SCALEKIT_CLIENT_ID"),
    client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
    env_url=os.getenv("SCALEKIT_ENV_URL"),
)
actions = scalekit_client.actions

# Get a YouTube transcript via Scalekit proxy — no API key needed here
result = actions.request(
    connection_name=connection_name,
    identifier=identifier,
    path="/v1/youtube/transcript",
    method="GET",
    params={"videoId": "dQw4w9WgXcQ", "text": True}
)
print(result)
```

> tip: No OAuth flow needed
>
> Supadata uses API key auth — unlike OAuth connectors, there is no authorization link or redirect flow. Once you call `upsert_connected_account` (Python) / `upsertConnectedAccount` (Node.js), or add an account via the dashboard, your users can make requests immediately.

## Scalekit tools

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

## Tool list

### `supadata_metadata_get`

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.

Parameters:

- `url` (`string`, required): URL of the video or media to retrieve metadata for.

### `supadata_transcript_get`

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.

Parameters:

- `url` (`string`, required): URL of the video or media file to transcribe. Supports YouTube, TikTok, Instagram, X, Facebook, or direct video/audio file URLs.
- `chunkSize` (`integer`, optional): Maximum number of characters per transcript segment chunk.
- `lang` (`string`, optional): ISO 639-1 language code for the transcript (e.g., en, fr, de). Defaults to the video's original language.
- `mode` (`string`, optional): Transcript generation mode: native (use existing captions, 1 credit), auto (native with AI fallback), or generate (AI-generated, 2 credits/minute).
- `text` (`boolean`, optional): Return plain text instead of timestamped segments. Defaults to false.

### `supadata_web_map`

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.

Parameters:

- `url` (`string`, required): Base URL of the website to map.

### `supadata_web_scrape`

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.

Parameters:

- `url` (`string`, required): URL of the web page to scrape.
- `lang` (`string`, optional): ISO 639-1 language code to request content in a specific language (e.g., en, fr, de).
- `noLinks` (`boolean`, optional): Strip all hyperlinks from the Markdown output. Defaults to false.

### `supadata_youtube_channel_get`

Retrieve metadata for a YouTube channel including name, description, subscriber count, video count, and thumbnails.

Parameters:

- `channelId` (`string`, required): YouTube channel ID, handle (@username), or full channel URL.

### `supadata_youtube_playlist_get`

Retrieve metadata and video list for a YouTube playlist including title, description, video count, and individual video details.

Parameters:

- `playlistId` (`string`, required): YouTube playlist ID or full playlist URL.

### `supadata_youtube_search`

Search YouTube for videos, channels, or playlists. Returns results with titles, IDs, descriptions, thumbnails, and metadata.

Parameters:

- `query` (`string`, required): Search query string to find videos, channels, or playlists on YouTube.
- `lang` (`string`, optional): ISO 639-1 language code to filter results by language (e.g., en, fr).
- `limit` (`integer`, optional): Maximum number of results to return.
- `type` (`string`, optional): Type of results to return: video, channel, or playlist.

### `supadata_youtube_transcript_get`

Retrieve the transcript for a YouTube video by video ID or URL. Returns timestamped segments with text content.

Parameters:

- `videoId` (`string`, required): YouTube video ID or full YouTube URL to retrieve the transcript for.
- `lang` (`string`, optional): ISO 639-1 language code for the transcript (e.g., en, fr, de).
- `text` (`boolean`, optional): Return plain text instead of timestamped segments. Defaults to false.

### `supadata_youtube_transcript_translate`

Retrieve and translate a YouTube video transcript into a target language. Returns translated timestamped segments.

Parameters:

- `lang` (`string`, required): ISO 639-1 language code to translate the transcript into (e.g., en, fr, es).
- `videoId` (`string`, required): YouTube video ID or full YouTube URL to translate the transcript for.
- `text` (`boolean`, optional): Return plain text instead of timestamped segments. Defaults to false.

### `supadata_youtube_video_get`

Retrieve detailed metadata for a YouTube video including title, description, view count, like count, duration, tags, thumbnails, and channel info.

Parameters:

- `videoId` (`string`, required): YouTube video ID or full YouTube URL.


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
