Get a link to connect an account
A link to send a person to within 30 minutes: it goes straight to the network, and connects accounts once (a preview or a second browser that opens it uses nothing up). They log in on the network, with no Rizamo account, and come back to redirectUrl, or, without one, land on a Rizamo page that says what was connected (for a chat agent, a script or n8n). instagram is Instagram Login, for an Instagram professional account on its own; facebook is Facebook Login, its Pages and the Instagram accounts linked to them, which can also add music to reels and get each story's final numbers when it ends (deleting Instagram posts will need it too, once Meta reviews Rizamo's access).
A login that reaches one new account the key may add connects it at once; one that reaches several (Pages, YouTube channels), or an account already in the team, shows the person a page to pick them, with only new accounts ticked. An account already in the team in a profile the key does not reach is never added. With connectionId, only that login's accounts are renewed.
Back at redirectUrl, Rizamo adds status (connected or error), network, profileId, and either accountIds with each one's billing in the same order, comma-separated, or error (cancelled, refused, no_accounts, expired, used, unavailable, forbidden, gone, failed) and message. Nothing in it works without your key: read the accounts with GET /accounts/{id}. A return can arrive more than once (a reload): take GET /accounts (list_accounts) as the truth. A link opened once it is used or expired, or after your key lost access, stays on a Rizamo page that says why: only a person back from the network comes to redirectUrl.
Accounts are billed as in the web app: the first 2 free. On the free plan the rest arrive awaiting_payment until an owner starts a plan. On a paid plan they are charged at once to the card on file: your call is the consent. A charge that needs the card holder, or more accounts than the owner lets the API add this period, leaves them awaiting_payment until an owner pays in the web app. The person connecting never sees prices.
With connectionId, the person logs in again for that login's accounts (an expired login): only accounts already in the team are updated, and network must be the login's.
apiKeyAuthorizationBearer <token>An API key from the web app, under Developers. It starts with rz_live_.
network*stringWhere the person logs in: instagram (Instagram Login, a professional account on its own), facebook (Facebook Login: Pages and the Instagram accounts linked to them), tiktok, threads or youtube.
"facebook""instagram""tiktok""threads""youtube"profileId?stringThe profile (prof_) new accounts go to. Required unless connectionId is given.
length <= 100redirectUrl?stringWhere the person comes back to: an absolute https address, or http://localhost or http://127.0.0.1 (any port) while you develop. Fixed in the link: nothing the person does can change it. Leave it out when you have no address (a chat agent, a script): the person lands on a Rizamo page that names what was connected, or says why not.
length <= 2000connectionId?stringLog in again for this login (Account.connectionId), to renew it.
length <= 100OK
application/json- response
url*stringSend the person here within 30 minutes. It is Rizamo's address, which sends them straight on to the network; it connects accounts once.
expiresAt*stringUntil when the link opens. After it, ask for another.
date-timecurl -X GET 'https://api.rizamo.com/v1/connect/instagram?profileId=prof_01m40k9k80fxd8cvng8derm7g9&redirectUrl=https%3A%2F%2Fexample.com%2Frizamo%2Fconnected'{ "url": "https://app.rizamo.com/api/connect/link/team_01m3z8q2e0f5w1bq6h0yvj0x2a/Zp4Kq8WmT2xLr7Nb", "expiresAt": "2026-11-04T11:12:31.000Z"}Preview removing an account GET
What removing the account would do to the posts that use it, counted now, with nothing changed: show it to the person before they confirm. `Remove an account` answers the same counts once it is done.
List custom field definitions GET
The team's custom fields, with their keys, types and choices: set them on posts with `fields`, and filter posts and analytics by them.