AI Content Repurposing API: Summaries, Threads, Blog Posts
Turn any transcript into summaries, chapter markers, quote collections, Twitter threads, blog posts, or show notes — all via a single endpoint with a mode selector.
The repurpose endpoint takes a completed transcript and generates derivative content in a single API call. Results are returned synchronously — average latency is 3–8 seconds depending on transcript length and mode.
Endpoint
POST /api/v1/transcriptions/{id}/repurpose
Scope: repurpose:runModes
| Mode | What you get | Typical length |
|---|---|---|
| summary | Paragraph summary of the transcript | 3–5 sentences |
| chapters | Timestamped chapter markers with titles | 5–15 entries |
| quotes | Top 5–10 most quotable lines pulled verbatim | 5–10 quotes |
| show-notes | Podcast show notes with intro, key topics, links placeholder | 200–400 words |
| thread | Twitter/X thread with hooks and numbered tweets | 8–15 tweets |
| blog | Full blog post with sections and a CTA | 600–1200 words |
Example — generate a Twitter thread
const result = await client.transcriptions.repurpose(99, 'thread');
console.log(result.content);result = client.transcriptions.repurpose(99, mode="thread")
print(result.content)curl -X POST https://wisprs.co/api/v1/transcriptions/99/repurpose \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "mode": "thread" }'{
"success": true,
"data": {
"mode": "thread",
"content": "1/ Never gonna give you up — breaking down the most misunderstood song of the 80s.\n\n2/ Here's what Rick actually meant when he wrote it...",
"generatedAt": "2026-06-17T10:01:00.000Z"
}
}Example — chapter markers
const chapters = await client.transcriptions.chapters(99);
console.log(chapters.chapters);
// [{ title: 'Intro', startSeconds: 0 }, { title: 'The hook', startSeconds: 82 }]chapters = client.transcriptions.repurpose(99, mode="chapters")
print(chapters.chapters)
# [{'title': 'Intro', 'start_seconds': 0}, {'title': 'The hook', 'start_seconds': 82}]curl -X POST https://wisprs.co/api/v1/transcriptions/99/repurpose \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "mode": "chapters" }'{
"success": true,
"data": {
"mode": "chapters",
"content": "00:00 Intro\n01:22 The hook\n03:45 Verse breakdown\n...",
"chapters": [
{
"title": "Intro",
"startSeconds": 0
},
{
"title": "The hook",
"startSeconds": 82
}
],
"generatedAt": "2026-06-17T10:01:00.000Z"
}
}SDK convenience aliases
// Generic
const result = await client.transcriptions.repurpose(99, 'thread');
// Convenience aliases
const summary = await client.transcriptions.summary(99);
const chapters = await client.transcriptions.chapters(99);
const quotes = await client.transcriptions.quotes(99);# Generic
result = client.transcriptions.repurpose(99, mode="thread")
# Convenience aliases
summary = client.transcriptions.summary(99)
chapters = client.transcriptions.chapters(99)
quotes = client.transcriptions.quotes(99)# Pass any mode in the JSON body
curl -X POST https://wisprs.co/api/v1/transcriptions/99/repurpose \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "mode": "summary" }'Notes
- Repurpose calls require the transcript to be in
completedstatus. A 422 is returned otherwise. - Results are not stored — generate on demand and cache on your end if needed.
- Average latency: ~3–8s depending on transcript length and mode.
FAQ
What repurpose modes are available?
Six modes are supported: summary, chapters, quotes, show-notes, thread, and blog. See the modes table above for output format and typical length.
Can I use my own prompt or tone instructions?
Custom prompt support is on the roadmap. For now, each mode uses a purpose-built prompt optimized for that content type.
How long does repurposing take?
Most modes return in 3–8 seconds for a typical podcast episode (30–60 minutes). Longer transcripts or the blog mode (which produces 600–1200 words) may take up to 15 seconds.