API

Ce este un API?

Un API (Application Programming Interface) este o interfață ce permite comunicarea de date între mai multe aplicații software. (mai multe informații)

Documentație API v1.0

Noua versiune a API-ului nostru oferă acces programatic la baza de date de subtitrări, permițând căutarea după IMDB ID, TMDB ID, titlu sau release.

Acces și Autentificare

Pentru a folosi API-ul, aveți nevoie de o cheie de acces (API Key) pe care o puteți genera din profilul dumneavoastră de utilizator. Fiecare cheie are o cotă zilnică de interogări pentru a asigura stabilitatea serviciului.

Changelog

  • 2026-03-06 - Versiunea 1.0 a API-ului este considerată stabilă.
  • 2026-02-01 - API-ul este acum disponibil pe subdomeniul dedicat specificat in OpenAPI spec-ul de mai jos. Ruta actuala va deveni indisponibila in viitor.
  • 2025-12-26 - Lansarea versiunii 1.0 a noului API REST cu suport pentru căutare avansată (IMDB, TMDB, Titlu, Release).
  • 2023-01-21 - API-ul a fost pentru moment dezactivat.
  • 2014-01-20 - Lansarea primei versiuni a API-ului public.

Implementări folosind API-ul nostru

Plugin pentru Stremio care oferă subtitrări folosind API-ul Subs.ro. Suportă căutare automată și descărcare directă în aplicație.

Autor: allecsc

JavaScript

Plugin pentru JellyFin care integrează serviciul de subtitrări Subs.ro, permițând utilizatorilor să caute și să descarce subtitrări direct din interfața JellyFin.

Autor: gm

C# JavaScript HTML

Extensie care integrează serviciul de subtitrări Subs.ro direct în interfața Kodi.

Autor: elisu

Python

Ai creat o aplicație folosind API-ul nostru?

Trimite-ne detaliile și o vom adăuga în această listă. Poti lua legătura cu noi pe Discord.

Notă importantă

Aplicațiile și bibliotecile de cod listate mai sus sunt dezvoltate și menținute de terțe părți. Noi nu oferim suport tehnic pentru aceste implementări. Pentru probleme sau întrebări legate de aceste aplicații, vă rugăm să contactați direct autorii originali.

Specificație OpenAPI 3.0

openapi: 3.0.0
info:
  title: Subs.ro API
  description: API for searching and downloading subtitles from subs.ro.
  version: 1.0.0
servers:
  - url: https://api.subs.ro/v1.0
    description: API v1.0
paths:
  /search/{searchField}/{value}:
    get:
      summary: Search for subtitles
      parameters:
        - name: searchField
          in: path
          required: true
          schema:
            type: string
            enum: [imdbid, tmdbid, title, release]
        - name: value
          in: path
          required: true
          schema:
            type: string
        - name: language
          in: query
          required: false
          schema:
            type: string
            enum: [ro, en, ita, fra, ger, ung, gre, por, spa, alt]
      responses:
        '200':
          description: A list of subtitles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'

  /subtitle/{id}:
    get:
      summary: Get subtitle details
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Subtitle details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailsResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'

  /subtitle/{id}/download:
    get:
      summary: Download subtitle archive
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Binary archive file
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '404':
          $ref: '#/components/responses/ErrorResponse'

  /quota:
    get:
      summary: Get API usage and quota information
      responses:
        '200':
          description: Quota information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuotaResponse'
        '401':
          $ref: '#/components/responses/ErrorResponse'

components:
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-Subs-Api-Key
    ApiKeyQuery:
      type: apiKey
      in: query
      name: apiKey
  security:
    - ApiKeyHeader: []
    - ApiKeyQuery: []

  schemas:
    SubtitleItem:
      type: object
      properties:
        id:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        description:
          type: string
        link:
          type: string
        downloadLink:
          type: string
        title:
          type: string
        year:
          type: integer
        imdbid:
          type: string
        tmdbid:
          type: integer
        poster:
          type: string
        translator:
          type: string
        language:
          type: string
        type:
          type: string
          enum: [movie, series]

    Meta:
      type: object
      properties:
        requestId:
          type: string

    SearchResponse:
      type: object
      properties:
        status:
          type: integer
        meta:
          $ref: '#/components/schemas/Meta'
        count:
          type: integer
        items:
          type: array
          items:
            $ref: '#/components/schemas/SubtitleItem'

    DetailsResponse:
      type: object
      properties:
        status:
          type: integer
        meta:
          $ref: '#/components/schemas/Meta'
        item:
          $ref: '#/components/schemas/SubtitleItem'

    QuotaInfo:
      type: object
      properties:
        total_quota:
          type: integer
        used_quota:
          type: integer
        remaining_quota:
          type: integer
        quota_type:
          type: string
          enum: [anonymous, api_key]
        ip_address:
          type: string
        api_key:
          type: string
          description: Masked API key

    QuotaResponse:
      type: object
      properties:
        status:
          type: integer
        meta:
          $ref: '#/components/schemas/Meta'
        quota:
          $ref: '#/components/schemas/QuotaInfo'

  responses:
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: integer
              message:
                type: string
              meta:
                $ref: '#/components/schemas/Meta'