Skip to content
DocsReference

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:readlist and read profiles and links.
  • profiles:writecreate, 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

FieldTypeDescription
namestring (required)Display name, 1–50 chars.
avatarstringAvatar URL (http/https only), max 500 chars.
brandColorstring6-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

JSON
{
  "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"
Was this page helpful?

Something unclear? Email us — we read every message.