---
title: "Get user profile"
method: GET
path: "/api/user-profile"
tags: ["user_profiles"]
---

# Get user profile

`GET /api/user-profile`

## Request

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

The signed-in person's card: name, headline, role and company, location, experience, topics, languages, the LinkedIn axes, each stamped in sources. 404 user_profile_not_found until the first write.

Contract:
- MCP tool `get_user_profile`, registry package `mcp.id/user_profiles`, mount `id.identity`.
- Operation `get`, response envelope `get`.
- Flags: read only.

## Response `200`

`get` success envelope.

- GetUserProfileResponse
  - `success` true, required
  - `operation` 'get', required
  - `item` object, required
    - `sid` string, required: User profile sid (id_up_...).
    - `user_sid` string, required: Whose card it is (ts_us_...).
    - `full_name` string, nullable, required
    - `headline` string, nullable, required: The LinkedIn headline.
    - `role_title` string, nullable, required: The current role.
    - `company_name` string, nullable, required: The current company.
    - `location` string, nullable, required
    - `experience_line` string, nullable, required: The experience in one line ("11 years in B2B sales").
    - `topics` string[], required: Two or three topics the person writes about.
    - `languages` string[], required
    - `ln_member_id` integer, nullable, required
    - `ln_id` string, nullable, required: The profile URN.
    - `ln_nickname` string, nullable, required: The public identifier (slug), never a URL.
    - `sources` object, required: One stamp per written field, keyed by the field's name.
    - `read_at` string, nullable, required: ISO 8601 UTC; when the LinkedIn profile was last read.
    - `created_at` string, nullable, required: ISO 8601 UTC.
    - `updated_at` string, nullable, required: ISO 8601 UTC.
  - `included` object, required
  - `includes` string[], required
  - `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)
