Accounts
An account is one connected Facebook Page or one Instagram professional account. Accounts are created by the connect flow, never by the API directly.
Endpoints
Section titled “Endpoints”| Method | Path | Returns |
|---|---|---|
| GET | /v1/workspaces/:id/accounts |
List of accounts in the workspace |
| GET | /v1/accounts/:id |
One account |
| DELETE | /v1/accounts/:id |
204. Disconnects and fires account.disconnected |
| GET | /v1/accounts/:id/stats |
{ followers, follows, media_count, fetched_at } |
| POST | /v1/accounts/:id/refresh |
Re-validates the token, returns the account |
curl https://social.missless.tel/v1/accounts/acig4h2k5m7p9r1 \ -H "Authorization: Bearer $MISSLESS_API_KEY"The account object
Section titled “The account object”{ "id": "acig4h2k5m7p9r1", "workspace": "ws7k2m9p4q1r8t3", "network": "instagram", "platform_id": "17841400000000001", "username": "salonnova", "display_name": "Salon Nova", "avatar_url": "https://scontent.example/avatar.jpg", "page_id": "100000000000001", "status": "active", "last_error": null, "scopes": ["instagram_basic", "instagram_content_publish", "instagram_manage_comments", "instagram_manage_messages", "instagram_manage_insights"], "token_expires_at": null, "connected_at": "2026-08-25T09:15:41Z"}| Field | Notes |
|---|---|
network |
facebook or instagram |
platform_id |
Meta’s id for the Page or the Instagram account |
username |
The Instagram handle, or the Page’s username when it has one |
display_name |
Page name or Instagram display name |
avatar_url |
Profile picture, hosted by Meta |
page_id |
The Facebook Page this account belongs to. An Instagram account is always reached through its linked Page, so both networks carry it |
status |
active, expired, revoked or error |
last_error |
Meta’s last error message when status is error, otherwise null |
scopes |
Permissions granted at connect time |
token_expires_at |
null for Page-derived tokens, which do not expire. A timestamp when Meta issued a limited token |
connected_at |
When the user connected it |
Statuses
Section titled “Statuses”| Status | Meaning | What to do |
|---|---|---|
active |
Token valid, account usable | Nothing |
expired |
The token passed its expiry. Fires account.expired |
Send the user through a connect link again |
revoked |
The user removed the app or the Page in their Meta settings, or a role change invalidated the token. Fires account.disconnected |
Same, reconnect |
error |
Meta returned a non-auth error on the last call. last_error says what |
Read last_error, try refresh, reconnect if it persists |
Publishing to a target whose account is not active fails with account_disconnected (409) before anything reaches Meta.
Refresh
Section titled “Refresh”POST /v1/accounts/:id/refresh asks Meta whether the token still works and updates status, last_error and token_expires_at. Use it after a network_error when you suspect the token, or on a schedule if you want fresh statuses without webhooks. It cannot revive a token that Meta has invalidated; only reconnecting can.
curl -X POST https://social.missless.tel/v1/accounts/acig4h2k5m7p9r1/refresh \ -H "Authorization: Bearer $MISSLESS_API_KEY"Disconnect
Section titled “Disconnect”DELETE /v1/accounts/:id removes the token from MissLess and fires account.disconnected. Posts already published stay on the network. Scheduled posts that target this account will fail for that target when they come due, so edit or cancel them first. The user can also disconnect from the hosted connect page and from the widget’s accounts surface.
GET /v1/accounts/:id/stats returns counts read from Meta:
{ "followers": 12480, "follows": 311, "media_count": 842, "fetched_at": "2026-08-25T09:30:00Z" }media_count is the number of published items on the profile. Counts are fetched on request. Cache them on your side if you show them on every page view; they count against your rate limit like any other call.