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.

LimitTierAppliesAllowanceNotes
Requests, signed outSigned outPer IP60 requests per minuteBaseline 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 outSigned outPer IP30 requests per minuteAdditional, 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 inAccountPer account120 requests per minuteBaseline ceiling on every request carrying a valid access token, counted per account.
Reads, signed inAccountPer account90 requests per minuteThe 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 enabledMetered accountPer account1200 requests per minuteBaseline 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 enabledMetered accountPer account600 requests per minuteThe 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.

LimitAppliesAllowanceNotes
Login attemptsPer IP10 requests per minuteSign-in attempts per client IP.
Sign-upsPer IP5 requests per hourAccount registrations per client IP.
Password-reset requestsPer IP3 requests per hourPassword-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.

QuotaTypeDefault limitNotes
Emote slotsResource50Channel emote slots this user holds.
Clips createdResource300Live clips this user has created across all creators.
Clip creation rateRate20 requests per hourClips this user may create per hour.
Moderator slotsResource25Moderators this user's channel has appointed.
FriendsResource1000Confirmed friends this user holds.
Friend request rateRate30 requests per hourFriend requests this user may send per hour.
Status update rateRate60 requests per hourStatus changes this user may make per hour.
Blocked usersResource1000Users this user has blocked.
DM send rateRate30 requests per minuteDirect messages this user may send per minute.
DM reaction rateRate60 requests per minuteDM reactions this user may add or remove per minute.
Topic-chat reaction rateRate60 requests per minuteTopic-chat reactions this user may add per minute.
API keysResource10API keys this user holds.
Thumbnail pick rateRate30 requests per hourVOD thumbnail frames this user may pick per hour.
Subscription creation rateRate5 requests per 24 hoursNew subscriptions this user may start per day.
Tip send rateRate10 requests per minuteTips this user may send per minute.
Tip send daily capRate60 requests per 24 hoursTips this user may send per day.
Wallet top-up rateRate10 requests per 24 hoursWallet top-ups this user may start per day.
Patron Checkout rateRate10 requests per 24 hoursPatron Checkouts this user may start per day.
Forum post rateRate15 requests per hourForum posts this user may create per hour.
YAP creation rateRate60 requests per hourYAPs this user may create per hour.
YAP engagement rateRate120 requests per minuteYAP engagement edges this user may add or remove per minute.
YAP mention fanout rateRate60 requests per hourMention-bearing YAPs this user may create or edit per hour.
YAP report rateRate20 requests per hourYAP platform reports this user may file per hour.
YAP link-unfurl rateRate20 requests per minuteYAP link previews this user may fetch per minute.
Forum comment rateRate10 requests per minuteForum comments this user may create per minute.
Forum vote rateRate60 requests per minuteForum votes this user may cast per minute.
Forum report rateRate20 requests per hourForum reports this user may file per hour.
Forum link-unfurl rateRate20 requests per minuteForum link previews this user may fetch per minute.
Forum creation rateRate5 requests per 24 hoursForums this user may create per day.
Forum tag mint rateRate10 requests per 24 hoursNew forum tags this user may mint per day.
Forum tag apply rateRate30 requests per minuteForum tag applications this user may make per minute.
Avatar upload rateRate10 requests per hourAvatar uploads this user may start per hour.
Emote upload rateRate30 requests per hourEmote uploads this user may start per hour.
Media storage (bytes)Resource2147483648Total 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 createdResource25Live moderation lenses this user created.
Sensitive forum edits (30d)Resource3Forum edits this user may withhold as sensitive per rolling 30 days.
Sensitive YAP edits (30d)Resource3YAP edits this user may withhold as sensitive per rolling 30 days.
Sensitive topic-chat edits (30d)Resource3Topic-chat edits this user may withhold as sensitive per rolling 30 days.

Ready to take part?

Create an account