501 with code: "not_supported". Your code doesn’t need to branch per platform; just handle the 501.
Feature matrix
| Platform | Auth | Posts | Comments | DMs | Reviews | Mentions | Publishing | Private reply |
|---|---|---|---|---|---|---|---|---|
| OAuth 2.0 | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | |
| OAuth 2.0 | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | |
| Threads | OAuth 2.0 | ✅ | ✅ | - | - | - | ✅ | - |
| OAuth 2.0 | ✅ | ✅ | - | ✅ | - | ✅ | - | |
| TikTok | OAuth 2.0 | ✅ | - | - | - | - | ✅ | - |
| OAuth 2.0 | ✅ | ✅ | - | - | - | ✅ | - | |
| YouTube | OAuth 2.0 | ✅ | ✅ | - | - | - | ✅ | - |
| X / Twitter | OAuth 2.0 | Soon | Soon | Soon | - | Soon | - | - |
| Trustpilot | API Key | - | - | - | Soon | - | - | - |
Account object
GET /v1/accounts returns an array of Account objects:
| Field | Type | Description |
|---|---|---|
id | string | Account ID. Pass this as :id in all account-scoped endpoints. |
platform | string | Platform identifier (e.g. instagram, facebook, tiktok, youtube, twitter). |
name | string | Display name of the connected page or profile. |
username | string | Platform handle or username. |
metadata | object | Optional. Platform-specific profile data. Omitted when empty. |
metadata object is platform-specific. Currently only TikTok populates it:
| Key | Type | Platform |
|---|---|---|
avatar_url | string | TikTok |
follower_count | integer | TikTok |
following_count | integer | TikTok |
video_count | integer | TikTok |
likes_count | integer | TikTok |
metadata. Their Account objects omit the field entirely.
What “not supported” means
When a platform doesn’t support a feature (e.g. Instagram has no reviews), calling that endpoint returns:501 gracefully.
Auth types
| Type | How it works |
|---|---|
oauth2 | POST /accounts/connect returns an auth_url to redirect your user to. After authorization, call POST /oauth/exchange with the code. |
apikey | Pass the platform API key in metadata in POST /accounts/connect. Returns account ID immediately. |
Private replies
On Instagram, posting a reply with"private": true sends a DM to the commenter instead of a public reply. This is the platform’s native “Send Private Reply” feature. The private field is silently ignored on platforms that don’t support it.