beehiiv connector setup
Operator·2 minutes to read
This page is the setup half: getting a beehiiv OAuth app for this deployment and entering its
client id and secret. Authorising a connection afterwards is the Authenticate control on the
plugin sheet, which sends the member to beehiiv. What the connector does for a member is on
docs/using/connectors/beehiiv-api.md; the vendor facts,
with their sources, are in docs/research/connectors/beehiiv-api.md.
The plugin slug is beehiiv-api. The catalogue's beehiiv tile is beehiiv's own hosted MCP
server, a different plugin that needs none of this.
1. Get the OAuth app from beehiiv
beehiiv does not have a self-serve app console: "For more information about registering an OAuth client, contact beehiiv Support" (developers.beehiiv.com/oauth2, read 2026-10-21). Ask beehiiv Support for a confidential OAuth client and give them:
-
the redirect URL, which must match exactly. With the quickstart's default
BOTSEON_PUBLIC_URL:http://127.0.0.1:3000/api/oauth/beehiiv-api/callbackIn general it is
<BOTSEON_PUBLIC_URL>/api/oauth/beehiiv-api/callback(finding your redirect URL); -
the scopes in section 2.
beehiiv gives you a client id (its uid) and a client secret.
2. Scopes
The connector asks for the read half always, and the write half only when the member allows changes (F-PLUG-1: minimum scopes per capability, read and write requested separately):
- read:
identify:read,publications:read,posts:read,subscriptions:read,segments:read - write:
posts:write,subscriptions:write
3. Enter the app
One command, with the client secret on standard input (see
README.md):
printf %s "$CLIENT_SECRET" | botseon oauth-app set \
--org <organisation id> --slug beehiiv-api \
--client-id <the client id from beehiiv> \
--auth-url https://app.beehiiv.com/oauth/authorize \
--token-url https://app.beehiiv.com/oauth/token \
--revoke-url https://app.beehiiv.com/oauth/revoke \
--configured-by <your user id>
Set --revoke-url: with it, removing an account in Botseon also revokes the grant at beehiiv. The
token exchange, refresh and revoke all send the client id and secret in a form body, which is
what beehiiv documents; no provider profile is needed. botseon oauth-app show --org <id> --slug beehiiv-api prints the redirect URL and the client id, never the secret.
4. Check it
Install beehiiv (the connector) from the catalogue as a member, press Authenticate, sign
in at beehiiv and allow access. The account should show Connected, and asking a bot "which
beehiiv workspace are you connected to?" should answer with the workspace's name
(beehiiv-api.identify_workspace).
Nightly, packages/connectors/src/beehiiv-api.live.test.ts checks the connector against the test
workspace; its account and secrets are in
docs/operations/connector-live-setup/beehiiv-api.md.
Never put the client secret, an access token or a beehiiv API key in a bot's description, a memory, or anywhere else a model reads as ordinary text.
Last verified against build b98ac7c.