What is a Profile?
A profile is GetProfile’s representation of a user. It stores:
- Identity: External ID (your app’s user identifier)
- Traits: Structured attributes extracted from conversations
- Summary: AI-generated natural language description
- Metadata: Creation time, last update, summary version
Profile Structure
interface Profile {
id: string; // Internal UUID
externalId: string; // Your app's user ID
summary: string | null;
summaryVersion: number;
summaryUpdatedAt: Date | null;
createdAt: Date;
updatedAt: Date;
}
External ID vs Profile ID
It’s important to understand the difference between these two identifiers.
| Field | Description | Example |
|---|
externalId | Your app’s user identifier | user_abc123 |
id | GetProfile’s internal UUID | 550e8400-e29b-41d4-a716-446655440000 |
When making requests to the proxy, you always use your external ID via the X-GetProfile-Id header. GetProfile maps this to the internal profile ID automatically.
Profile Creation
Profiles are created automatically when a user makes their first request:
// First request with a new user ID
const response = await client.chat.completions.create(
{
model: "gpt-5",
messages: [{ role: "user", content: "Hello!" }],
},
{
headers: {
"X-GetProfile-Id": "new-user-123", // Profile created automatically
},
}
);
Profile Summary
The summary is a natural language description of the user, generated by analyzing their traits and memories:
Alex is an experienced software engineer who prefers concise,
technical explanations. They work primarily with Python and
have been exploring distributed systems.
Summaries are regenerated when:
- High-priority traits change (name, language, expertise)
- Enough time has passed since the last update (configurable)