Quickstart
Create a keyword, describe your company, find mentions and mark one done. Five API calls.
Rumoro finds your keywords on X, Bluesky, Hacker News, Reddit, GitHub, Stack Overflow, DEV, YouTube, LinkedIn, TikTok, Instagram, in the news and in reviews, and scores each mention. Each example comes in TypeScript, Python and curl. The CLI and MCP server can do the same.
Before you start
Sign up at app.rumoro.dev. You get $5.80 of credit and don't need a card. Create a key on the API keys page and copy it, because it is shown only once. The API is at https://api.rumoro.dev/v1. Every request needs the key, except /v1/health and /v1/openapi.json. The examples read it from RUMORO_API_KEY.
// npm install @rumoro-dev/sdk
import { createRumoro } from '@rumoro-dev/sdk';
const rumoro = createRumoro({ apiKey: process.env.RUMORO_API_KEY! });More in Authentication.
1. Add a keyword
const { data: keyword } = await rumoro.createKeyword({ body: { term: 'driftwood', kind: 'brand' } });{
"id": "kw_3b8f2c71d94e4a06a5e19c2f7d6b0e48",
"term": "driftwood",
"kind": "brand",
"muted": false,
"platforms": null,
"context": null,
"matching": { "requiredTerms": [], "requiredMode": "any", "excludedTerms": [], "excludedAuthors": [], "caseSensitive": false },
"createdAt": "2026-10-04T08:21:37.512Z"
}This response is shortened. kind can be brand (the default), competitor or topic. platforms: null searches every platform. If your term is a common word, add matching rules, such as words the post must also contain or words that rule it out, and a context sentence. See How it works. If your balance can't pay for another day of the keyword, you get 402 insufficient_balance (Billing).
2. Describe your company
Rumoro scores relevance against your company profile, so this step improves results more than any other.
await rumoro.updateCompany({
body: { name: 'Driftwood', description: 'A feature flag service for mobile teams.', useCases: ['Roll out a release to 5% of users'] },
});The classifier reads a context that Rumoro builds from the profile. To write that text yourself, send context.
3. Find mentions
Mentions appear as each platform is checked.
const { data: page } = await rumoro.searchMentions({ query: { minRelevance: 60, sentiment: 'negative', limit: 20 } });{
"data": [
{
"id": "mm_...",
"status": "open",
"relevant": true,
"keyword": { "id": "kw_...", "term": "driftwood" },
"post": { "platform": "reddit", "url": "https://www.reddit.com/r/...", "text": "..." },
"author": { "name": "...", "followers": null },
"classification": { "relevance": 78, "sentiment": "negative", "intents": ["bug_report"], "note": "..." },
"createdAt": "2026-10-04T07:55:10.000Z"
}
],
"nextCursor": null
}This response is shortened. The newest mentions come first. To get the next page, send nextCursor as cursor, and stop when it is null. See Conventions.
4. Mark one done
Mentions marked done or ignored are not sent in new alerts.
await rumoro.updateMention({ path: { id: 'mm_...' }, body: { status: 'done', note: 'Replied in the thread' } });5. Get alerts
Instead of polling, have mentions sent to you. Use a webhook for your own code, or Slack, Telegram and email through Alerts.
Next steps
Authentication
API keys, scopes and OAuth sign-in.
How it works
How posts are collected, matched and scored.
SDKs
Typed clients for TypeScript and Python.
CLI
Every endpoint as a rumoro command.
MCP server
Your mentions as tools for AI agents.
Webhooks
Signed requests with retries.
Alerts
Slack, Telegram, email and webhooks.
API reference
Every endpoint.