Providers
The providers Koil serves, and how provider content is named across the API.
Every provider below is generated from the same catalog GET /v1/providers serves, so a provider appears here exactly when the API serves it. Each provider's page lists its content types, what you can do with each, the events they emit, and the args each publish takes.
| Provider | Auth providers | Surfaces and resources |
|---|---|---|
Facebook (facebook) | facebook | dm (messages, threads); media (comments, items, mentions); stories (items) |
Google Business Profile (google_business_profile) | google-business-profile | locations (review_replies, reviews) |
Instagram (instagram) | facebook, instagram | dm (messages, threads); media (comments, items, mentions); stories (items) |
LinkedIn (linkedin) | linkedin | feed (comments, items, mentions, reactions) |
TikTok (tiktok) | tiktok-accounts | dm (messages, threads); posts (comments, items, mentions) |
WhatsApp (whatsapp) | facebook | dm (messages, statuses) |
YouTube (youtube) | youtube | videos (comments, items) |
What a given Connected Profile can do also depends on the scopes its grant carries and the provider account type; GET /v1/connected-profiles/{connectedProfileId}/capabilities answers for one profile.
Naming
Koil names provider content the same way on every provider:
- Provider — the upstream platform:
instagram,facebook,youtube. - Surface — a product area a user of that platform would recognize:
media,dm,videos,posts. - Resource — a collection inside a surface:
items,comments,messages,mentions. - Content type —
{provider}.{surface}.{resource}, such asinstagram.media.items. It is the path segment of content reads (/v1/content/{contentType}), thecontentTypeof a publish request, and the middle of every content event topic (content.{contentType}.{action}). - Variant — a subtype inside a content type, such as
feedorreel, chosen when you publish.
Surfaces follow the provider rather than forcing one vocabulary: TikTok's are posts and dm because that is what TikTok calls them, and YouTube's is videos. A comment or mention always names the content it hangs off as mediaExternalId, on every provider, so an inbox spanning providers reads one field.