---
title: "Get current user"
method: GET
path: "/api/users/current"
tags: ["users"]
---

# Get current user

`GET /api/users/current`

## Request

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

The signed-in account itself (no sid): email, name, timezone, default_team_sid. include accessible_teams lists the workspaces it may enter. An API key is not a person and answers 403 not_a_user_actor.

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

## Query parameters

- `include[]` string[]: accessible_teams (the one include): the live workspaces behind the account's active memberships (TeamDomain rows).

## Response `200`

`get` success envelope.

- GetCurrentUserResponse
  - `success` true, required
  - `operation` 'get', required
  - `item` object, required
    - `sid` string, required: User sid (us_mb_...).
    - `default_team_sid` string, nullable, required: The workspace the account signs into by default (ts_tm_...); null until a membership exists.
    - `email` string, required: The sign-in address, lowercased.
    - `email_status` 'unverified' | 'verified', required: unverified until the address confirmed its code.
    - `auth_provider` 'password' | 'google', required: How the account was CREATED: password = the email door (a mailed code since 2026-10-23, no password is held), google = Google sign-in.
    - `first_name` string, required: Given name.
    - `last_name` string, nullable, required: Family name; null when not given.
    - `avatar_url` string, nullable, required: The avatar on the assets store (up to 2048 chars); null = initials.
    - `phone` string, nullable, required: Phone number as typed; null when not given.
    - `timezone` string, nullable, required: IANA zone of the person (Europe/Riga); the first workspace takes it as its day.
    - `country` string, nullable, required: ISO 3166-1 alpha-2.
    - `config` object, nullable, required: Preferences and onboarding state (UserConfigValue); null when never written.
      - `latest_team_sid` string, nullable: Which workspace to open on load (ts_tm_...); NOT default_team_sid.
      - `setup_completed` boolean: The post-signup wizard is finished (or its last step was skipped).
      - `setup_step` 'verify' | 'questions' | 'workspace' | 'linkedin' | 'call', nullable: Resume point inside the wizard; null = not started.
      - `setup_call_step` boolean, nullable: Read-only: whether the wizard offers the intro call step; null = not scored yet. Dropped if sent on update.
      - `onboarding_completed` boolean: The in-app Get started checklist is done.
      - `onboarding_steps` string[]: The checklist steps already completed.
      - `locale` string, nullable: The UI locale the account picked (en, de, ...); null = the browser decides.
    - `utm` object, nullable, required: The UTM tags of the sign-up, as captured; null when there were none.
    - `created_at` string, required: ISO 8601 UTC.
    - `updated_at` string, required: ISO 8601 UTC.
    - `erasure_requested_at` string, nullable, required: When the account asked to be erased (GDPR Art. 17); null = not requested. The 72h window runs from here.
    - `erased_at` string, nullable, required: When the erasure ran; null while the account is live.
    - `deleted_at` string, nullable, required: ISO 8601 UTC; null = live.
  - `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)
