Programmatically generate LinkedIn carousels from YouTube URLs or transcript text. Integrate InsightSlide AI into your content pipeline.
Generate an API key from your Dashboard, then make a POST request to the generate endpoint:
curl -X POST https://insightslide.ai/api/v1/generate \
-H "Authorization: Bearer isa_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"sourceType": "url",
"sourceContent": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}'All API requests require a Bearer token in the Authorization header.
Authorization: Bearer isa_your_api_key_hereAPI keys start with isa_ and are 68 characters long. You can generate and manage keys from your Dashboard. Keys are hashed on our servers — store them securely, as they cannot be retrieved after creation.
/api/v1/generateGenerate a LinkedIn carousel from a YouTube URL or raw transcript text. Returns the carousel ID, title, and an array of slide objects.
| Field | Type | Required | Description |
|---|---|---|---|
sourceType | string | Required | "url" or "transcript" |
sourceContent | string | Required | YouTube URL or transcript text (min 10 chars) |
curl -X POST https://insightslide.ai/api/v1/generate \
-H "Authorization: Bearer isa_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"sourceType": "url",
"sourceContent": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}'curl -X POST https://insightslide.ai/api/v1/generate \
-H "Authorization: Bearer isa_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"sourceType": "transcript",
"sourceContent": "In this webinar, we discussed three key strategies for B2B growth..."
}'{
"id": 42,
"title": "3 Key Strategies for B2B Growth",
"slides": [
{
"id": 1,
"type": "cover",
"headline": "3 Key Strategies for B2B Growth",
"body": "Insights from our latest webinar on scaling B2B companies...",
"icon": "\u2728"
},
{
"id": 2,
"type": "insight",
"headline": "Strategy #1: Content-Led Growth",
"body": "Companies that publish 4+ pieces per week see 3.5x more traffic...",
"stat": "3.5x",
"statLabel": "More Traffic"
}
],
"status": "completed",
"usage": {
"used": 3,
"limit": 30,
"tier": "pro"
}
}| Status | Meaning |
|---|---|
401 | Invalid or missing API key |
400 | Invalid request body or failed URL extraction |
429 | Monthly rate limit exceeded |
500 | Internal server error |
/api/v1/usageCheck your current monthly usage and rate limits.
curl https://insightslide.ai/api/v1/usage \
-H "Authorization: Bearer isa_your_api_key_here"{
"used": 3,
"limit": 30,
"tier": "pro",
"bonus": 6
}API requests share the same monthly carousel limits as the web application. Limits are enforced per-account, not per-key.
| Plan | Monthly Limit | Price |
|---|---|---|
| Free | 2 carousels | $0/mo |
| Starter | 10 carousels | $29/mo |
| Pro | 30 carousels | $79/mo |
| Business | Unlimited | Custom |
Bonus carousels earned through referrals are added to your monthly limit.
import requests
API_KEY = "isa_your_api_key_here"
BASE_URL = "https://insightslide.ai/api/v1"
response = requests.post(
f"{BASE_URL}/generate",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"sourceType": "url",
"sourceContent": "https://www.youtube.com/watch?v=VIDEO_ID",
},
)
data = response.json()
print(f"Generated {len(data['slides'])} slides: {data['title']}")const response = await fetch("https://insightslide.ai/api/v1/generate", {
method: "POST",
headers: {
"Authorization": "Bearer isa_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
sourceType: "transcript",
sourceContent: "Your webinar transcript text here...",
}),
});
const data = await response.json();
console.log(`Generated ${data.slides.length} slides: ${data.title}`);Generate your first API key from the Dashboard and start building.