Developer API

API Documentation

Programmatically generate LinkedIn carousels from YouTube URLs or transcript text. Integrate InsightSlide AI into your content pipeline.

Quick Start

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"
  }'

Authentication

All API requests require a Bearer token in the Authorization header.

Authorization: Bearer isa_your_api_key_here

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

Endpoints

POST/api/v1/generate

Generate a LinkedIn carousel from a YouTube URL or raw transcript text. Returns the carousel ID, title, and an array of slide objects.

Request Body

FieldTypeRequiredDescription
sourceTypestringRequired"url" or "transcript"
sourceContentstringRequiredYouTube URL or transcript text (min 10 chars)

Example: URL Input

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"
  }'

Example: Transcript Input

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..."
  }'

Response (200 OK)

{
  "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"
  }
}

Error Responses

StatusMeaning
401Invalid or missing API key
400Invalid request body or failed URL extraction
429Monthly rate limit exceeded
500Internal server error
GET/api/v1/usage

Check your current monthly usage and rate limits.

curl https://insightslide.ai/api/v1/usage \
  -H "Authorization: Bearer isa_your_api_key_here"

Response (200 OK)

{
  "used": 3,
  "limit": 30,
  "tier": "pro",
  "bonus": 6
}

Rate Limits

API requests share the same monthly carousel limits as the web application. Limits are enforced per-account, not per-key.

PlanMonthly LimitPrice
Free2 carousels$0/mo
Starter10 carousels$29/mo
Pro30 carousels$79/mo
BusinessUnlimitedCustom

Bonus carousels earned through referrals are added to your monthly limit.

Code Examples

Python

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']}")

Node.js / JavaScript

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}`);

Ready to integrate?

Generate your first API key from the Dashboard and start building.