Connectors
10 official-API connectors, with their real limits
This page is the official-API tier. Each of the 10 connectors declares the capabilities the platform's own API actually grants, and the orchestration layer reads that declaration rather than trying an endpoint and hoping — so a gap in this table is a gap in the platform's API, not a gap in the roadmap. 10 of the 10 can be connected today; the rest are built but waiting on the platform's own app review.
- Six capabilities per platform, read from the connector source
- 10 connectable today — a pending network is shown as pending, never hidden
- Every row carries the credential that network actually takes
- A second, browser-session tier of 12 networks is governed apart, and is not in this table
Tier A only · 10 connectable today · 0 awaiting the platform’s own review
Capability matrix
What each platform's API actually allows
One row per official-API connector, one column per action. A dash is not a roadmap item — it is the platform having no such surface to call. Each row carries the credential that network takes, and its name opens that network's own page.
| Platform | Publish | Reply | Comment on others | DM | Metrics | Discovery search | Notes |
|---|---|---|---|---|---|---|---|
| Connectable today · 10 | |||||||
| RedditOAuth 2.0 (code + refresh) | Supported | Supported | Supported | Supported | Supported | Supported | Score + comment counts; no impressions API. |
| XOAuth 2.0 + PKCE | Supported | Supported | Supported | Supported | Supported | Supported | BYO credentials, Basic tier or above. Public metrics only. |
| BlueskyApp password (no OAuth) | Supported | Supported | Supported | No official API | No official API | Supported | chat.bsky.* is off-protocol and not wired. |
| LemmyPer-instance login | Supported | Supported | Supported | Supported | No official API | Supported | Per-instance login; federated search. |
| DiscoursePer-forum API key | Supported | Supported | Supported | Supported | No official API | Supported | Per-forum API key; free keyword search. |
| LinkedInOAuth 2.0 (member scopes) | Supported | Supported | No official API | No official API | Supported | No official API | No third-party DM or comment-on-others API. |
| InstagramFacebook Login (Meta scopes) | Supported | Supported | No official API | Supported | Supported | No official API | Replies on your own media only. Webhooks. |
| FacebookFacebook Login for Business | Supported | Supported | No official API | Supported | Supported | No official API | Replies on your own Page posts. Webhooks. |
| YouTubeGoogle OAuth 2.0 (sensitive scope) | No official API | Supported | Supported | No official API | No official API | Supported | No post/upload surface; comments only. |
| Stack ExchangeOAuth 2.0 (explicit flow) | No official API | Supported | Supported | No official API | No official API | Supported | The soft-marketing action is posting an answer. |
| Awaiting the platform’s own app review · 0 | |||||||
Nothing is missing from the 0 in the lower group: those connectors are written and tested, and the capability row is theirs. What is outstanding is the platform's own review of our app registration, so GET /api/v1/oauth/<platform>/start refuses the request and the dashboard renders no connect button, on any plan. They flip the day the review clears.
Why some rows are empty
Autonomy
Capability is not permission
A lit cell above says the platform would accept the call. Whether FounderReply makes it is a separate decision, and it is yours.
Every action a connector can take passes the autonomy controller first, and the shipped defaults are stricter than the APIs are: commenting on strangers' threads ships read-only on Reddit and LinkedIn, and at human-approval everywhere else — regardless of whether the call arrived from the dashboard, a cron, or an agent holding a key. The controller is a table of defaults, not of caps: a mode you set looser than a platform's own policy is applied as written, reported as exceeding it, and written to the audit log as your decision.
The controller, on every connector
Set per action and per network, and read at decision time rather than at configuration time.
The other tier
There are two ways in, and this page covered one
A connector is an app registered against a platform's own API. That is not the only way FounderReply reaches a network, and the second way has no capability table because it has no API.
- Tier A
- The 10 connectors in the matrix above. An OAuth app — or, on four of them, a credential you issue yourself — against the platform's own API, one module each in lib/connectors/, and the capability table is whatever that API grants.10 connectable today; 0 waiting on app review.
- Tier B
- 12 networks driven through a real browser session signed in as you — no platform API involved, so there is no capability table to transcribe. Eight have no Tier A equivalent at all: Threads, TikTok, Pinterest, Mastodon, Quora, Hacker News, Product Hunt, Indie Hackers.X, LinkedIn, Instagram and Facebook are in both tiers.
- Kill-switch
- The whole tier is off unless TIER_B_BOTS_ENABLED is set, and TIER_B_DISABLED takes one network out without touching the rest. Both are read at decision time, per action.
- Its own queue
- Tier B writes land in /api/v1/bots/approvals — comments on strangers' posts, replies, DMs, publishes — with per-network daily write caps that start low on a new account and ramp.
The two lanes are governed apart on purpose. Tier B platform keys are plain strings and never enter the API Platform union, so nothing in the matrix above can accidentally describe a browser session — and nothing here claims an official API where there is none.
Connect what you already use
The networks you are on, with their real limits in view.
Connect an account, set the dial per action, and read exactly what each platform will and will not let an agent do. 10 of the 10 are open today.
Free to start · Approval on by default · No card required