Skip to main content
Use a connection session to authorize a provider account. OpenPMM stores the provider credential. Your application receives a destination ID.
1

Choose a provider

Use bluesky, x, youtube, facebook, instagram, threads, mastodon, linkedin, or tiktok. This enum is part of the connection-session request. OpenPMM does not provide a separate provider-catalog endpoint.During the beta, some providers are not connectable yet in every deployment. A connection session for a provider that is not available fails with a destination_unavailable error rather than returning a pending session.For Mastodon, also send the instance origin. For Bluesky, also send the account handle or DID.
2

Connect Bluesky

Bluesky OAuth requires the hosted OpenPMM service with its HTTPS public URL. A local HTTP development origin cannot act as this confidential OAuth client. Set account_identifier to the handle or DID that must authorize OpenPMM. The DID becomes the stable destination identity. A handle change does not create a new destination.
3

Create a connection session

Send the provider to the connection-session endpoint.
4

Open the authorization URL

Open the returned authorization_url in a browser. A person must complete this step. Do not open the URL in an unattended worker.
5

Check the connection status

Save the returned session id. Get the session until its status is completed, failed, or expired.
6

Get the destination ID

After the session is complete, list the connected publishing targets. Store the new destination ID.
The response is {"data":[]} when the Workspace has no connected publishing targets. This endpoint does not use pagination.
OpenPMM does not return provider credentials to your application. It stores OAuth tokens and Bluesky DPoP session keys in encrypted form.