API · early access

The hard parts of a user‑generated product, as an API.

Moderation that judges intent, not vocabulary. Usernames, policies and reputation. Alerts when a raid is forming. And for anything with sound: tempo, key, fingerprints and lyrics from any file. One key, one base URL, signed webhooks, a dashboard your team can actually use.

~100 mschat verdict, fast mode
0.5–3 sfull cascade with a reason
5–20 sper track, everything at once
Three product lines

Primitives, not policies.

The API returns scores, categories, counts and signals. What to do about them stays with you — thresholds, punishments and UX are configuration, never code we wrote for someone else.

01

Trust & safety

Text, images and usernames through a cascade that starts with a word list and ends with a language model that has read your context.

  • Sync verdicts with per-category scores and a one-line reason
  • Fast mode: answer in ~100 ms, finish the models in the background
  • Masked text, language detection, link unwrapping and threat lists
  • Name check: confusables, leetspeak, reserved and staff words
  • Named policies per surface — chat, comments, profile
02

Behavioural signals

A single message classified alone cannot see a raid or a repeat offender. Tag checks with who and where, and every verdict comes with the counts.

  • Flags per actor and per room over 10 min, 1 h, 24 h
  • Copy-paste repeat detection
  • Trust score from flags, weighted reports and your own enforcement
  • Alert rules: threshold → signed webhook, once per subject per cooldown
03

Audio intelligence

One job per track. Everything a music, podcast or creator product wants to know, in a single result, by webhook.

  • BPM, key, beat grid, Camelot / Open Key, confidence
  • Fingerprinting against your own catalogue — re-uploads caught at the door
  • Genre, mood, danceability, vocals
  • Loudness report, true peak, per-platform normalisation, waveform
  • Lyrics with timings and an explicit flag (per-account feature)
Capabilities

Everything is additive, documented, and on for every account.

Except the things with a real per-call cost, which are switched on per account and refuse loudly rather than skip silently.

Moderation

Intent, not vocabulary.

Links → word list → omni → LLM. A quoted lyric passes; “I know where you live” does not. Scams, impersonation and brigading are judged by a model that knows what a chat, a comment, a profile and a caption are.

Fast mode

Post first, retract if needed.

Chat cannot wait two seconds. Get the cheap tiers in ~100 ms with a provisional answer; the model tiers finish on the same job and the final verdict arrives by webhook.

Policies

Configure a surface once.

Named rulesets — thresholds per category, ignored categories, allow and deny words, request defaults — selected with one field. Change them in the dashboard, not in a deploy.

Names

Refuse аdmin at signup.

Usernames, display names, clan tags: profanity after folding lookalike characters and leetspeak, staff and platform words, your own reserved list, mixed-script detection. Deterministic, a millisecond.

Actors

A ledger per user.

Trust score from recent flags, reports weighted by the reporter's own credibility, and the mutes and bans you send back. Report-spamming a good user does nothing.

Alerts

Be told, don't poll.

“Five flags in one room in ten minutes → slow mode” as a rule pointed at your endpoint. Signed, retried, once per subject per cooldown, visible in the dashboard.

Audio

BPM, key, beat grid — with confidence.

Tempo and tonality with confidence scores, harmonic-mixing notation, half/double-time alternatives, and a beat grid a deck can sync to. Versioned engine string on every result.

Fingerprinting

Know when you've heard it before.

Every upload is matched against your catalogue — re-encodes, trimmed intros, low-bitrate copies — with similarity and offset. Per tenant, never across tenants.

Lyrics & quality

Transcribed, timed, labelled — and measured.

Whole-track transcription behind a hallucination guard, an explicit flag for the advisory badge, plus loudness, clipping, fake-lossless detection and a waveform to draw.

Integration

Boring in the right places.

Bearer key in, JSON out. Idempotency keys on every write, a request id on every response, stable error codes, per-key rate limits, signed webhooks with retries. 202 where it should be, 200 where it can be.

  1. Create a key in the dashboardScoped, shown once, rotatable with zero downtime.
  2. Configure a policy per surfaceChat, comments, profile — thresholds and word lists live there, not in your code.
  3. One call per message, one job per trackVerdicts inline; audio by webhook. Every result explains itself.
  4. Send back what happenedReports, mutes, bans — so trust scores and alerts reflect your product, not just ours.
dashboard.irate.tech

Your team's view, not ours.

Reference docsEvery field, limit and error code — with your own base URL and limits filled in.
PlaygroundReal calls against your account, a copyable curl for each.
Jobs & request logsEvery call by request id; every job with its full result and attempts.
Policies & alertsRules and thresholds as configuration, editable by owners.
Actor lookupTrust, flags, reports and enforcement for any user id you have sent.
Keys, webhooks, teamSelf-service credentials, delivery history, per-person logins with optional 2FA.
In production

Built for real products first.

Real products on the same public endpoints any customer gets. No private path, no special treatment: if something is awkward for them, the contract is what gets fixed.

VIBED.FM
Music · social network for artists

Every track and every room.

Vibed is live rooms, unsigned records, and no algorithm deciding who gets heard. The audio line and the moderation line, end to end.

  • Every upload, analysed and fingerprinted.Tempo, key and beat grid land on a track before anyone types them; a re-upload of something taken down is caught at the door.
  • Comments, chat, handles and artwork, moderated.Lyrics get quoted — the cascade scores intent, so a quoted line passes and a threat is flagged with a reason.
  • Raids visible in the numbers.Per-room signals show a pile-on forming before the reports do.
STRIKEM
Games · 2D multiplayer shooter

Chat at game speed.

STRIKEM is a fast 2D multiplayer shooter with lobby chat, in-match team chat, clans and player reports — five platforms from one codebase. The trust & safety and behavioural lines, on the hot path.

  • Chat on the fast path.A verdict in ~100 ms with masked text, the model tiers finishing behind it; a raid in a lobby fires an alert that throttles the room.
  • Names checked at signup.Usernames and clan tags refused for staff impersonation, lookalike characters and leetspeak — before they exist.
  • Reports that mean something.Player reports, mutes and bans feed a trust score, weighted by the reporter's own record — so report-spamming a good player does nothing.
Early access

Open to a small number of teams.

Communities, games, marketplaces, music and creator platforms. Tell us what you moderate or what you play, and we will set you up with a key and a walk through the dashboard.