---
title: "Update workspace profile"
method: PATCH
path: "/api/workspace-profile"
tags: ["workspace_profiles"]
---

# Update workspace profile

`PATCH /api/workspace-profile`

## Request

- Base URL: `https://beta.getsales.io/id/v1`
- URL: `https://beta.getsales.io/id/v1/api/workspace-profile`
- Auth: HTTP bearer and API key in header `Team-SID`

Write the workspace profile: a section given (company, who_buys, offer) replaces that section whole, so read it first and send it back with the fields changed; source stamps every field of the sections given (website, linkedin_company, linkedin_profile, person for the person's own words, creator for an inference; default person); confirm true marks the profile confirmed. The first write creates the row. 422 unknown_field on a key outside a section's shape, website_invalid, ln_nickname_invalid.

Contract:
- MCP tool `update_workspace_profile`, registry package `mcp.id/workspace_profiles`, mount `id.identity`.
- Operation `update`, response envelope `update`.
- Flags: none.

## Request body

- UpdateWorkspaceProfileRequest: Request body of `update_workspace_profile`.
  - `company` object: The company section, replaced whole: a key left out becomes null (or an empty list), so read the profile first and send the section back with the fields changed.
    - `name` string, nullable
    - `tagline` string, nullable: What the company does, in one line.
    - `industry` string, nullable
    - `people_count` integer, nullable
    - `founded_year` integer, nullable
    - `location` string, nullable
    - `website` string, nullable: A domain; a URL is reduced to its host.
    - `ln_id` string, nullable: The numeric company id, as digits.
    - `ln_nickname` string, nullable: The company page slug or its linkedin.com/company/ link, parsed to the slug.
  - `who_buys` object: The who-buys section, replaced whole (the same rule).
    - `roles` string[], nullable
    - `industries` string[], nullable
    - `company_size` string, nullable
    - `regions` string[], nullable
    - `example_clients` string[], nullable
  - `offer` object: The offer section, replaced whole (the same rule).
    - `what_we_sell` string, nullable
    - `proof` string, nullable
    - `price` string, nullable
  - `source` 'linkedin_company' | 'linkedin_profile' | 'website' | 'person' | 'creator', nullable: Stamps every field of the sections given: website, linkedin_company, linkedin_profile for what a read said, person for the person's own words, creator for an inference; default person. A value the person wrote stands against any other source (kept_fields).
  - `confirm` boolean, nullable: True marks the profile confirmed (the person said the cards are right); sent alone, it confirms without a write.

## Response `200`

`update` success envelope.

- UpdateWorkspaceProfileResponse
  - `success` true, required
  - `operation` 'update', required
  - `item` object, required
    - `sid` string, required: Workspace profile sid (id_wp_...).
    - `team_sid` string, required: The workspace (ts_tm_...).
    - `company` object, required
      - `name` string, nullable, required
      - `tagline` string, nullable, required: What the company does, in one line.
      - `industry` string, nullable, required
      - `people_count` integer, nullable, required: The LinkedIn page's headcount.
      - `founded_year` integer, nullable, required
      - `location` string, nullable, required: Where it is based.
      - `website` string, nullable, required: A bare domain (acme.com), never a URL.
      - `ln_id` string, nullable, required: The numeric LinkedIn company id, as digits.
      - `ln_nickname` string, nullable, required: The LinkedIn company page slug, never a URL.
    - `who_buys` object, required
      - `roles` string[], required: The titles that buy.
      - `industries` string[], required
      - `company_size` string, nullable, required: In words ("10 to 200 staff").
      - `regions` string[], required
      - `example_clients` string[], required: Names from the site's cases and logos.
    - `offer` object, required
      - `what_we_sell` string, nullable, required: One or two lines.
      - `proof` string, nullable, required: A case, a number; null when nothing said it.
      - `price` string, nullable, required: Price and terms; null when nothing said it.
    - `sources` object, required: One stamp per written field, keyed "section.field" ("company.name", "who_buys.roles", "offer.price").
    - `confirmed_at` string, nullable, required: ISO 8601 UTC; when the person said the cards are right (update with confirm true); null until then.
    - `version` integer, required: Moves on every write.
    - `created_at` string, nullable, required: ISO 8601 UTC.
    - `updated_at` string, nullable, required: ISO 8601 UTC.
  - `updated_fields` string[], required
  - `previous_values` object, required
  - `kept_fields` string[]: The fields this write did not change because the person's own value stands on them (stamped person); read the item for what landed.
  - `meta` object, required
    - `trace_id` string, required: UUID v7; same 128-bit value as the X-Trace-Id header.
    - `span_id` string, required: 16 hex chars, root span of this request.
    - `timestamp` string, required: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
    - `duration_ms` integer, required: Server-side wall clock.
    - `team_sid` string, nullable: The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.
    - `actor_type` string, nullable: user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.

## Other responses

- `4XX`: MCP error envelope. `error.code` is one of validation_failed, nothing_to_update, not_found, relation_not_found, invalid_transition, limit_exceeded, payment_required, duplicate_rejected, conflict, delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
- `5XX`: MCP error envelope with `error.code` internal_error or service_unavailable.

---

[API](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-id.md) - [All operations](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-id/llms.txt) - [OpenAPI document](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-id/revisions/95e48541fe85?raw)
