Developers
The WebSocket API documents the realtime protocol. This page covers putting Kuldron video on your own site, and the limits every request is subject to.
Embeds
Three things embed, each with a chromeless player at a predictable URL:
/embed/users/{userId}for a live channel/embed/broadcasts/{broadcastId}for a past broadcast/embed/clips/{clipId}for a clip
Drop one in an <iframe>. It defaults to 640×360 and scales to the box you give it, and the share menu on any channel, VOD or clip page writes the snippet for you. There is no site allowlist.
oEmbed
Kuldron implements oEmbed, so in a tool that supports it, pasting a plain Kuldron link is enough: the tool finds the endpoint and builds the player itself. The endpoint is GET /oembed, taking the canonical url and format=json.
How an embed plays
On the same free-viewing terms as signed-out viewing, with no ads. An embed points at its source, so deleted or removed content stops playing everywhere it was embedded.
Request throttles
Applied to every request, at a ceiling that depends on who is asking. A caller without an access token is counted per client address; a signed-in one is counted per account, at a modestly higher ceiling; an account with usage billing enabled is counted per account at the highest. The reads ceiling is charged on top of the baseline one for the public read and listing endpoints. Over a limit returns 429 with Retry-After in seconds.
| Limit | Tier | Applies | Allowance | Notes |
|---|---|---|---|---|
| Requests, signed out | Signed out | Per IP | 60 requests per minute | Baseline ceiling on every request made without a valid access token, counted per client address. IPv6 callers are counted per /64 prefix rather than per address. Signing in raises it. |
| Reads, signed out | Signed out | Per IP | 30 requests per minute | Additional, tighter ceiling on the public read and listing endpoints — directories, feeds, tag and search results, per-channel catalogues and chat transcripts — for callers without an access token. Counted per client address alongside the baseline above, so bulk reading is bounded even when the baseline is not. |
| Requests, signed in | Account | Per account | 120 requests per minute | Baseline ceiling on every request carrying a valid access token, counted per account. |
| Reads, signed in | Account | Per account | 90 requests per minute | The same additional ceiling on the public read and listing endpoints, counted per account. Modestly above the signed-out ceiling: enough to browse quickly, not enough to walk the catalogue. |
| Requests, usage billing enabled | Metered account | Per account | 1200 requests per minute | Baseline ceiling on every request from an account with usage billing enabled, counted per account. An empty wallet or a reached spending limit returns the account to the signed-in ceiling rather than blocking it. |
| Reads, usage billing enabled | Metered account | Per account | 600 requests per minute | The public read and listing ceiling for an account with usage billing enabled, counted per account. This is the tier sized for programmatic reading. |
Signing in and enabling usage billing each move you down this table. GET /me/rate-limits answers which row you are on right now, and your rate limits page shows it alongside what you have used.
Signing in and signing up
The credential flows carry their own tighter limits, counted per client address. Nobody has an account yet when these apply, so they are the same for everyone.
| Limit | Applies | Allowance | Notes |
|---|---|---|---|
| Login attempts | Per IP | 10 requests per minute | Sign-in attempts per client IP. |
| Sign-ups | Per IP | 5 requests per hour | Account registrations per client IP. |
| Password-reset requests | Per IP | 3 requests per hour | Password-reset emails requested per client IP. |
Per-user quotas
Charged once a request is attributed to your account. Rate quotas reset over a rolling window; resource quotas cap how many of a thing you can own at once, so deleting one frees a slot and a quota at its cap returns 409. These are the defaults a new account starts with, read live from the API and also served as JSON at GET /rate-limits.
| Quota | Type | Default limit | Notes |
|---|---|---|---|
| Emote slots | Resource | 50 | Channel emote slots this user holds. |
| Clips created | Resource | 300 | Live clips this user has created across all creators. |
| Clip creation rate | Rate | 20 requests per hour | Clips this user may create per hour. |
| Moderator slots | Resource | 25 | Moderators this user's channel has appointed. |
| Friends | Resource | 1000 | Confirmed friends this user holds. |
| Friend request rate | Rate | 30 requests per hour | Friend requests this user may send per hour. |
| Status update rate | Rate | 60 requests per hour | Status changes this user may make per hour. |
| Blocked users | Resource | 1000 | Users this user has blocked. |
| DM send rate | Rate | 30 requests per minute | Direct messages this user may send per minute. |
| DM reaction rate | Rate | 60 requests per minute | DM reactions this user may add or remove per minute. |
| Topic-chat reaction rate | Rate | 60 requests per minute | Topic-chat reactions this user may add per minute. |
| API keys | Resource | 10 | API keys this user holds. |
| Thumbnail pick rate | Rate | 30 requests per hour | VOD thumbnail frames this user may pick per hour. |
| Subscription creation rate | Rate | 5 requests per 24 hours | New subscriptions this user may start per day. |
| Tip send rate | Rate | 10 requests per minute | Tips this user may send per minute. |
| Tip send daily cap | Rate | 60 requests per 24 hours | Tips this user may send per day. |
| Wallet top-up rate | Rate | 10 requests per 24 hours | Wallet top-ups this user may start per day. |
| Patron Checkout rate | Rate | 10 requests per 24 hours | Patron Checkouts this user may start per day. |
| Forum post rate | Rate | 15 requests per hour | Forum posts this user may create per hour. |
| YAP creation rate | Rate | 60 requests per hour | YAPs this user may create per hour. |
| YAP engagement rate | Rate | 120 requests per minute | YAP engagement edges this user may add or remove per minute. |
| YAP mention fanout rate | Rate | 60 requests per hour | Mention-bearing YAPs this user may create or edit per hour. |
| YAP report rate | Rate | 20 requests per hour | YAP platform reports this user may file per hour. |
| YAP link-unfurl rate | Rate | 20 requests per minute | YAP link previews this user may fetch per minute. |
| Forum comment rate | Rate | 10 requests per minute | Forum comments this user may create per minute. |
| Forum vote rate | Rate | 60 requests per minute | Forum votes this user may cast per minute. |
| Forum report rate | Rate | 20 requests per hour | Forum reports this user may file per hour. |
| Forum link-unfurl rate | Rate | 20 requests per minute | Forum link previews this user may fetch per minute. |
| Forum creation rate | Rate | 5 requests per 24 hours | Forums this user may create per day. |
| Forum tag mint rate | Rate | 10 requests per 24 hours | New forum tags this user may mint per day. |
| Forum tag apply rate | Rate | 30 requests per minute | Forum tag applications this user may make per minute. |
| Avatar upload rate | Rate | 10 requests per hour | Avatar uploads this user may start per hour. |
| Emote upload rate | Rate | 30 requests per hour | Emote uploads this user may start per hour. |
| Media storage (bytes) | Resource | 2147483648 | Total bytes of media this user is answerable for. Counted once per distinct image, and charged in full to every account referencing it — so the sum across users exceeds bytes actually stored. |
| Lenses created | Resource | 25 | Live moderation lenses this user created. |
| Sensitive forum edits (30d) | Resource | 3 | Forum edits this user may withhold as sensitive per rolling 30 days. |
| Sensitive YAP edits (30d) | Resource | 3 | YAP edits this user may withhold as sensitive per rolling 30 days. |
| Sensitive topic-chat edits (30d) | Resource | 3 | Topic-chat edits this user may withhold as sensitive per rolling 30 days. |
Ready to take part?
Create an account