Raw schema
{
"type": "object",
"properties": {
"sessionToken": {
"type": "string",
"minLength": 16,
"description": "The private session token returned by finish_sign_in. Reuse it for the conversation and never show it to the user."
},
"displayName": {
"type": "string",
"minLength": 1
},
"headline": {
"type": "string",
"minLength": 1,
"description": "One line in their voice — specific and human, never a job title or category"
},
"story": {
"type": "string",
"minLength": 1,
"description": "Their narrative, first person: who they are, what they've lived, why someone would want them in their corner"
},
"corpus": {
"type": "string",
"description": "Everything else worth knowing, unbounded — written for agents to read. Details, specifics, boundaries, availability quirks."
},
"hourlyRateDollars": {
"type": "number",
"minimum": 0,
"description": "Self-set hourly rate in US dollars (e.g. 25 or 12.5)"
},
"availability": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startsAt": {
"type": "string",
"format": "date-time",
"description": "Slot start as ISO 8601 with timezone offset, e.g. 2026-07-15T18:00:00-07:00"
},
"endsAt": {
"type": "string",
"format": "date-time",
"description": "Slot end as ISO 8601 with timezone offset, e.g. 2026-07-15T18:00:00-07:00"
}
},
"required": [
"startsAt"
],
"additionalProperties": false
},
"description": "Initial open slots; endsAt defaults to one hour after startsAt"
},
"createdVia": {
"type": "string",
"enum": [
"self_serve",
"in_session_commit"
],
"description": "Use in_session_commit when this profile was born from a commitment made during a session/conversation"
},
"publish": {
"type": "boolean",
"description": "Default false = PREVIEW ONLY (nothing created; returns the rendered profile + quality notes). Set true only after the user approved the preview."
}
},
"required": [
"sessionToken",
"displayName",
"headline",
"story"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}