Skip to content
GET /v1/meta

Spec

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/subtitle-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/subtitle-api/v1/meta" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/subtitle-api/v1/meta", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/subtitle-api/v1/meta");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/subtitle-api/v1/meta",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "name": "Subtitle API",
        "notes": "Auto-detects SRT vs WebVTT. SRT uses HH:MM:SS,mmm and numbered cues; WebVTT uses HH:MM:SS.mmm under a WEBVTT header. Shifting clamps negative times to zero. This handles subtitle files — for SMPTE video timecode use a timecode API. Nothing is stored.",
        "version": "v1",
        "endpoints": [
            {
                "path": "/v1/parse",
                "params": {
                    "subtitle": "the .srt or .vtt file text (required)"
                },
                "returns": "the parsed cues with times in HH:MM:SS,mmm and milliseconds"
            },
            {
                "path": "/v1/convert",
                "params": {
                    "to": "'srt' or 'vtt' (default: the other format)",
                    "subtitle": "the subtitle text (required)"
                },
                "returns": "the converted subtitle text"
            },
            {
                "path": "/v1/shift",
                "params": {
                    "to": "output format (default: keep the input format)",
                    "offset": "milliseconds to shift (negative to move earlier)",
                    "subtitle": "the subtitle text (required)"
                },
                "returns": "the time-shifted subtitle text"
            },
            {
                "path": "/v1/meta",
                "params": [],
                "returns": "this document"
            }
        ],
        "description": "Work with subtitle files. The parse endpoint reads SubRip (.srt) or WebVTT (.vtt) text into structured cues — index, start, end (as both HH:MM:SS,mmm and milliseconds), duration and text — auto-detecting the format. The convert endpoint converts between SRT and WebVTT, fixing the timestamp separator (comma vs dot), adding or removing the WEBVTT header and renumbering cues. The shift endpoint moves every timestamp by an offset in milliseconds (positive or negative) to re-sync a track that runs early or late, clamping at zero. Pure local, no key."
    },
    "meta": {
        "timestamp": "2026-06-03T17:42:20.864Z",
        "request_id": "961f1a01-1334-41b9-b2fc-446f6270bccb"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}