v1.0 API

ScriptHooks API

Access a growing database of 3,600+ proven video hooks from content with 100K-8B+ views. Search by niche, emotion, format, and platform. Updated daily.

3,600+
Viral Hooks
100K-8B+
View Range
Daily
Updates

Overview

The ScriptHooks API gives you programmatic access to our curated database of viral video hooks. Each hook is tagged with metadata including archetype, emotional trigger, niche, and performance data.

Base URL

https://scripthooks.ai/api/hookdata

What's Included

  • The hook text (exact wording from viral videos)
  • View count from source video
  • Platform (TikTok, YouTube, Reels, etc.)
  • Archetype classification (curiosity gap, bold claim, etc.)
  • Emotional trigger (fear, aspiration, surprise, etc.)
  • Niche/vertical category

Authentication

All API requests require authentication via an API key. Include your key in the request header:

Header Authorization: Bearer YOUR_API_KEY
Keep your API key secret.
Do not expose it in client-side code or public repositories.

Getting an API Key

Contact team@scripthooks.ai to get your API key. Include your use case and expected call volume.

Already have an API key? View your dashboard to manage usage and regenerate keys.

Request API Access API Dashboard

Pricing

Simple, predictable pricing based on your usage needs.

Starter
$29 /month
1,000 API calls
  • All endpoints
  • Full hook metadata
  • Email support
Scale
$299 /month
100,000 API calls
  • All endpoints
  • Full hook metadata
  • Dedicated support
  • Trend data access
  • Bulk export
Enterprise
Custom
1,000,000+ API calls
  • Unlimited endpoints
  • Custom integrations
  • SLA guarantee
  • Dedicated account manager

Endpoints

GET /hooks Popular

Retrieve viral hooks from the database with filtering and pagination.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://scripthooks.ai/api/hookdata/hooks
GET /hooks/random

Get random viral hooks for inspiration.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://scripthooks.ai/api/hookdata/hooks/random?count=5"
GET /hooks/full

Get complete hook data with metadata.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://scripthooks.ai/api/hookdata/hooks/full
GET /archetypes

List all hook archetypes with descriptions and examples.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://scripthooks.ai/api/hookdata/archetypes
GET /meta

Get API metadata and statistics.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://scripthooks.ai/api/hookdata/meta

Rate Limits

Free Tier
100
requests/day
Pro Tier
10,000
requests/day
Enterprise
Unlimited
custom limits

Response Schema

All successful responses return JSON with the following structure:

{
  "success": true,
  "data": [
    {
      "id": "hook_12345",
      "text": "POV: You finally understand...",
      "views": 2400000,
      "platform": "TikTok",
      "archetype": "curiosity_gap",
      "emotional_trigger": "surprise",
      "niche": "finance"
    }
  ],
  "count": 1,
  "timestamp": "2026-01-14T12:00:00Z"
}

Error Codes

401 Unauthorized

Invalid or missing API key

429 Rate Limit Exceeded

Too many requests - upgrade your plan or wait

404 Not Found

Endpoint or resource doesn't exist

500 Server Error

Something went wrong on our end

Code Examples

Quick examples to get you started in your language of choice.

Python

Python
import requests

API_KEY = "your_api_key"
BASE_URL = "https://scripthooks.ai/api/hookdata"

def get_hooks(niche=None, archetype=None, limit=20):
    headers = {"Authorization": f"Bearer {API_KEY}"}
    params = {"limit": limit}

    if niche:
        params["niche"] = niche
    if archetype:
        params["archetype"] = archetype

    response = requests.get(
        f"{BASE_URL}/hooks",
        headers=headers,
        params=params
    )
    return response.json()

# Get curiosity gap hooks for finance
hooks = get_hooks(niche="finance", archetype="curiosity_gap")

for hook in hooks["data"]:
    print(f"{hook['text']} - {hook['views']:,} views")

JavaScript

JavaScript
const API_KEY = 'your_api_key';
const BASE_URL = 'https://scripthooks.ai/api/hookdata';

async function getHooks({ niche, archetype, limit = 20 } = {}) {
  const params = new URLSearchParams({ limit });

  if (niche) params.append('niche', niche);
  if (archetype) params.append('archetype', archetype);

  const response = await fetch(
    `${BASE_URL}/hooks?${params}`,
    {
      headers: {
        'Authorization': `Bearer ${API_KEY}`
      }
    }
  );

  return response.json();
}

// Get curiosity gap hooks for finance
const hooks = await getHooks({
  niche: 'finance',
  archetype: 'curiosity_gap'
});

hooks.data.forEach(hook => {
  console.log(`${hook.text} - ${hook.views.toLocaleString()} views`);
});

cURL

Bash
curl -X GET "https://scripthooks.ai/api/hookdata/hooks?niche=finance&archetype=curiosity_gap&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"