Profiles
A profile represents a brand or client. Every connected social account and every post belongs to exactly one profile. Parent→child links let a parent's posts fan out to its children.
Authentication & scopes
Every endpoint needs an API key (Bearer lp_live_…) or a logged-in session. Two scopes apply:
profiles:read— list and read profiles and links.profiles:write— create, update, delete, and link profiles.
List profiles
GET /v1/profiles
Returns every profile the caller owns plus profiles an org owner granted them, each tagged with the caller's role.
curl https://api.letspost.it/v1/profiles \
-H "Authorization: Bearer $LETSPOST_KEY"Create a profile
POST /v1/profiles
| Field | Type | Description |
|---|---|---|
name | string (required) | Display name, 1–50 chars. |
avatar | string | Avatar URL (http/https only), max 500 chars. |
brandColor | string | 6-digit hex brand colour, e.g. #c96442. |
curl https://api.letspost.it/v1/profiles \
-H "Authorization: Bearer $LETSPOST_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Acme Inc.","avatar":"https://…/logo.png","brandColor":"#c96442"}'Response shape
{
"id": "prof_abc",
"name": "Acme Inc.",
"avatar": "https://…/logo.png",
"brandColor": "#c96442",
"createdAt": "2026-04-16T20:30:01.000Z",
"updatedAt": "2026-04-16T20:30:01.000Z"
}Get one profile
GET /v1/profiles/{id}
curl https://api.letspost.it/v1/profiles/prof_abc \
-H "Authorization: Bearer $LETSPOST_KEY"Update a profile
PATCH /v1/profiles/{id}
Partial update — send only the fields you want to change.
curl -X PATCH https://api.letspost.it/v1/profiles/prof_abc \
-H "Authorization: Bearer $LETSPOST_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Acme (renamed)"}'Delete a profile
DELETE /v1/profiles/{id}
curl -X DELETE https://api.letspost.it/v1/profiles/prof_abc \
-H "Authorization: Bearer $LETSPOST_KEY"Deletes the profile, all its posts, and its connected accounts.
Profile links
Link a parent profile to a child so the parent's posts fan out to the child under optional inheritance rules. Cycles are rejected.
List all links
GET /v1/profiles/links
Every parent→child link for the account.
curl https://api.letspost.it/v1/profiles/links \
-H "Authorization: Bearer $LETSPOST_KEY"Link history
GET /v1/profiles/links/history
Previously-removed links, each tagged with when it was removed.
curl https://api.letspost.it/v1/profiles/links/history \
-H "Authorization: Bearer $LETSPOST_KEY"A profile's child links
GET /v1/profiles/{id}/children
The links whose parent is the given profile id.
curl https://api.letspost.it/v1/profiles/prof_parent/children \
-H "Authorization: Bearer $LETSPOST_KEY"Create a link
POST /v1/profiles/links
Body: { parentId, childId, inheritanceRules? { autoRepost, languageOverride, tagPrefix } }.
curl -X POST https://api.letspost.it/v1/profiles/links \
-H "Authorization: Bearer $LETSPOST_KEY" \
-H "Content-Type: application/json" \
-d '{
"parentId": "prof_parent",
"childId": "prof_child",
"inheritanceRules": { "autoRepost": true, "languageOverride": null, "tagPrefix": null }
}'Delete a link
DELETE /v1/profiles/links/{linkId}
Soft-deletes one parent→child link by its id.
curl -X DELETE https://api.letspost.it/v1/profiles/links/lnk_123 \
-H "Authorization: Bearer $LETSPOST_KEY"Something unclear? Email us — we read every message.