Skip to content

Quick start

The WitCast API lives at https://cast.witqq.dev/api/v1/. Every request is signed with a key: Authorization: Bearer <key>.

Open the Mini App in Telegram or a browser → Profile → API keys → New key. Choose the permissions (for example “Podcasts: price”, “Podcasts: create”, “Podcasts: status”), and optionally an expiry and a credit quota. The key’s secret is shown once — store it. See Keys and scopes.

Every paid operation takes two steps: a quote (POST …/quotes), which freezes rates and the optional spending limit and returns a quoteId, then the create call with the same body, the quoteId and an Idempotency-Key header.

podcasts:quote, podcasts:create

1 · quote
curl -s -X POST https://cast.witqq.dev/api/v1/podcasts/quotes \
-H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' \
-d '{
"mode": "topic",
"title": "Quantum sensors",
"topic": "How quantum sensors work and where they are used today",
"lengthPreset": "express",
"grounding": "quick",
"voiceId": "yandex-speechkit:jane",
"language": "en"
}'
2 · create
curl -s -X POST https://cast.witqq.dev/api/v1/podcasts \
-H "Authorization: Bearer $KEY" \
-H 'Idempotency-Key: my-request-001' \
-H 'Content-Type: application/json' \
-d '{
"quoteId": "QUOTE_ID",
"mode": "topic",
"title": "Quantum sensors",
"topic": "How quantum sensors work and where they are used today",
"lengthPreset": "express",
"grounding": "quick",
"voiceId": "yandex-speechkit:jane",
"language": "en"
}'

The create call answers 202 with an operation holding the podcastId. Status, receipt, cancel and audio are described in Status, receipt, cancel and audio.