Get started

Authentication & limits

Every request is made with an API key that belongs to a member of your organisation, and can do no more than that member can.

API keys

Create keys in the studio under Settings › Publishing API keys. A key starts with ps_, has a set of scopes and an expiry date, and is sent as a bearer token:

Request
curl "https://dashboard.lifebliss.app/api/v1/identity" \
  -H "Authorization: Bearer ps_…"

Access follows the member who issued the key, as it is now: if their role or ecosystems change, so does what the key can reach. Social-network access tokens never leave Publishing Studio — your key is the only credential you hold.

Scopes

Give each integration only the scopes it uses. A request outside a key's scopes gets 403.

ScopeAllowsEndpoints
accounts:readRead your identity, accounts, account groups and Pinterest boards.GET/identityGET/accountsGET/account-groupsGET/org/accounts/{id}/boards
posts:readList posts and read a post's per-network results.GET/postsGET/posts/{id}
posts:writeCreate, schedule, cancel and retry posts.POST/postsDEL/posts/{id}POST/posts/{id}/retry
media:writeRequest signed media upload URLs.POST/media/presign
webhooks:manageCreate and manage webhook endpoints and deliveries. Org admins only.GET/webhook-endpointsPOST/webhook-endpointsGET/webhook-endpoints/{id}PATCH/webhook-endpoints/{id}DEL/webhook-endpoints/{id}POST/webhook-endpoints/{id}/testGET/webhook-endpoints/{id}/deliveriesPOST/webhook-endpoints/{id}/deliveries/{deliveryId}/retry
accounts:connectRun headless connect flows for your users.POST/connect/{platform}/headlessGET/connect/selectPOST/connect/select
analytics:readRead social media analytics for the accounts you can reach: followers, growth, post metrics and engagement.GET/analytics/report
site:readRead website visit and sign-up analytics. Platform staff only.GET/site/visitsGET/site/signins
live:readRead YouTube Live channels with their stream keys, available streams and broadcasts. Org admins only; not on a key limited to account groups.GET/live/channelsGET/live/streamsGET/liveGET/live/{id}
live:write. live:* only on an org admin's key not limited to account groups

The validation endpoints (GET and POST /validate) need no key.

Limiting a key to account groups

A key can be limited to one or more account groups. It then sees and publishes to only the accounts in those groups. Webhook management is not available to group-limited keys, and a headless connection made with one must name one of its groups as groupId.

Rate limits

Each key has two budgets per minute: reads (GET) and writes (everything else). By default that is 1,800 reads and 600 writes a minute; reads have their own budget so polling for status never stops you creating posts. Every response made with a key reports the budget it spent in X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (Unix seconds) and X-RateLimit-Bucket (read or write). When you go over, you get 429 with a Retry-After header saying how many seconds to wait. An integration that needs more can ask us to raise its key's limits. To avoid polling at all, use webhooks, or check many posts in one call with GET /posts?ids=….

Response headers
HTTP/1.1 200 OK
X-Request-Id: req_…
X-RateLimit-Limit: 1800
X-RateLimit-Remaining: 1797
X-RateLimit-Reset: 1793563860
X-RateLimit-Bucket: read

Request ids

Every response carries an X-Request-Id header. Log it, and quote it when you ask for help — it finds the exact request in your organisation's API log in the studio. Errors include the same id in their body.