# Get Originated Identity (PII)

**GET** `/users/{user_id}/identity`

Base URL: `https://live.savewithsail.com/api/v1`

The PII supplied at user creation (email, names), the customer's own originated data, returned nulls-included for shell users. Distinct from `GET …/accounts/{account_id}/identity`, which is the administrator-reported owner of a specific account. Requires the `identity` key scope and an ephemeral token with the `identity` token scope. No connection product applies (the data has no connection source).

## Authorization

- PartnerKey (http, bearer)
- x-sail-user-token (apiKey in header)

## Path parameters

- `user_id` (string, required)
  The Sail user id.

## Responses

### 200

Originated identity.

- `email` (string)
  The email supplied at user creation. Null if not provided.
- `first_name` (string)
  The first name supplied at user creation. Null if not provided.
- `last_name` (string)
  The last name supplied at user creation. Null if not provided.
- `phone` (string)
  The phone number supplied at user creation. Null if not provided.
- `address` (object)
  The address supplied at user creation. Null if not provided.
  - `street` (string)
    Street address.
  - `city` (string)
    City.
  - `state` (string)
    State or region.
  - `zip` (string)
    Postal code.
  - `country` (string)
    Country.

Example:

```json
{
  "email": "string",
  "first_name": "string",
  "last_name": "string",
  "phone": "string",
  "address": {
    "street": "string",
    "city": "string",
    "state": "string",
    "zip": "string",
    "country": "string"
  }
}
```

### 401

`user_token_required` / `user_token_expired` / `invalid_user_token`.

### 403

`insufficient_key_scope` or `insufficient_token_scope`.

### default

Standard error envelope covering 400, 401, 403, 404, 429, and 500.

- `error` (object)
  The error detail.
  - `code` (string)
    Machine-readable code, e.g. `not_found`, `token_scope_mismatch`, `product_not_enabled`, `insufficient_key_scope`, `insufficient_token_scope`, `user_token_required`, `user_token_expired`, `invalid_user_token`, `invalid_key_configuration`, `connection_not_reconnectable`, `rate_limited`.
  - `message` (string)
    Human-readable error message. May change, so match on `error.code` instead.
  - `param` (string)
    The request field that caused the error, when applicable. Null otherwise.

Example:

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "param": "string"
  }
}
```