๐ŸŽฌ Subtitle Search Engine

API Documentation v1.0

Overview

The Subtitle Search Engine API allows you to search and download subtitles for movies and TV shows. The API is free to use with rate limits depending on your account type.

Base URL:

https://subtitles.website/strapi/api

All responses are in JSON format. No registration is required for basic search and download.

Authentication

Authentication is optional but recommended for higher rate limits. To authenticate, include your API key in the request header:

Authorization: Bearer YOUR_API_KEY

To get an API key:

  1. Register for a free account
  2. Login โ†’ click your username โ†’ My Profile
  3. Scroll to API Key โ†’ click Generate
VIP users get 1000 API requests/day. Upgrade to VIP for โ‚ฌ10/year.

Rate Limits

Rate limits reset at midnight UTC every day.

Account Type Search/Download per day Authentication
Guest (no account) 10 requests/day Not required
Registered 50 requests/day API key required
โญ VIP 1000 requests/day API key required

When you exceed the rate limit, the API returns HTTP 429 Too Many Requests.

Stremio Addon

Our Stremio addon provides subtitles directly in the Stremio media player.

Public addon (guest)
https://subtitles.website/stremio/manifest.json
Authenticated addon (registered users)
https://subtitles.website/stremio/{api_key}/manifest.json

Get your personal URL in My Profile after generating an API key.

Subtitle endpoint
GET https://subtitles.website/stremio/subtitles/{type}/{imdb_id}.json

# Examples:
https://subtitles.website/stremio/subtitles/movie/tt0133093.json
https://subtitles.website/stremio/subtitles/series/tt0944947.json
Response format
{
  "subtitles": [
    {
      "id": "abc123",
      "url": "https://subtitles.website/strapi/uploads/subtitle.vtt",
      "lang": "hrv",
      "name": "The.Matrix.1999.BluRay.hr"
    }
  ]
}

Error Codes

HTTP CodeMeaning
200Success
400Bad request โ€” missing or invalid parameters
401Unauthorized โ€” invalid or missing API key
404Not found
429Rate limit exceeded โ€” try again tomorrow
500Server error
Rate limit error response
{
  "error": "Daily download limit reached",
  "limit": 10,
  "remaining": 0,
  "reset": "midnight"
}

Code Examples

JavaScript (fetch)
// Search by IMDB ID
const response = await fetch(
  'https://subtitles.website/strapi/api/search/subtitles?imdb=tt0133093&language=en',
  {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY' // optional
    }
  }
);
const data = await response.json();
console.log(data.data); // array of subtitles

// Download a subtitle
const dl = await fetch(
  `https://subtitles.website/strapi/api/search/download/${data.data[0].id}`,
  { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const dlData = await dl.json();
const fullUrl = 'https://subtitles.website/strapi' + dlData.download_url;
Python (requests)
import requests

BASE = 'https://subtitles.website/strapi/api'
HEADERS = {'Authorization': 'Bearer YOUR_API_KEY'}  # optional

# Search
r = requests.get(f'{BASE}/search/subtitles',
    params={'imdb': 'tt0133093', 'language': 'en'},
    headers=HEADERS)
subtitles = r.json()['data']

# Download
dl = requests.get(f'{BASE}/search/download/{subtitles[0]["id"]}',
    headers=HEADERS)
url = 'https://subtitles.website/strapi' + dl.json()['download_url']
print(url)
cURL
# Search without authentication
curl "https://subtitles.website/strapi/api/search/subtitles?title=Matrix&language=en"

# Search with API key
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://subtitles.website/strapi/api/search/subtitles?imdb=tt0133093"

# Download
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://subtitles.website/strapi/api/search/download/SUBTITLE_ID"