---
title: "Set active profile"
method: PATCH
path: "/api/placements/{id}/set_active_profile"
tags: ["Placements"]
---

# Set active profile

`PATCH /api/placements/{id}/set_active_profile`

## Request

- Base URL: `https://api.postproxy.dev`
- URL: `https://api.postproxy.dev/api/placements/{id}/set_active_profile`
- Auth: HTTP bearer

Switches which connected profile serves the placement — posting and webhook traffic route through it from then on. The profile must be listed in the placement's linked_profiles and be connected. Switching an orphaned placement to a connected profile also fires the placement.restored webhook. Requires an account-wide API key; a group-scoped key returns 422.

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `profile_id` string, required: Profile to make active. Must be listed in the placement's linked_profiles and be connected.

## Response `200`

The updated placement

- Placement: Account-wide placement record (Facebook Page, LinkedIn organization, Pinterest board, Telegram channel, Google Business location). One record exists per account, platform, and platform ID, even when several connected profiles can see it; exactly one linked profile is the active profile that posting and webhooks route through.
  - `id` string: Placement ID. Postproxy's own ID, used in placement URLs — not the platform ID.
  - `platform` 'facebook' | 'linkedin' | 'pinterest' | 'telegram' | 'google_business': Platform the placement belongs to.
  - `external_id` string: Platform-specific ID — the value used as page_id / chat_id when creating posts, and returned as id by the per-profile List placements endpoint.
  - `name` string: Placement name.
  - `avatar_url` string, nullable: Stable Postproxy storage URL of the placement's picture, resized to 256x256 (Facebook Pages). null until it has been mirrored and for networks without one.
  - `status` 'active' | 'orphaned' | 'removed': active (the active profile is connected), orphaned (the active profile is disconnected — posting is paused until you switch to a connected profile), or removed (access was revoked on the platform).
  - `active_profile` PlacementProfileRef: Compact profile reference on a placement.
    - `id` string: Profile ID.
    - `name` string: Profile display name.
    - `connected` boolean: Whether the profile is currently connected.
  - `linked_profiles` PlacementProfileRef[]: Every profile that can see this placement — the candidates for Set active profile.
    - `id` string: Profile ID.
    - `name` string: Profile display name.
    - `connected` boolean: Whether the profile is currently connected.

## Other responses

- `400`: Missing required parameters.
- `401`: Invalid, missing, or insufficient API key permissions.
- `404`: Resource does not exist or is not accessible.
- `422`: Profile cannot serve the placement (not linked, not connected, or in a different live/sandbox environment), or the API key is scoped to a profile group.

---

[API](https://skmtc.dev/postproxy/apis/postproxy-social-media-api.md) - [All operations](https://skmtc.dev/postproxy/apis/postproxy-social-media-api/llms.txt) - [OpenAPI document](https://skmtc.dev/postproxy/apis/postproxy-social-media-api/revisions/d54482ac4ce7?raw)
