The following endpoints are from the official OpenSubtitles.com API.

OpenSubtitles API Endpoints

The following endpoints are from the official OpenSubtitles.com API.

Login

Create a token to authenticate a user. If response code is 401 Unathorized stop sending further requests with the same credentials, login is "expensive" operation.

Request rate limit is 1 request per 1 second.

Further API requests must continue on returned base_url host, which can have different cache time for search results and different request rate limits. If base_url equals vip-api.opensubtitles.com make sure you always send with every request JWT token (if available), otherwise request might fail with 4xx code.

URL:
/login
Method:
POST
Parameters:
Content-Type
header
application/json
User-Agent
header
APP_NAME vAPP_VERSION
Response (200):

Create session and token

{ "user": { "allowed_downloads": 100, "allowed_translations": 5, "level": "Sub leecher", "user_id": 66, "ext_installed": false, "vip": false }, "base_url": "api.opensubtitles.com", "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJEOU5aaWUyVjhWOU1hTnJVZWVvcEEwWUNoWEt6Wkx3NiIsImV4cCI6MTYwNDM1ODAwMH0.sMibjAFnkcs-HJ4zhdCwBeGrZ_UvzMbgl5NxYV2uALM", "status": 200 }

Logout

Destroy a user token to end a session. Bearer token is required for this endpoint.

URL:
/logout
Method:
DELETE
Parameters:
User-Agent
header
APP_NAME vAPP_VERSION
Response (200):

Destroy session and current token

{ "message": "token successfully destroyed", "status": 200 }

Subtitle Formats

List subtitle formats recognized by the API

URL:
/infos/formats
Method:
GET
Parameters:
User-Agent
header
APP_NAME vAPP_VERSION

Languages

Get the languages information

URL:
/infos/languages
Method:
GET
Parameters:
User-Agent
header
APP_NAME vAPP_VERSION
Response (200):

Get the languages table containing the codes and names used through the API

{ "data": [ { "language_code": "af", "language_name": "Afrikaans" }, { "language_code": "sq", "language_name": "Albanian" }, { "language_code": "ar", "language_name": "Arabic" }, { "language_code": "an", "language_name": "Aragonese" }, { "language_code": "hy", "language_name": "Armenian" }, { "language_code": "at", "language_name": "Asturian" }, { "language_code": "eu", "language_name": "Basque" }, { "language_code": "be", "language_name": "Belarusian" }, { "language_code": "bn", "language_name": "Bengali" }, { "language_code": "bs", "language_name": "Bosnian" }, { "language_code": "br", "language_name": "Breton" }, { "language_code": "bg", "language_name": "Bulgarian" }, { "language_code": "my", "language_name": "Burmese" }, { "language_code": "ca", "language_name": "Catalan" }, { "language_code": "zh-cn", "language_name": "Chinese (simplified)" }, { "language_code": "cs", "language_name": "Czech" }, { "language_code": "da", "language_name": "Danish" }, { "language_code": "nl", "language_name": "Dutch" }, { "language_code": "en", "language_name": "English" }, { "language_code": "eo", "language_name": "Esperanto" }, { "language_code": "et", "language_name": "Estonian" }, { "language_code": "fi", "language_name": "Finnish" }, { "language_code": "fr", "language_name": "French" }, { "language_code": "ka", "language_name": "Georgian" }, { "language_code": "de", "language_name": "German" }, { "language_code": "gl", "language_name": "Galician" }, { "language_code": "el", "language_name": "Greek" }, { "language_code": "he", "language_name": "Hebrew" }, { "language_code": "hi", "language_name": "Hindi" }, { "language_code": "hr", "language_name": "Croatian" }, { "language_code": "hu", "language_name": "Hungarian" }, { "language_code": "is", "language_name": "Icelandic" }, { "language_code": "id", "language_name": "Indonesian" }, { "language_code": "it", "language_name": "Italian" }, { "language_code": "ja", "language_name": "Japanese" }, { "language_code": "kk", "language_name": "Kazakh" }, { "language_code": "km", "language_name": "Khmer" }, { "language_code": "ko", "language_name": "Korean" }, { "language_code": "lv", "language_name": "Latvian" }, { "language_code": "lt", "language_name": "Lithuanian" }, { "language_code": "lb", "language_name": "Luxembourgish" }, { "language_code": "mk", "language_name": "Macedonian" }, { "language_code": "ml", "language_name": "Malayalam" }, { "language_code": "ms", "language_name": "Malay" }, { "language_code": "ma", "language_name": "Manipuri" }, { "language_code": "mn", "language_name": "Mongolian" }, { "language_code": "no", "language_name": "Norwegian" }, { "language_code": "oc", "language_name": "Occitan" }, { "language_code": "fa", "language_name": "Persian" }, { "language_code": "pl", "language_name": "Polish" }, { "language_code": "pt-pt", "language_name": "Portuguese" }, { "language_code": "ru", "language_name": "Russian" }, { "language_code": "sr", "language_name": "Serbian" }, { "language_code": "si", "language_name": "Sinhalese" }, { "language_code": "sk", "language_name": "Slovak" }, { "language_code": "sl", "language_name": "Slovenian" }, { "language_code": "es", "language_name": "Spanish" }, { "language_code": "sw", "language_name": "Swahili" }, { "language_code": "sv", "language_name": "Swedish" }, { "language_code": "sy", "language_name": "Syriac" }, { "language_code": "ta", "language_name": "Tamil" }, { "language_code": "te", "language_name": "Telugu" }, { "language_code": "tl", "language_name": "Tagalog" }, { "language_code": "th", "language_name": "Thai" }, { "language_code": "tr", "language_name": "Turkish" }, { "language_code": "uk", "language_name": "Ukrainian" }, { "language_code": "ur", "language_name": "Urdu" }, { "language_code": "uz", "language_name": "Uzbek" }, { "language_code": "vi", "language_name": "Vietnamese" }, { "language_code": "ro", "language_name": "Romanian" }, { "language_code": "pt-br", "language_name": "Portuguese (Brazilian)" }, { "language_code": "me", "language_name": "Montenegrin" }, { "language_code": "zh-tw", "language_name": "Chinese (traditional)" }, { "language_code": "ze", "language_name": "Chinese bilingual" } ] }

User Informations

Gather informations about the user authenticated by a bearer token. User information are already sent when user is authenticated, and the remaining downloads is returned with each download, but you can also get these information here.

URL:
/infos/user
Method:
GET
Parameters:
User-Agent
header
APP_NAME vAPP_VERSION
Response (200):

Get user data

{ "data": { "allowed_downloads": 100, "level": "Sub leecher", "user_id": 66, "ext_installed": false, "vip": false, "downloads_count": 1, "remaining_downloads": 99 } }

AI Translate

Translate subtitles using AI from one language to another language.

Credits on user account are needed. Buy Credits

Check following method: Get AI Translate status

Method is returning

Status possible values:

Using correlation_id can check status of job using GET

URL:
/ai/translate
Method:
POST
Parameters:
api
query
translation_apis
file
query
file contents to translate
translate_from
query
language ISO639 translate_from (auto is default)
translate_to
query
language ISO639 translate_from
file_id
query
file_id from /subtitles endpoint

AI Translate status

Get status of translate job using correlation_id

URL:
/ai/translate/{correlation_id}
Method:
GET

AI Transcribe

Transcribe media (audio, video) file using AI into subtitles. Max size of file: 100 MB

Credits on user account are needed. Buy Credits

Check following method: Get AI Transcribe status

Method is returning

Status possible values:

Using correlation_id can check status of job using GET

URL:
/ai/transcribe
Method:
POST
Parameters:
api
query
transcribe API
file
query
media file
language
query
language of media file

AI Transcribe status

Get status of transcribe job using correlation_id

URL:
/ai/transcribe/{correlation_id}
Method:
GET

Used by:

opensubtitles.Com logo

OpenSubtitles.com
(preferred site)

opensubtitles.Org logo

OpenSubtitles.org
(legacy site)

Users with a .com account can access credits from their .org account after completing the account migration process between the sites.