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, usage, 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 consume minutes.
  • 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?

Yes — API streams draw on the same plan minutes as dashboard streams. One pool, one plan. Watch the burn on the dashboard Usage tab. 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. 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). preparing time never consumes plan minutes. See Streams.

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

Revoke it immediately in DEVELOPERS → 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?