Supadata
Connect with Supadata to extract transcripts, metadata, and structured content from YouTube, social media, and the web using AI.
Supports authentication: API Key
Set up the agent connector
Section titled “Set up the agent 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.
-
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.

-
Create a connection in Scalekit
- In Scalekit dashboard, go to Agent Auth → Create Connection. Find Supadata and click Create.
- Note the Connection name — you will use this as
connection_namein your code (e.g.,supadata). - Click Save.

-
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
- Your User’s ID — a unique identifier for this user in your system (e.g.,
-
Click Save.

Via API (for production)
// Never hard-code API keys — read from secure storage or user inputconst supadataApiKey = getUserSupadataKey(); // retrieve from your secure storeawait scalekit.actions.upsertConnectedAccount({connectionName: 'supadata',identifier: 'user_123', // your user's unique IDcredentials: { api_key: supadataApiKey },});# Never hard-code API keys — read from secure storage or user inputsupadata_api_key = get_user_supadata_key() # retrieve from your secure storescalekit_client.actions.upsert_connected_account(connection_name="supadata",identifier="user_123",credentials={"api_key": supadata_api_key}) -
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
import { ScalekitClient } from '@scalekit-sdk/node';import 'dotenv/config';
const connectionName = 'supadata'; // connection name from your Scalekit dashboardconst identifier = 'user_123'; // your user's unique identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsconst 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 hereconst result = await actions.request({ connectionName, identifier, path: '/v1/youtube/transcript', method: 'GET', queryParams: { videoId: 'dQw4w9WgXcQ', text: 'true' },});console.log(result);import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "supadata" # connection name from your Scalekit dashboardidentifier = "user_123" # your user's unique identifier
# Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsscalekit_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 hereresult = actions.request( connection_name=connection_name, identifier=identifier, path="/v1/youtube/transcript", method="GET", params={"videoId": "dQw4w9WgXcQ", "text": True})print(result)Scalekit tools
Tool list
Section titled “Tool list”Supadata uses a credit-based billing model. The credit cost per call is noted on each tool below. All tools require a connected account with a valid Supadata API key — see the setup guide above.
| Credit cost | Tools |
|---|---|
| 1 credit | supadata_metadata_get, supadata_web_map, supadata_web_scrape, supadata_youtube_channel_get, supadata_youtube_playlist_get, supadata_youtube_search, supadata_youtube_transcript_get, supadata_youtube_video_get |
1 credit (native/auto mode) or 2 credits/minute (generate mode) | supadata_transcript_get |
| 1 credit + translation fee | supadata_youtube_transcript_translate (base retrieval + AI translation) |
supadata_metadata_get
Section titled “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.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL of the video or media to retrieve metadata for. |
supadata_transcript_get
Section titled “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.
| Name | Type | Required | Description |
|---|---|---|---|
chunkSize | integer | No | Maximum number of characters per transcript segment chunk. |
lang | string | No | ISO 639-1 language code for the transcript (e.g., en, fr, de). Defaults to the video’s original language. |
mode | string | No | Transcript generation mode: native (use existing captions, 1 credit), auto (native with AI fallback), or generate (AI-generated, 2 credits/minute). |
text | boolean | No | Return plain text instead of timestamped segments. Defaults to false. |
url | string | Yes | URL of the video or media file to transcribe. Supports YouTube, TikTok, Instagram, X, Facebook, or direct video/audio file URLs. |
supadata_web_map
Section titled “supadata_web_map”Discover and return all URLs found on a website. Useful for site structure analysis, link auditing, and building crawl lists.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Base URL of the website to map. |
supadata_web_scrape
Section titled “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.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
lang | string | No | ISO 639-1 language code to request content in a specific language (e.g., en, fr, de). |
noLinks | boolean | No | Strip all hyperlinks from the Markdown output. Defaults to false. |
url | string | Yes | URL of the web page to scrape. |
supadata_youtube_channel_get
Section titled “supadata_youtube_channel_get”Retrieve metadata for a YouTube channel including name, description, subscriber count, video count, and thumbnails.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
channelId | string | Yes | YouTube channel ID, handle (@username), or full channel URL. |
supadata_youtube_playlist_get
Section titled “supadata_youtube_playlist_get”Retrieve metadata and video list for a YouTube playlist including title, description, video count, and individual video details.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
playlistId | string | Yes | YouTube playlist ID or full playlist URL. |
supadata_youtube_search
Section titled “supadata_youtube_search”Search YouTube for videos, channels, or playlists. Returns results with titles, IDs, descriptions, thumbnails, and metadata.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
lang | string | No | ISO 639-1 language code to filter results by language (e.g., en, fr). |
limit | integer | No | Maximum number of results to return. |
query | string | Yes | Search query string to find videos, channels, or playlists on YouTube. |
type | string | No | Type of results to return: video, channel, or playlist. |
supadata_youtube_transcript_get
Section titled “supadata_youtube_transcript_get”Retrieve the transcript for a YouTube video by video ID or URL. Returns timestamped segments with text content. Falls back to auto-generated captions if manual captions are unavailable.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
lang | string | No | ISO 639-1 language code for the transcript (e.g., en, fr, de). |
text | boolean | No | Return plain text instead of timestamped segments. Defaults to false. |
videoId | string | Yes | YouTube video ID or full YouTube URL to retrieve the transcript for. |
supadata_youtube_transcript_translate
Section titled “supadata_youtube_transcript_translate”Retrieve and translate a YouTube video transcript into a target language. Returns translated timestamped segments.
| Name | Type | Required | Description |
|---|---|---|---|
lang | string | Yes | ISO 639-1 language code to translate the transcript into (e.g., en, fr, es). |
text | boolean | No | Return plain text instead of timestamped segments. Defaults to false. |
videoId | string | Yes | YouTube video ID or full YouTube URL to translate the transcript for. |
supadata_youtube_video_get
Section titled “supadata_youtube_video_get”Retrieve detailed metadata for a YouTube video including title, description, view count, like count, duration, tags, thumbnails, and channel info.
Cost: 1 credit per request.
| Name | Type | Required | Description |
|---|---|---|---|
videoId | string | Yes | YouTube video ID or full YouTube URL. |