Adeli API

One REST API for your customers' social accounts. Connect an Instagram professional account, a Facebook Page, a TikTok account, or a YouTube channel once, then publish posts, manage comments, read message history, and pull analytics through a single normalized interface — without writing against Meta's Graph API, TikTok API for Business, and the YouTube Data API separately.

curl https://app.tryadeli.com/api/v1/profiles \
-H "Authorization: Bearer $ADELI_API_KEY"

New here? The quickstart takes you from a fresh API key to a published post in six steps. Using an AI agent? Connect it through the MCP server with the same key, and it can call the whole API as tools.

How it fits together

A profile is one of your customers. You create a profile in the Adeli dashboard, issue an API key while that profile is selected, and the key is then permanently bound to it. Every request you make with that key sees only that profile's data, so a bug in your code cannot leak one customer's accounts into another's.

Inside a profile you connect accounts — one Instagram account, one TikTok account, one YouTube channel. You do that by sending your customer through the connect flow, which hands you an authorization URL to open in their browser and a session to poll. Adeli stores and refreshes the provider tokens; you never handle them.

From there, every endpoint takes an accountId and returns a normalized shape. The same POST /api/v1/posts call publishes to Instagram, TikTok, or YouTube depending on the platform you pass.

What each provider supports

InstagramTikTokYouTube
Connect via hosted OAuthYesYesYes, one channel per profile
List postsYesYes, with views, shares, and reachYes, with views
Publish a single imageYesYesNo
Publish a carouselYes, 2–10 imagesYes, 1–35 photosNo
Publish a videoNoYes, public or as a draftYes, public, unlisted, private, or scheduled; vertical videos up to 3 minutes become Shorts
Read, reply to, hide, and delete commentsYesYes, plus likes; deletes the account's own comments onlyYes; hiding holds a comment for review, and others' comments are rejected rather than deleted
Read message historyYesNoNo — YouTube has no messaging API
Send a messageYes, textNoNo
Account analyticsViews, reach, interactionsDaily views, followers, and engagement; follower demographicsDaily views, watch time, and subscribers; viewer demographics
Post analyticsNoWatch time, retention, impression sourcesViews, watch time, average view percentage

Not available in v1

WhatsApp sends approved templates only, and numbers are connected in the dashboard. There is no post editing or deletion, and no outbound webhooks. YouTube uploads stay private until Adeli passes YouTube's API audit. Instagram post listing follows provider pagination on your behalf but exposes no cursors of its own — see Core concepts for the limits that apply to every read.

Base URL

All endpoints live under /api/v1, and every response is JSON.

bash
https://app.tryadeli.com/api/v1

Running Adeli locally? Use http://localhost:3000/api/v1 instead. The examples throughout these docs assume two environment variables:

bash
export ADELI_URL=https://app.tryadeli.com
export ADELI_API_KEY='rk_live_...'

Next steps

  • Quickstart — connect an account and publish a post.
  • Authentication — how API keys work and how to keep them safe.
  • Core concepts — profiles, partial responses, and limits.
  • MCP server — give an AI agent the whole API as tools, with the same key.
  • API reference — every endpoint, parameter, and response.