A transcript timestamped per segment, not a wall of text
Every segment carries its start_seconds. That single field is what turns a block of text into content you can navigate, search and quote.
# Fetch the job with its timestamped segments curl "https://api.techtuel.com/v1/transcriptions/job_abc123?format=json" \ -H "Authorization: Bearer $TECHTUEL_API_KEY" # The same content as subtitles, ready for a player curl "https://api.techtuel.com/v1/transcriptions/job_abc123?format=vtt" \ -H "Authorization: Bearer $TECHTUEL_API_KEY" -o subtitles.vtt
{
"id": "job_abc123",
"status": "completed",
"title": "Conference — Event-driven architecture",
"language": "en",
"minutes": 46.8,
"transcript": "Let's start with the vocabulary…",
"segments": [
{ "start_seconds": 0, "text": "Let's start with the vocabulary" },
{ "start_seconds": 8.4, "text": "an event describes something that happened" },
{ "start_seconds": 15.2, "text": "a command expresses an intent" }
]
}A transcript without timestamps is a product dead end. You can display it, you can index it for full-text search, but you cannot do any of the things your users actually expect: click a sentence and jump there, find the moment a topic came up, chunk it cleanly for a model. So Techtuel always returns, alongside the transcript field, a segments array where every entry carries a start_seconds value in seconds and its text.
To be precise about granularity: timestamps are segment-level, not word-level. A segment is a natural chunk of speech, typically a sentence or a sentence fragment. That is exactly the granularity you need for a subtitle line, a seek in a player or a search chunk — and it is also what keeps the response light on long-form content.
What it unlocks in practice: player navigation (clicking a line seeks to start_seconds), in-video search (index the segment text, surface the timestamp in results), chapter generation (group segments by topic and take the first one’s start_seconds), clickable quotes in a summary, RAG chunking where each chunk keeps its time anchor, and of course subtitles — ?format=srt or ?format=vtt builds the file directly from those same segments.
Why this API
Segments, immediately
The job GET already returns segments in the typed envelope. No second ?format=json round trip just to get timestamps.
Subtitles without code
?format=srt and ?format=vtt build the file from the same segments. No cue-splitting logic to write on your side.
RAG-ready chunks
Each segment is a short unit of text with a time anchor: index it as-is and your answers cite the exact moment.
Pricing you can read
Frequently asked questions
Are word-level timestamps available?+
No, the granularity is the segment. Each segment exposes start_seconds and its text, which covers subtitles, player navigation and chunking for search.
How do I make a click seek to the right moment?+
Render each segment as a clickable line and seek the player to its start_seconds. No extra computation is needed.
How do I generate chapters?+
Group consecutive segments by topic and use the start_seconds of the first segment in each group as the chapter start.
Can I get SRT or VTT directly?+
Yes, with ?format=srt or ?format=vtt when you fetch the job. The file is built from the segments, with no formatting work on your side.
Are segments suitable for a RAG pipeline?+
Yes. Each segment is a short piece of text with a time anchor: index them as-is, or merge several while keeping the first start_seconds as the citation reference.
Other ways to use the API
Free trial, no credit card
Generate an API key and transcribe your first source in under a minute. A free monthly quota lets you test under real conditions.
Start with the API