---
title: "Retrieve one person and their AI usage."
method: GET
path: "/users/{id}"
---

# Retrieve one person and their AI usage.

`GET /users/{id}`

## Path parameters

- `id` string, required

## Query parameters

- `period` 'last_30d' | 'all_time'

## Headers

- `Oximy-Version` '2026-06-29'

## Response `200`

User detail. Names and emails are only present with people:names:read.

- object
  - `object` 'user', required
  - `request_id` string, required
  - `as_of` string, date-time, required
  - `data` User, required
    - `id` string, required
    - `object` 'user', required
    - `name` string
    - `email` string
    - `department` string, nullable
    - `status` string, required
    - `usage` number, required
    - `usage_7d` number
    - `active_days` number
    - `sessions` number, required
    - `sessions_7d` number
    - `tools_used` number, required
    - `spend` object, required
      - `monthly_usd` number, required
      - `currency` 'usd', required
      - `sources` string[], required
    - `top_tools` object[]
      - `id` string
      - `name` string
      - `count` number
      - `last_used` string, date-time
    - `last_active` string, date-time
    - `first_seen` string, date-time
    - `sources` string[], required

## Other responses

- `304` — Not modified. Conditional GET responses do not consume rate-limit quota.
- `400` — Invalid parameters.
- `401` — Missing or invalid API key.
- `403` — The API key does not have the required scope.
- `404` — The requested resource was not found in the calling key's workspace scope.
- `409` — Conflict or idempotency replay conflict.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error.

---

[API](https://skmtc.net/oximy/apis/oximy-public-api.md) · [All operations](https://skmtc.net/oximy/apis/oximy-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oximy/oximy-public-api/revisions/36cc62fb2aaf/schema)
