Beta · v1.0

Ascend API

Give your coaching practice, app, or integration access to a seeker's Arc data — with their explicit consent.

What this is
The Behavioral Intelligence Layer

The Ascend API exposes three core data objects: a seeker's Arc Status (where they are in their 30-day transformation), Athena's Context (the behavioral intelligence Athena has built about this person), and their Moat Score (how deeply personalized their experience has become).

Every API call requires an API key generated by the seeker themselves — they own their data and explicitly grant access to each integration.

ℹ️
Base URL: https://www.asyouascend.com/.netlify/functions/ — All endpoints require Authorization: Bearer ascend_live_...
Authentication
API Keys

All API requests are authenticated with an API key. Keys are generated by seekers in their Ascend Settings → Integrations panel (Sovereign and Circle tiers only). Each key is tied to one seeker's data and one set of scopes.

⚠️
The raw API key is shown once at creation. Store it securely. If lost, revoke and regenerate.
HTTP Header
Authorization: Bearer ascend_live_a1b2c3d4e5f6...
cURL Example
curl https://www.asyouascend.com/.netlify/functions/api-arc-status \
  -H "Authorization: Bearer ascend_live_YOUR_KEY"
Authorization
Scopes

Each API key has one or more scopes that control what data it can access. Seekers choose scopes when generating a key.

Scope Access Tier Required
read:arc Arc day, phase, streak, sovereign score, pillar scores, next milestone Sovereign+
read:sophia Athena's behavioral intelligence: identity words, emotional arc, resonance style, Athena summary Circle only
read:moat Moat score, breakdown, switching cost, trend Sovereign+
write:moat Submit external observations (session notes, behaviors, milestones) that enrich the behavioral fingerprint Circle only
Endpoint
Arc Status

Returns a seeker's current position in their transformation Arc — day, phase, streak, scores, and next milestone.

GET /api-arc-status Scope: read:arc ▼
read:arc Required scope
Response Fields
FieldTypeDescription
seeker_idstringAnonymized public ID (e.g. ask_a1b2c3d4e5f6)
arc_daynumberCurrent day in the 30-day Arc (1–365+)
arc_phasestringignition | momentum | identity | mastery | legacy
streaknumberCurrent consecutive engagement streak (days)
sovereign_scorenumberOverall transformation score 0–100
moat_scorenumberBehavioral personalization depth 0–100
focus_pillarstringTheir primary pillar: mind | body | spirit | wealth | love
pillarsobjectScore 0–100 for each of the 5 pillars
intentionstringTheir stated transformation intention
arc_velocitystringaccelerating | steady | plateauing | at_risk
next_milestoneobject{ day, label, days_away } — e.g. Day 14 Identity Shift
Example Response
JSON
{
  "seeker_id":       "ask_a1b2c3d4e5f6",
  "arc_day":         22,
  "arc_phase":       "identity",
  "streak":          18,
  "sovereign_score": 74,
  "moat_score":      61,
  "moat_level":      "Personalized",
  "focus_pillar":    "wealth",
  "last_active":     "2026-06-26T20:14:00Z",
  "pillars": {
    "mind":    68, "body":    55,
    "spirit":  72, "wealth":  74,
    "love":    48, "habits":  61
  },
  "intention": "Build my first $10k month without burning out.",
  "arc_velocity":    "accelerating",
  "next_milestone": {
    "day": 30, "label": "The Seal", "days_away": 8
  },
  "_meta": { "api_version": "1.0", "generated_at": "2026-06-26T..." }
}
Endpoint
Athena Context

Returns Athena's distilled behavioral intelligence about a seeker — the data layer that makes Ascend's moat. Requires explicit read:sophia scope (Circle tier only).

GET /api-sophia-context Scope: read:sophia · Circle ▼
read:sophia Circle tier required
Response Fields
FieldTypeDescription
emotional_arcarrayLast 7 mood snapshots with pillar and timestamp
identity_wordsstring[]Words they use repeatedly about themselves across journals and Athena chats
commitment_wordsstring[]Actions they've committed to in Athena conversations
pillar_narrativeobjectOne-sentence Athena read per pillar (e.g. "wealth is accelerating — high momentum window")
resonance_stylestringreflective | action | emotional | analytical
friction_pointsstring[]Pillars or patterns where they consistently drop off
breakthrough_momentsarraySealed quests and milestone completions
sophia_summarystringAthena's 3-sentence AI-generated read of this person (Claude Haiku)
_meta.data_depthstringHow rich the data is: early → deep
Example Response
JSON
{
  "seeker_id":      "ask_a1b2c3d4e5f6",
  "arc_day":        22,
  "identity_words": ["builder", "provider", "disciplined"],
  "commitment_words": ["deep work blocks", "morning ritual"],
  "resonance_style": "action",
  "friction_points": ["love pillar drops after high-stress weeks"],
  "pillar_narrative": {
    "wealth": "accelerating — high momentum window (primary focus)",
    "mind":   "building steadily",
    "love":   "declining — needs attention"
  },
  "sophia_summary": "This seeker is in a high-momentum wealth window, connecting morning ritual to deep work blocks with unusual consistency. Their identity is shifting from 'trying to build' to 'I am a builder' — the language changed 9 days ago. Watch the love pillar: it drops predictably after high-output weeks.",
  "_meta": { "data_depth": "rich — 2-4 weeks", "sophia_sessions": 34 }
}
Endpoint
Moat Score

Returns the seeker's Moat Score — Ascend's proprietary measure of behavioral personalization depth. Also accepts POST to submit external observations that enrich the fingerprint.

GET /api-moat-score Scope: read:moat ▼
read:moat Sovereign+ required
Response Fields
FieldTypeDescription
moat_scorenumber0–100. The switching cost in a single number.
moat_levelstringGeneric → Familiar → Personalized → Irreplaceable → Sovereign Intelligence
moat_breakdownobject8 sub-dimensions: behavioral_data, streak_depth, sophia_sessions, identity_markers, pattern_richness, growth_velocity, friction_mapped, resonance_depth
switching_coststringPlain-English explanation of what the seeker would lose by leaving
days_to_next_levelnumberEstimated days to reach next Moat level at current engagement rate
trendstringrising | stable | declining
POST /api-moat-score Submit observation · Scope: write:moat ▼
write:moat Circle tier required

Submit an external observation (coach session note, behavior logged in a partner app, milestone, or risk flag) that enriches the seeker's behavioral fingerprint.

Request Body
FieldTypeRequiredDescription
observation_typestringrequiredsession_note | behavior | milestone | risk
pillarstringoptionalWhich pillar this observation relates to
valuenumberoptional-100 to 100. Positive = growth signal. Used to nudge moat score.
notestringoptionalFree-text observation (max 1000 chars)
Example Request
cURL
curl -X POST \
  https://www.asyouascend.com/.netlify/functions/api-moat-score \
  -H "Authorization: Bearer ascend_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "observation_type": "milestone",
    "pillar":           "wealth",
    "value":            80,
    "note":             "Client closed first $5k deal during our session."
  }'
✓
Returns 201 Created with { "accepted": true, "observation_type": "milestone", "pillar": "wealth" }
Key Management
Create an API Key

Seekers generate API keys in their Ascend Settings → Integrations panel, or programmatically via this endpoint using their Supabase session JWT.

POST /api-keys-manage?action=create Seeker JWT required ▼
⚠️
This endpoint uses the seeker's Supabase session JWT — not an API key. The raw key is returned once in the response.
Request Body
FieldTypeRequiredDescription
labelstringoptionalHuman-readable name for this key (e.g. "My Coach Integration")
scopesstring[]optionalDefault: ["read:arc"]. Available: read:arc, read:sophia, read:moat, write:moat
Example Response
JSON
{
  "id":         "uuid-here",
  "key_prefix": "ascend_live_a1b2c3...",
  "label":      "My Coach Integration",
  "scopes":     ["read:arc", "read:moat"],
  "raw_key":    "ascend_live_a1b2c3d4e5f6...",
  "warning":    "This is the only time your raw API key will be shown. Store it securely."
}
Reference
Error Codes
StatusCodeMeaning
401UnauthorizedMissing or invalid API key
403ForbiddenValid key but missing required scope or tier
404Not FoundSeeker not found (key may be misconfigured)
405Method Not AllowedWrong HTTP method for this endpoint
429Too Many RequestsRate limit exceeded or max keys reached
500Server ErrorDatabase or AI error — retry with backoff
ℹ️
All error responses include "docs": "https://www.asyouascend.com/api/docs" for easy debugging.
Reference
Rate Limits
TierCalls / hourCalls / day
Sovereign60500
Circle3005,000
EnterpriseCustomCustom
History
Changelog
v1.0
June 26, 2026 — Beta Launch
Three endpoints: /api-arc-status, /api-sophia-context, /api-moat-score. API key management. Supabase-backed. Coach Network integration.