Personality.fyi API
A free, no-authentication JSON API for the 16 MBTI types and the OEJTS personality test. All data is static and public-domain; no large-language-model calls happen anywhere in this API.
Base URL: https://personality.fyi/api/v1
License: Data is CC0 (public domain). Use however you want, attribution appreciated but not required.
Endpoints
/api/v1/types
List of all 16 MBTI types with name and one-line title.
curl https://personality.fyi/api/v1/types
{
"types": [
{ "code": "INTJ", "name": "Architect", "title": "The Architect" },
{ "code": "INTP", "name": "Logician", "title": "The Thinker" },
...
],
"count": 16
}
/api/v1/types/{CODE}
Full profile for one type. {CODE} is the 4-letter MBTI code in uppercase (e.g. INTJ).
curl https://personality.fyi/api/v1/types/INTJ
{
"code": "INTJ",
"name": "Architect",
"title": "The Architect",
"cognitive": "Strategic, systems-level thinking. Builds mental models and long-range plans.",
"strengths": ["Independent", "decisive", "high standards", "visionary"],
"shadow": ["Can be dismissive of others' input", "struggles with emotional expression", ...],
"drains": ["Repetitive meetings", "micromanagement", ...],
"url": "https://personality.fyi/type/intj"
}
/api/v1/test/items
The 32 OEJTS test items with axis labels and scoring spec.
curl https://personality.fyi/api/v1/test/items
{
"items": [
{
"id": 1,
"statement": "I make lists rather than relying on memory.",
"axis": "J_P",
"agreePole": "J",
"disagreePole": "P"
},
...
],
"count": 32,
"likert": { "1": "Strongly disagree (+2 toward disagreePole)", ... },
"axes": ["I_E", "N_S", "T_F", "J_P"],
"license": "OEJTS items are public domain..."
}
/api/v1/test/score
Given an array of 32 Likert answers (1-5), returns the computed MBTI type, per-axis confidence percentage, and raw scores.
curl -X POST https://personality.fyi/api/v1/test/score \
-H "Content-Type: application/json" \
-d '{"answers": [5,1,2,4,5,3,1,5,2,4,3,5,1,5,2,4,3,5,1,2,5,4,3,1,5,2,4,3,1,5,2,4]}'
{
"type": "INTJ",
"confidence": { "I": 74, "N": 88, "T": 61, "J": 92 },
"scores": { "I": 7, "E": 2, "N": 9, "S": 1, "T": 5, "F": 3, "J": 8, "P": 0 }
}
/api/v1/badge/{CODE}
Returns shields.io endpoint-badge JSON for any of the 16 types. Pair with shields.io to render an MBTI badge anywhere you can embed an image.
https://img.shields.io/endpoint?url=https://personality.fyi/api/v1/badge/intj
Or use the pre-rendered SVG directly: https://personality.fyi/badge/intj.svg (no shields.io dependency).
Rate limits & abuse
No hard rate limits today. If your project hammers the endpoint past ~1k req/min sustained we'll add IP-based limiting. Please be reasonable — the data is small and CDN-cached; pulling the JSON once and keeping a local copy works fine for most use cases.
What's not exposed
The compatibility engine, career advisor, and AI Q&A surfaces are not part of this API. Those require LLM calls and stay in the consumer product at personality.fyi. If you want personality-aware AI features in your own app, use your own LLM provider.
Methodology
The test items come from the Open Extended Jungian Type Scales (OEJTS) 1.2, a public-domain MBTI alternative published by Eric Jorgenson. OEJTS axes correlate r=0.62–0.81 with the official Myers-Briggs Type Indicator. Full methodology at personality.fyi/methodology.
Bug reports & feature requests
Email hello@personality.fyi or open an issue on the GitHub repo (coming soon).