/5 min read

Connecting Instagram, Facebook and TikTok: what Meta requires

Publishing via API is not flipping a switch. There are account types, permissions, app review and a queue that does not depend on you. The honest map of what it takes.

Every scheduling tool shows the same screen: three logos and a “connect” button. What it does not show is how many things have to be in place before that button works — and how many of them depend on neither you nor the tool.

This is the map. If you have ever tried to connect an account and got stuck, it was probably at one of the points below.

First: personal accounts cannot publish via API

The requirement that stops most people right at the start.

On Instagram, publishing via API requires a Professional account — Business or Creator. A personal account does not have the endpoints, and there is no workaround. The switch is free and takes a minute in the app settings, but it has to happen before anything else.

On top of that, the Instagram account needs to be linked to a Facebook Page. Not to a personal Facebook profile: to a Page. That link is what allows permissions to be granted, because on the platform side the entity that “owns” the access is the Page.

On TikTok, the equivalent is having the account enabled for API publishing through an app approved in the developer portal.

Second: the app belongs to the tool, and it needs permissions

When you click “connect”, the thing asking for access is not the website — it is an app registered on the platform, with an id and a secret. That app declares which permissions it requests.

To publish and read metrics, the set usually includes Instagram content permissions, page management and insights reading. Each of those permissions, at Meta, is an item that has to be approved before it works for accounts other than the developer own test accounts.

Which is where the part nobody likes writing on a product website shows up.

Third: App Review

Meta calls it App Review. It is a process in which the platform verifies that the app does what it says and that the permissions requested are necessary. What it usually requires:

  • A screen recording showing the complete flow, from login to publishing, with the permission genuinely in use.
  • A published, accessible privacy policy that is specific about how platform data is used.
  • A justification per permission: why the app needs exactly that.
  • A test path the reviewer can walk through without being a customer.
  • Business verification, depending on the permissions requested.

Timelines vary. It can come back in days, it can take weeks, and it can come back asking for changes — which restarts the wait. There is no way to speed it up and no way around it: it is the platform queue.

Worth saying plainly: this is the longest external lead time in EverFeed, and it does not depend on us. That is why we do not write “connect in one click” on the home page. While review is pending, there is another path.

The pasted-token path

While the app is not approved — or when you simply prefer not to go through a third-party app — you can connect by pasting a token you generate yourself on the platform side.

It works because the authorisation already exists: you created your own app, or used the platform developer tools, and obtained a token with the necessary permissions for your own accounts. The tool just uses the token; it does not need to be the one requesting the permission.

Advantages: it works today, and the control is yours. Disadvantages worth listing honestly:

  • Tokens expire. Meta long-lived tokens last around 60 days and need renewing. One day publishing will fail because of that, and the error message needs to say so clearly.
  • It takes a technical step. Not hard, but not one click.
  • It is per account. If you run five brands, that is five tokens.

In EverFeed, both paths are on the same channels screen, and a stored credential never comes back from the API as a value: the panel receives only the field names stored. The app secret, when it exists, stays encrypted in the database — not in a config file on the server — and comes back only as “it exists”.

What happens once connected

Publishing via API is not instantaneous, and understanding that avoids surprises.

The real flow is asynchronous: the tool uploads the media, the platform processes it, and only then is the post published. Video takes longer than images. That is why, in EverFeed, publishing queues a job and returns an identifier immediately instead of freezing the screen. When the network confirms, it returns the post external id and permalink — which are stored alongside the piece.

If publishing fails, the reason is almost always one of four: an expired token, a permission that was not granted, media outside the network specifications (aspect ratio, duration, size) or an hourly publishing limit. Those are errors with their own messages, and the tool should show the platform message — not a generic “publishing error”.

Metrics have their own rules

Once published, collecting metrics is another call, with other permissions, and with a detail that causes a lot of confusion: not every metric exists for every post type, and some only appear after a delay or a minimum volume.

Collection that comes back zeroed almost always means “the platform did not return that number”, not “nobody saw it”. It is worth understanding what each number actually means before drawing a conclusion from a dashboard.

The checklist, in order

  1. Instagram account in Professional mode.
  2. Account linked to a Facebook Page.
  3. You are an administrator of that Page.
  4. Decide the path: OAuth via an approved app, or a pasted token.
  5. If it is a token: generate a long-lived one and note the renewal date.
  6. Test with a real post before scheduling a whole month.

Step 6 looks obvious and is the most skipped. A test post costs nothing and finds, in two minutes, the problem it would otherwise find on its own at seven in the morning on a Monday.

Why only three networks

EverFeed publishes to Instagram, Facebook and TikTok. Not LinkedIn, X or YouTube.

We could write “and other networks” and let expectation do the work. We prefer to write the three by name, because each additional network is exactly the process described above all over again — app, permissions, review, its own media specifications — and promising that before having done it is how the whole category ends up owing people.

When another one arrives, it appears on this list, and not before.

Write your brand once.

EverFeed connects via OAuth when the app is already approved, and accepts a pasted provider token while review is pending. Both paths are on the channels screen.

See the channels screen