GET /v1/task-sources is always the
source of truth. The full matrix is listed below for reference, but query the endpoint when you need
the authoritative, up-to-the-deploy set.
Supported platforms & actions
Each✓ is a real source.action you can pass to POST /v1/tasks. A blank cell means the platform
genuinely lacks that verb (calling it returns unsupported).
Write verbs.
threads, truthsocial, and weibo also support publishing — post.create,
comment.create, delete — which require a write-scoped token and confirm: true. See
Authentication.Account requirements
Some platforms crawl from public endpoints; others need a provisioned social account (a real login, captured once via the operator dashboard). The requirement is per platform, not per action — if a platform needs a login, it needs one for every action it offers. Each catalog row carries this as astateful boolean on GET /v1/task-sources
(stateful: true ⇒ account required; absent ⇒ open). Gate on that field rather than hardcoding this
table — it stays correct across deploys.
Automatic account failover. When you have more than one ready account for a platform, a
blocked / session_expired / rate_limited result on one account makes Torii transparently retry
on your other ready accounts — one at a time, never two sessions on one account. This applies to
every read action (search, posts, user, detail, comments, hot, recommended,
trending), not just search. You get blocked back only when every one of your accounts is
walled; a single account’s bad day (a search-wall, a lapsed cookie) never surfaces as a failure. The
envelope’s warnings note how many accounts were tried.Failover is scoped to you: the candidate accounts are the ones your bearer token owns — the same
owner isolation as everywhere else, so one tenant’s block never reaches for another’s accounts.
(health is exempt — it is a per-account probe, so it reports the account you named.) Writes never
fail over: publishing is tied to a specific identity, so a blocked publish is returned as-is.Two independent gates. Account required (this section, via
stateful) is about the platform
login. Write (above, via the write flag) is about your token’s scope. A publish verb
(weibo.post.create, …) needs both: a provisioned Weibo account and a write-scoped token
with confirm: true.What each action does
List every capability (live)
Returns one row per realplatform.action. Use it to populate a source picker or to check a
capability before you call it.
The capability map
The same catalog, grouped by content kind, each provider carrying the actions it actually supports — because a provider is real for specific actions (Instagram hastrending but not
search; Threads is download-only). There is deliberately no provider-level “real” flag; the
per-provider actions list is the truth.
Feed categories
For platforms whosehot / recommended feed has named tabs (e.g. TikTok’s Comedy, Sports),
returns the tab list you can pass as params.category.
Refs: what query accepts
For a creator or post action, params.query is flexible — Torii resolves it:
So the string a user copies from a platform’s share button works as a ref — no cleanup on your side.