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.

Your first three connected accounts are free. See Pricing.

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. Your profiles live in your organization, the workspace your team shares, and you issue an API key for the organization in the Adeli dashboard. One key reaches every profile, so every request names the one it acts on, with a profileId or with an accountId that belongs to it. Nothing defaults to a profile, so a request cannot quietly act on the wrong customer. Create profiles in the dashboard or with POST /api/v1/profiles.

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, Facebook, TikTok, YouTube, X, or Bluesky 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

The whole API is also described as an OpenAPI 3.1 document at /docs/openapi.json. Import it into Postman or Insomnia, generate a client from it, or hand it to an AI coding tool.

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.
  • OpenAPI spec — the same reference as a machine-readable OpenAPI 3.1 document.