Moonborn — API · personas
Compute DNA profile from bigFive + soul scores (cached per org TTL)
Deterministic 6-axis DNA profile (openness, conscientiousness, extraversion, agreeableness, neuroticism, soulDepth) computed from the persona Self layer bigFive normalised scores + Soul layer depth indicators. Cached per persona; TTL controlled by `persona_detail.dna.cache_ttl_hours` (default 24 h, per-org tunable). `force=true` bypasses the cache.
POST/v1/personas/{id}/dnascope · Bearer (API key or session JWT)
Path parameters
| Field | Type | Description |
|---|---|---|
| idreq | string |
Request body
| Field | Type | Description |
|---|---|---|
| bigFivereq | object | |
| bigFive.opennessreq | number | |
| bigFive.conscientiousnessreq | number | |
| bigFive.extraversionreq | number | |
| bigFive.agreeablenessreq | number | |
| bigFive.neuroticismreq | number | |
| soulreq | object | |
| soul.coreDesireStrengthreq | number | |
| soul.fearDepthreq | number | |
| soul.woundIntensityreq | number | |
| force | boolean |
Responses
200Computed (or cache hit)
400Invalid bigFive/soul body
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
401Unauthorized
Body
| Field | Type | Description |
|---|---|---|
| errorreq | object | |
| error.codereq | string | |
| error.messagereq | string |
Examples
cURL
curl -X POST https://api.moonborn.co/v1/personas/<id>/dna \
-H "Authorization: Bearer $MOONBORN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"bigFive": {
"openness": 0,
"conscientiousness": 0,
"extraversion": 0,
"agreeableness": 0,
"neuroticism": 0
},
"soul": {
"coreDesireStrength": 0,
"fearDepth": 0,
"woundIntensity": 0
}
}'TypeScript
import Moonborn from '@moonborn/sdk';
const client = new Moonborn({ apiKey: process.env.MOONBORN_API_KEY });
const result = await client.personas.computePersonaDna({
id: '<id>',
bigFive: {"openness":0,"conscientiousness":0,"extraversion":0,"agreeableness":0,"neuroticism":0},
soul: {"coreDesireStrength":0,"fearDepth":0,"woundIntensity":0},
});Python
import os
from moonborn import Moonborn
client = Moonborn(api_key=os.environ["MOONBORN_API_KEY"])
result = client.personas.compute_persona_dna(
id="<id>",
big_five={"openness":0,"conscientiousness":0,"extraversion":0,"agreeableness":0,"neuroticism":0},
soul={"coreDesireStrength":0,"fearDepth":0,"woundIntensity":0},
)