TwinToneAPI Docs

Resources

Support & FAQ

Getting help

  • Email: info@twintone.ai — include your brand id (from any API response) and the stream_id / webhook_id you're asking about. We reply within one business day.
  • Dashboard: live.twintone.ai/dashboard — keys, billing, wallet, streams.
  • Sales / Enterprise (24/7 always-on, custom rate limits): same email, subject "Enterprise".

Security

Reporting a vulnerability

If you discover a security vulnerability, do not open a public issue or post about it. Email info@twintone.ai with details — we'll acknowledge within 24 hours and keep you informed of the fix timeline.

API key security

  • Keys are hashed with SHA-256 — we never store plaintext keys.
  • Test keys (tt_test_) never dispatch agents or incur billing.
  • Revoked keys stop working immediately.
  • See Authentication for the full security model.

Abuse & acceptable use

API keys used for probing, scraping, or excessive requests beyond the documented rate limits may be revoked. If you need higher limits, email us — we're happy to accommodate legitimate traffic.

Data & compliance

  • Data residency: streams, keys, and analytics are stored on TwinTone infrastructure (us-east-1).
  • Retention: stream data and analytics are retained for the life of your account. Deleted streams are soft-deleted for 30 days, then purged.
  • DPA: enterprise customers can request a Data Processing Agreement — email info@twintone.ai.

Frequently asked questions

Do API calls use my plan minutes?

No. API usage bills per streamed minute from your credit wallet, which is separate from the plan minutes you use in the dashboard. See API pricing.

What plan do I need for API access?

Live keys need the Growth plan or above for stream and webhook management — test keys are exempt and free. Stream creation is also capped by your plan's included API minutes and your credit wallet balance — see API pricing.

What's the difference between tt_test_ and tt_live_ keys?

Same endpoints, same response shapes. Test keys never dispatch an agent and never bill — streams return status: "live" immediately with "test": true so you can exercise the full lifecycle (including DELETE) for free. Go live by swapping in a live key — no other code changes, but you must add duration_minutes.

How many streams can I run at once?

3 concurrent (preparing + live) per brand. A 4th returns 429 concurrency_limit. Need more? Email us — Enterprise is always-on.

What happens if a stream gets stuck in preparing?

If the agent worker can't join the room within 5 minutes, the stream transitions to error and a stream.error webhook is sent (if registered). You are never billed for preparing time. See Streams.

My key leaked / I lost my key. What now?

Revoke it immediately in Billing → API keys — it stops working instantly. We store only a SHA-256 hash, so lost keys can't be recovered; create a new one.

Can I get notified when a stream starts/ends instead of polling?

Yes — register a webhook (POST /api/v1/webhooks) and we'll push stream.started / stream.ended / stream.error with an HMAC signature you can verify. See Webhooks.

Do you have an SDK?

Not yet — the API is a small set of REST endpoints and curl-friendly by design. When we ship one it will be JavaScript/TypeScript first. The OpenAPI spec generates a client in any language today.

Which platforms can I stream to?

YouTube, TikTok, Twitch, Kick, Facebook, Instagram. iGaming brands: see the iGaming guide for the compliance checklist.

Where's my data?

Streams, keys, and analytics live on TwinTone infrastructure (us-east-1). We never store plaintext API keys — only SHA-256 hashes.

Was this page helpful?