{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/axle/json-schema/axle-user-schema.json",
  "title": "User",
  "description": "User to attach to the Ignition session. This object is used to identify the user that is associated with the Ignition session, enabling consolidated metrics, easy matching for webhook events, and upcoming features.",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/axle-api-openapi.yml#/components/schemas/User",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "A public, unique identifier for the user or entity associated with the Ignition session.\n> **Note**  \n> `user.id` is typically a public identifier for a user in your application. However, it can also represent the entity you are tracking insurance for, such as a trip ID or loan number. Consider the following when choosing a value:\n> - **Metric aggregation behavior** – Metrics are aggregated based on the `user.id` provided. Passing a **user ID** rolls metrics up at the user level. Passing an **entity ID** (e.g. loan number) rolls metrics up at the entity level.\n> - **Historical lookback** – If you use a user ID and want a historical timeline of all accounts a user has linked across entities, you should store the mapping of user, entity, and access token in your system.\n> - **Interaction with Descope Token** – The [Descope Token](../descope-token) endpoint stops monitoring on the account tied to the given access token.\n>   - If using a **user ID**, stopping monitoring applies to the user's insurance account across all entities.\n>   - If using an **entity ID**, stopping monitoring applies only to the account originally linked for that entity."
    },
    "firstName": {
      "type": "string",
      "description": "User's first name."
    },
    "lastName": {
      "type": "string",
      "description": "User's last name."
    },
    "email": {
      "type": "string",
      "description": "User's email address."
    },
    "phone": {
      "type": "string",
      "description": "User's phone number in E.164 format."
    }
  },
  "required": [
    "id"
  ]
}