FounderReply

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

WHAT THE PLATFORM ALLOWSfilled = allowed · hollow = the platform has no such actionAutonomy controller · shipped defaultspublishapprovereplyapprovecomment_on_othersoffdmapproveThe shipped defaults are stricter than the platforms are — and the same controller runswhether the call came from the dashboard, a cron, or an agent holding a key.

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.

Capabilities each FounderReply Tier A platform connector supports, from lib/connectors, grouped by whether the platform can be connected today
PlatformPublishReplyComment on othersDMMetricsDiscovery searchNotes
Connectable today · 10
RedditOAuth 2.0 (code + refresh)SupportedSupportedSupportedSupportedSupportedSupportedScore + comment counts; no impressions API.
XOAuth 2.0 + PKCESupportedSupportedSupportedSupportedSupportedSupportedBYO credentials, Basic tier or above. Public metrics only.
BlueskyApp password (no OAuth)SupportedSupportedSupportedNo official APINo official APISupportedchat.bsky.* is off-protocol and not wired.
LemmyPer-instance loginSupportedSupportedSupportedSupportedNo official APISupportedPer-instance login; federated search.
DiscoursePer-forum API keySupportedSupportedSupportedSupportedNo official APISupportedPer-forum API key; free keyword search.
LinkedInOAuth 2.0 (member scopes)SupportedSupportedNo official APINo official APISupportedNo official APINo third-party DM or comment-on-others API.
InstagramFacebook Login (Meta scopes)SupportedSupportedNo official APISupportedSupportedNo official APIReplies on your own media only. Webhooks.
FacebookFacebook Login for BusinessSupportedSupportedNo official APISupportedSupportedNo official APIReplies on your own Page posts. Webhooks.
YouTubeGoogle OAuth 2.0 (sensitive scope)No official APISupportedSupportedNo official APINo official APISupportedNo post/upload surface; comments only.
Stack ExchangeOAuth 2.0 (explicit flow)No official APISupportedSupportedNo official APINo official APISupportedThe 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

A dash is a platform decision, not ours. Where a platform ships no surface for an action — LinkedIn has no third-party DM or comment-on-others API, YouTube has no post surface — the connector declares that in its own source, and the orchestration layer reads the declaration instead of trying an endpoint and hoping.

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.

Always
Check the mode set for that action on that network before dispatching
Report when a mode you set exceeds the platform’s own policy
Apply the same rules to the dashboard, a cron, and an API caller
Show a pending network as pending rather than hiding it
Never
Comment on a stranger’s thread without approval you turned on
Send a DM un-gated on a level you did not set yourself
Fabricate a capability the connector source does not declare
Connect a platform whose app is still in that platform’s review queue

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