---
title: "Rolling user profile (deterministic v1)"
method: GET
path: "/v1/users/{userId}/profile"
tags: ["Users"]
---

# Rolling user profile (deterministic v1)

`GET /v1/users/{userId}/profile`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/users/{userId}/profile`
- Auth: HTTP bearer

Query-time assembly of what the platform knows about a user: active user-scoped facts grouped by aspect (persona-first), plus `profileText` shaped for direct prompt injection. Deterministic — no model calls. A user-bound token may only fetch its own profile (mismatch 403); M2M tokens any. 404 until USER_PROFILE_API_ENABLED=1. Source: src/users/user-profile.controller.ts.

Required scope: `brain:read`.

## Path parameters

- `userId` string, required

## Query parameters

- `maxFacts` integer
- `lang` string

## Response `200`

The assembled profile.

- UserProfileResponse
  - `factCount` integer, required
  - `generatedAt` string, required
  - `identity` object, required
    - `entityId` string, nullable, required
    - `name` string, nullable, required
  - `profileText` string, required
  - `sections` ProfileSection[], required
    - `aspect` string, required
    - `facts` ProfileFact[], required
      - `confidence` number, required
      - `expectedUntil` string
      - `factId` string, required
      - `kind` string
      - `lastSeenAt` string
      - `statement` string, required
      - `validFrom` string, required
  - `userId` string, required

## Other responses

- `400`: Validation failed.
- `401`: Missing or unknown bearer key.
- `403`: The key lacks the required scope.
- `404`: No such resource in this tenant.

---

[API](https://skmtc.dev/inite/apis/inite-brain-platform-api.md) · [All operations](https://skmtc.dev/inite/apis/inite-brain-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inite/apis/inite-brain-platform-api/revisions/c7c3eb5e304b?raw)
