Account Self-Profile
Return the signed-in visitor's own data from MAPI entities, driven by a per-project config (set-profile). Works for any vertical (shop, blog, ...). KEY RULES: (1) Identity is the verified visitor session email, resolved server-side (_sapi_email) — never accept an email/identity from client input. (2) Each source has a REQUIRED field allowlist; only listed fields are returned (fail-closed). (3) NEVER put confidential/sensitive fields in an allowlist (margins, cost/purchase prices, internal pricing, billing details, birth dates, activation/guest codes, private notes, or special-category data such as health info). (4) get-me requires a verified visitor session via SAPI Execute (no sapi_anonymous).
Endpoints (4)
Create or update the account self-profile config for this project. Defines which MAPI entities are returned as the visitor's own data, how each is matched to the verified session email, and which fields are exposed (allowlist). GUARDRAILS: fields is a STRICT, REQUIRED allowlist (fail-closed — unlisted fields are never returned). Do NOT allowlist confidential/sensitive fields (margin, cost/purchase price, internal pricing, billing, birth date, guest/activation codes, notes, or special-category data such as health/lens choices). The match VALUE is always derived server-side (session email for top-level, parent id for children) — never client input; children are scoped to already-matched parent ids (no IDOR). Returns warnings[] for fields not found in the entity schema (system fields id/created_at are always valid).
| Field | Type | Required | Description |
|---|---|---|---|
sources |
array | ✓ Yes | Array of source definitions. Each: { key, entity, cardinality(one|many), match:{field, from}, fields:[allowlist], sort:{field,dir}, limit, not_found(null|empty_object|omit), children:[...] }. Top-level match.from is always the verified session email. Child match.from is "parent.<field>" (e.g. "parent.id"). fields is a REQUIRED allowlist — only listed fields are returned. |
require_verified |
boolean | No | Require a verified visitor session (default true). When true, get-me returns 401 without verification. |
enabled |
boolean | No | Enable/disable the profile (default true). |
identity |
object | No | Identity source. Only { "from": "session_email" } is supported in v1. |
Get the current account self-profile config for this project.
No input parameters required.
Remove the account self-profile config for this project.
No input parameters required.
Return the verified visitor's own data according to the configured profile. Identity is the verified session email (server-side); no client identity is accepted.
No input parameters required.
MCP Tool Names
When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:
| Endpoint | MCP Tool Name |
|---|---|
| set-profile | account_set_profile |
| get-profile | account_get_profile |
| remove-profile | account_remove_profile |
| get-me | account_get_me |
Website