TubeOnAI Developer API — User Guide
Easily integrate AI-powered summaries into your applications using the TubeOnAI Developer API, or connect an MCP-compatible AI assistant directly.
Supported Content Types
TubeOnAI can summarize the following content sources:
| Content Type | Description | Examples |
|---|---|---|
| YouTube Videos | Any public YouTube video | Tutorials, lectures, podcasts |
| Web Articles | Blog posts, news, pages | Medium articles, news sites |
| Documents | PDF, Word, TXT files | Reports, papers, eBooks |
| Rumble Videos | Public Rumble videos | Commentary, news clips |
Getting Started
1. Create Your API Key
API keys are created inside the TubeOnAI dashboard:
- Log in at: https://web.tubeonai.com
- Go to Settings → Developer Features
- Open the API Keys tab
- Click Create API Key, name it (e.g., My App Integration), and confirm
- Create the key and store it securely
Important: API keys are shown only once. Save them in a secure location.
Example:
pk_live_**********************************
2. Test Your API Key
curl -X GET "https://app.tubeonai.com/api/developer/v1/usage/credits" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Successful response:
{
"success": true,
"data": {
"balance": {
"available": 3600,
"used_today": 0,
"unit": "seconds"
}
}
}
Connect an AI Assistant via MCP
If you want an AI assistant (Claude, Cursor, Gemini, etc.) to use TubeOnAI directly inside your conversation — rather than writing your own REST integration — connect it over MCP (Model Context Protocol).
MCP Token vs. REST API Key
An MCP token is a separate credential from your REST pk_live_ API key above. MCP-compatible
clients use it to call TubeOnAI as a set of built-in tools — no request bodies or endpoint URLs
to write yourself. Use a REST API key when you're writing your own integration code; use an MCP
token when you're connecting an AI assistant.
Create an MCP Token
- Log in at https://web.tubeonai.com
- Go to Settings → Developer Features
- Open the MCP Tokens tab
- Stay on the Personal tokens segment (the fastest way to connect)
- Click Generate Token
- Name it, choose the abilities it needs (Read content, Write content, or both), and confirm
Important: the token is shown only once — copy it immediately. Format:
mcp_pat_**********
Prefer a browser-based sign-in instead of handling a token yourself? Switch to the Connected clients segment — supported clients (like Claude Desktop) can authorize TubeOnAI themselves without you creating a token.
MCP Server URL
https://app.tubeonai.com/mcp
Connect Your Client
Using a personal token — replace YOUR_TOKEN with the token you generated:
Claude Code
claude mcp add --transport http tubeonai https://app.tubeonai.com/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
Run /mcp inside Claude Code afterward to confirm it connected.
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"TubeOnAI": {
"command": "npx",
"args": [
"-y", "mcp-remote@latest", "https://app.tubeonai.com/mcp",
"--header", "Authorization: Bearer YOUR_TOKEN"
]
}
}
}
Restart Claude Desktop after saving — no browser flow needed, the token is used directly.
Cursor — add to ~/.cursor/mcp.json:
{
"mcpServers": {
"TubeOnAI": {
"url": "https://app.tubeonai.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
Treat your MCP token like a password — anyone with it can act on your account.
Tools the MCP Server Exposes
| Tool | What it does |
|---|---|
| summarize | Create a summary, check status, repurpose, retry, or delete |
| query_content | List/get summaries, transcripts, repurposed content, saved prompts |
| manage_credits | Check balance, usage stats, transaction history |
| search | Semantic or keyword search across your TubeOnAI library |
| manage_collections | Create, update, and organize summaries into collections |
| manage_channels | Search, subscribe/unsubscribe, and manage auto-summarize for YouTube channels |
Revoking an MCP Token
Go to Settings → Developer Features → MCP Tokens → Personal tokens and remove the token from the list — this takes effect immediately, and the client will need a new token to reconnect. To disconnect a client that used the browser sign-in flow instead, remove it from the Connected clients segment.
Creating Summaries
Request Body Structure
{
"url": "string (required)",
"type": "youtube | article | document | rumble",
"options": {
"detail_level": "concise | detailed | comprehensive",
"tone": "professional | casual | academic",
"model": "string (optional)",
"custom_prompt": "string (optional)"
},
"webhook_url": "string (optional)"
}
Content-Type Examples
YouTube Video
{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"type": "youtube",
"options": { "detail_level": "detailed", "tone": "professional" }
}
Short URL:
{
"url": "https://youtu.be/dQw4w9WgXcQ",
"options": { "detail_level": "comprehensive" }
}
Web Article
{
"url": "https://example.com/blog/interesting-article",
"type": "article",
"options": { "detail_level": "concise", "tone": "casual" }
}
{
"url": "https://example.com/reports/annual-report.pdf",
"type": "document",
"options": { "detail_level": "comprehensive", "tone": "academic" }
}
DOCX
{
"url": "https://example.com/docs/meeting-notes.docx",
"type": "document",
"options": { "detail_level": "concise", "tone": "professional" }
}
TXT
{
"url": "https://example.com/files/readme.txt",
"type": "document",
"options": { "detail_level": "detailed" }
}
Rumble Video
{
"url": "https://rumble.com/v5e0nip-video-title.html",
"type": "rumble",
"options": { "detail_level": "detailed", "tone": "professional" }
}
Request Options Explained
| Field | Values | Description |
|---|---|---|
| type | youtube, article, document, rumble | Content source |
| detail_level | concise, detailed (default), comprehensive | Summary length |
| tone | professional (default), casual, academic | Writing style |
| custom_prompt | Text | Custom instructions |
| webhook_url | URL | Automatic callback |
Response Examples
Summary Request Created
{
"success": true,
"message": "Summary request created successfully.",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"estimated_time": "2-5 minutes"
}
}
Status Values:
- pending
- processing
- completed
- failed
Retrieve Summary Result
curl -X GET "https://app.tubeonai.com/api/developer/v1/summaries/SUMMARY_ID" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Completed example:
{
"success": true,
"data": {
"status": "completed",
"title": "How to Build a Successful Startup",
"summary": "This video covers...",
"key_points": [
"Start with a problem worth solving",
"Build a minimum viable product",
"Focus on customer feedback"
],
"duration": 1200
}
}
Full cURL Library
Includes examples for:
- YouTube
- Articles
- Documents
- TXT
- Rumble (All formatted versions remain unchanged.)
Repurposing Summaries
Request Schema
{
"summary_id": "string",
"format": "linkedin | twitter | blog | email | bullet_points | custom",
"prompt": "optional",
"tone": "optional"
}
Supported Repurpose Formats
| Format | Output Style | Use Case |
|---|---|---|
| Optimized LinkedIn post | Professional posts | |
| 5-tweet thread | Social content | |
| blog | Long-form content | SEO and articles |
| Newsletter style | Campaigns | |
| bullet_points | Key takeaways | Presentations |
| custom | Fully custom | Scripts, sales copy |
Usage and Rate Limits
Check Credits
curl -X GET "https://app.tubeonai.com/api/developer/v1/usage/credits" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Check Usage
curl -X GET "https://app.tubeonai.com/api/developer/v1/usage" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"
Processing Time Overview
| Content Type | Average Time | Maximum |
|---|---|---|
| YouTube | 2–5 min | 60 min |
| Web Article | 1–3 min | — |
| Podcast | 3–7 min | 120 min |
| Document | 2–4 min | 500 pages |
| Rumble | 3–5 min | 60 min |
| Repeated content is cached for faster responses. |
Common Issues and Fixes
Unauthenticated
- Missing or incorrect API key
- Ensure keys start with
pk_live_ - Confirm the key is active
Insufficient Credits
- Check remaining usage
- Upgrade or purchase additional credits
Rate Limit Exceeded
- Limit: 60 requests per minute
- Add retry/delay logic
Long Processing Time
- Large content can take longer
- Poll every 10–15 seconds
- Retry if stuck beyond a reasonable threshold
Best Practices
Recommended
- Use environment variables
- Cache repeated content
- Use webhooks for asynchronous workflows
- Implement retries and error handling
Avoid
- Exposing API keys (or MCP tokens) on the front-end
- Sending duplicate or spam requests
- Using production keys for local testing
API Reference Summary
Base URL
https://app.tubeonai.com
Authorization Header
Authorization: Bearer pk_live_YOUR_API_KEY_HERE
Endpoints
All endpoints below are prefixed with /api/developer/v1.
| Endpoint | Method | Description |
|---|---|---|
| /api/developer/v1/summaries | POST | Create summary |
| /api/developer/v1/summaries/{id} | GET | Check summary |
| /api/developer/v1/summaries | GET | List summaries |
| /api/developer/v1/repurpose | POST | Repurpose |
| /api/developer/v1/usage/credits | GET | Check credits |
| /api/developer/v1/usage | GET | Usage stats |
MCP Server
https://app.tubeonai.com/mcp — see "Connect an AI Assistant via MCP" above for setup.