---
title: "User Info V2"
method: GET
path: "/v2/user/info"
tags: ["Internal User management"]
---

# User Info V2

`GET /v2/user/info`

Lightweight endpoint to get user info. Returns only the user object — no keys, no teams objects.

This is the v2 replacement for /user/info, designed to avoid the "god endpoint" problem
where the old endpoint loaded all keys and teams into memory.

Note on `spend`: this is the user's running budget counter, which the budget reset job
resets whenever `budget_reset_at` elapses (see `budget_duration`): to zero by default,
or to the overage above `max_budget` when `budget_rollover` is enabled. It is NOT
lifetime or per-period historical spend. For historical spend over a date range, use
`/user/daily/activity` or `/user/daily/activity/aggregated`, which read daily spend
records that only ever accumulate and are never reset. The two values are expected to
diverge once a budget reset has occurred within the queried period.

Access control:
- Proxy admins can query any user
- Team admins can query users within their teams
- Internal users can only query themselves (omit user_id or pass own)
- Returns 404 for non-existent users or unauthorized access

Example request:
```
curl -X GET 'http://localhost:4000/v2/user/info?user_id=user123' \
--header 'Authorization: Bearer sk-1234'
```

## Query parameters

- `user_id` string, nullable — User ID in the request parameters

## Response `200`

Successful Response

- UserInfoV2Response — Response model for GET /v2/user/info Returns ONLY the user object - no keys, no teams objects. This is a lightweight alternative to UserInfoResponse.
  - `user_id` string, required
  - `user_email` string, nullable
  - `user_alias` string, nullable
  - `user_role` string, nullable
  - `spend` number
  - `max_budget` number, nullable
  - `models` string[]
  - `budget_duration` string, nullable
  - `budget_reset_at` string, date-time, nullable
  - `metadata` object, nullable
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable
  - `sso_user_id` string, nullable
  - `teams` string[]
  - `object_permission` LiteLLMObjectPermissionTable — Represents a LiteLLM_ObjectPermissionTable record
    - `object_permission_id` string, required
    - `mcp_servers` string[], nullable
    - `mcp_access_groups` string[], nullable
    - `mcp_tool_permissions` object, nullable
    - `vector_stores` string[], nullable
    - `agents` string[], nullable
    - `agent_access_groups` string[], nullable
    - `models` string[], nullable
    - `mcp_toolsets` string[], nullable
    - `blocked_tools` string[], nullable
    - `search_tools` string[], nullable
    - `mcp_tool_search_enabled` boolean, nullable
  - `model_max_budget` object, nullable
  - `model_max_budget_usage` object, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-18** `082b5fabd909` — 5 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
  - added the optional property `model_max_budget` to the response with the `200` status
  - added the optional property `model_max_budget_usage` to the response with the `200` status
  - …1 more

[Change history](https://skmtc.dev/flock/apis/litellm-api/changes/v2/user/info/get.md)

---

[API](https://skmtc.dev/flock/apis/litellm-api.md) · [All operations](https://skmtc.dev/flock/apis/litellm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flock/apis/litellm-api/revisions/3b2b241e4b0b?raw)
