Skip to main content

Partner API & MCP: Run Every Client From One Connector

Use one partner token to reach every client account you manage, from an AI assistant or from code, instead of connecting each account separately.

If you manage client accounts as an agency partner, you don't need a separate connection per client. Your partner account has one token that reaches every account you manage, and every request says which client it's for.

For ten clients that's one connector instead of ten, and one token to rotate instead of ten.

Before you start

You need an agency partner account with an active partner plan. See The Partner Dashboard.

Each client account still needs its own Pro or Trial subscription. The partner token gets you in; it doesn't grant a plan. A request against a client whose plan has lapsed is refused for that client, while your other clients keep working.

Get your token

  1. Open the partner dashboard at app.inro.social/partners.

  2. Go to API & MCP.

  3. Copy your Partner API token.

⚠️ Anyone holding this token can read and change every account in your workspace. Treat it like a password: don't paste it into a shared document, a chat, or anywhere a client could see it. If it is ever exposed, Regenerate on the same page kills it immediately. Every connector and script using the old token stops working the moment you do, so plan a minute of downtime.

Connect an AI assistant

Add a custom connector pointing at:

https://api.inro.social/partner/mcp

Set Authentication to "None", then add a request header and mark it required:

Header

Value

Authorization

Bearer YOUR_PARTNER_TOKEN

Authentication is set to None because the built-in option authorizes a single Instagram account, which is the opposite of what you want here. The header is what carries your partner credentials.

Once it's connected, name the client in the request itself: "list the folders on @clientaccount", "how many contacts did @otherclient activate this month?". You can use the Instagram username or the account id.

Connect from code

Use the same token against the normal API and add a header naming the account:

Header

Value

Authorization

Bearer YOUR_PARTNER_TOKEN

X-Inro-Organization

The client's account id or Instagram username

Everything else works exactly as it does for a single account. See The Inrō Private API: Getting Started for the endpoints themselves.

There is no default account

A request that names no account is refused, not guessed. This is deliberate: guessing would eventually post a message to the wrong client, and that isn't a mistake you can take back on someone else's Instagram account.

So every call names its account. If you're scripting across clients, loop over them explicitly rather than relying on anything being remembered between calls.

🐾 Netsuke's Tips

  • Ask your assistant read-only questions first, across two or three clients, before you let it change anything. "Compare activated contacts across all my accounts this month" is a good first request and is impossible to get wrong.

  • Regenerate the token when someone leaves your team. It's the only credential that reaches every client, and removing them from the workspace doesn't invalidate a token they already copied.

  • If one client's calls start failing while the rest work, check that client's plan before you touch the connector.

What's next?

Did this answer your question?