Personality — entry 010 of 17
Personality.fyi
Personality.fyi is a small, static-data JSON API for the 16 MBTI types and the OEJTS personality test's items and scoring, explicitly marketed as "Free · No auth · No LLM." A live GET against the real gateway, personality.fyi/api/v1/types, returned a genuine list of the 16 MBTI types while carrying Access-Control-Allow-Origin: *, reconfirming both cors yes and auth None — no base-field corrections were needed. CC0 public-domain data with no paid tier — pricingModel free.
Personality.fyi is a small, static-data JSON API for the 16 Myers-Briggs (MBTI) personality types and the OEJTS personality test's items and scoring. Its own docs page (personality.fyi/api/) states "Free · No auth · No LLM" and gives the base URL directly as https://personality.fyi/api/v1.
GreatAPIs Score
Auth quickstart
- No API key, account, or header is needed for any endpoint — every route in the docs answers a bare GET (or, for scoring, a bare POST with a JSON body).
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
List all 16 MBTI types
GEThttps://personality.fyi/api/v1/types
{
"types": [
{
"code": "INTJ",
"name": "Architect",
"title": "The Architect"
},
{
"code": "INTP",
"name": "Logician",
"title": "The Thinker"
},
{
"code": "ENTJ",
"name": "Commander",
"title": "The Commander"
},
{
"code": "ENTP",
"name": "Debater",
"title": "The Debater"
},
{
"code": "INFJ",
"name": "Advocate",
"title": "The Advocate"
},
{
"code": "INFP",
"name": "Mediator",
"title": "The Mediator"
},
{
"code": "ENFJ",
"name": "Protagonist",
"title": "The Protagonist"
},
{
"code": "ENFP",
"name": "Campaigner",
"title": "The Campaigner"
},
{
"code": "ISTJ",
"name": "Logistician",
"title": "The Logistician"
},
{
"code": "ISFJ",
"name": "Defender",
"title": "The Defender"
},
{
"code": "ESTJ",
"name": "Executive",
"title": "The Executive"
},
{
"code": "ESFJ",
"name": "Consul",
"title": "The Consul"
},
{
"code": "ISTP",
"name": "Virtuoso",
"title": "The Virtuoso"
},
{
"code": "ISFP",
"name": "Adventurer",
"title": "The Adventurer"
},
{
"code": "ESTP",
"name": "Entrepreneur",
"title": "The Entrepreneur"
},
{
"code": "ESFP",
"name": "Entertainer",
"title": "The Entertainer"
}
],
"count": 16
}All 16 types are static, public-domain data (CC0 per the API's own docs), so this list does not change between requests — captured directly and byte-for-byte, no truncation.
Developer reference
https://personality.fyi/api/v1Gotchas & limits
- The unversioned https://personality.fyi/api path 301-redirects to /api/ (the human docs page), not to the real base — confirmed live — so always call the versioned https://personality.fyi/api/v1 base directly.
- GET /api/v1/types/{CODE} takes the 4-letter MBTI code in uppercase (e.g. INTJ) and returns a fuller per-type profile (cognitive style, strengths, shadow, drains) — confirmed live, 568 B for INTJ, far smaller than the 1,523 B full list.
- An invalid or lowercase type code does not get a JSON error: a live probe of /api/v1/types/ZZZZ returned Netlify's generic HTML "Page not found" page at a 404 status, not a JSON body — check the content-type before parsing.
- POST /api/v1/test/score expects exactly 32 Likert answers (1–5) in the order documented by GET /api/v1/test/items, and returns the computed MBTI type plus a per-axis confidence percentage — there is no partial-answer mode.
- The docs' own "Rate limits & abuse" section states plainly: "No hard rate limits today. If your project hammers the endpoint past ~1k req/min sustained we'll add IP-based limiting" — no limit is enforced yet, so none is recorded as this API's rateLimit.