Skip to main content
From zero to the first queued DM in a few steps. Choose official (Meta) or unofficial. The same send routes serve both.

In short

  • Official: Meta login in the panel or shareable link; recipient = IGSID; 24h window
  • Unofficial: username and password (or link); acceptInstagramTerms: true; warm-up on new accounts
  • In both cases you use the same API; only how you connect the account changes
Not sure which to pick? See Connection modes.

Before you start

  • An API key (sk_live_... or sk_test_... for sandbox)
  • Instance and send permissions on the key. See Scopes
  • In the examples, replace sk_live_xxxxx with your key
Just getting started? Use sk_test_... and check the result in the Sandbox inbox.

1. Connect the account

Three paths, pick what fits your integration:

1A, Via dashboard

  1. Instagram → New connection → Official
  2. Sign in with Meta (or paste manual credentials on the draft)
  3. When status is active, note the instance id
Expected response: 200 with PENDING instance and the link:
Send shareableLink.hostedUrl to the client. On the page they see Continue with Meta. When done, the instance becomes ACTIVE.
Anyone with the link can connect or disconnect the instance. After use, rotate the secret if available in the connect-page API.

1C, API with Meta credentials

Embedded (after Facebook Login in the browser):
BYOK (token and IDs you already have):

2. How to get the recipient’s IGSID

In official mode, the to field uses IGSID (Page-scoped ID), not @username.
  • Webhook instagram.received: from field on the inbound message
  • API GET /v1/instagram/messages/inbound/{id} after the customer sends a DM
  • Dashboard: received message detail

3. Send the first DM

Expected response: 202 with the message queued:
On official, the conversation must be within the 24h window after the customer’s last message.

4. After the first send

Configure the Meta webhook at {your_base}/webhooks/meta/instagram, listen for instagram.received and send status. For comment hide, use the comments routes in the API reference.

All send types

In the API reference, open Send Instagram message (POST /v1/instagram/messages) and pick the example in the playground: Text, Image, Video, Audio, Document, Scheduled, official IGSID, or unofficial username.

Next steps