The Socionics data that powers this site is published as a free npm package under the MIT licence. If you are building a Socionics tool, quiz, app, or research project, you are welcome to use it.
socionics-core
npm: npmjs.com/package/socionics-core
Repository: github.com/sstern42/socionics-core
Latest version: 1.5.0 (changelog)
Licence: MIT
Install:
npm install socionics-core
No dependencies. No build step. Works in Node.js 12+.
What's included
16 types: each type object includes the Socionics code, full name, MBTI equivalent, quadra, club, temperament, rationality, extraversion flag, all 15 dichotomy poles, and its place in every small group the package covers (romance style, communication style, stimulus, argumentation, stress resistance, implementation, planning style, quasi-quadra, perception group and form of thinking). Also includes the full 8-position Model A function stack.
8 functions: each function object includes the code (Ne, Ti, Fe etc), full classical name, attitude (extraverted/introverted), domain (intuition, sensing, logic, ethics), SLIDE attitude name, a plain-English description, and two longer descriptions of what the function does.
16 intertype relations: the complete relation matrix. Given any two type codes, returns the named relation along with its orientation (monoverted/heteroverted), rhythm (rhythmic/arrhythmic), vibe (attractive/repulsive), and symmetry. Asymmetric relations (Benefaction, Supervision) carry their direction. Every relation also carries its stability conditions: the natural task it suits and its comfortable psychological distance, from R.K. Kovalenko and N.A. Zvonaryova's 2020 lecture course, with the source cited in the data.
15 dichotomies: the four Jungian dichotomies and Reinin's eleven. Each dichotomy object has its id, name, kind (Jungian or Reinin), its two poles, and the Jungian dichotomies it is the product of. Look one up by id or by either pole name, and list the eight types on any pole.
Small groups: 10 group systems defined in full, each with the types in every group:
- Quadras (Alpha, Beta, Gamma, Delta), including valued functions, dual style, life stage theme and description
- Clubs (Researcher, Socializer, Pragmatist, Humanitarian), each with a work profile
- Temperaments (EP, EJ, IP, IJ), each with its goal-setting style
- Stress resistance, implementation groups, planning styles and leadership styles
- Quasi-quadras, perception groups and forms of thinking
Every group from the 2020 lecture course carries its formula (the three dichotomy poles that define it), a description and a source key, and the package's tests check that each formula reproduces its membership exactly. The descriptions are one school's interpretation and are labelled as such; quadras, clubs, temperaments and the dichotomies follow from the structure of Model A itself.
Quick example
const socionics = require('socionics-core');
// Get a type
const lii = socionics.getType('LII');
lii.name // 'The Analyst'
lii.mbti // 'INTj'
lii.quadra // 'Alpha'
lii.functions[0].code // 'Ti' (Leading)
lii.functions[4].code // 'Fe' (Suggestive)
// Get the relation between two types
const rel = socionics.getRelation('LII', 'ESE');
rel.name // 'Dual'
rel.vibe // 'Attractive'
// Find all types with a given relation to a type
socionics.getTypesByRelation('LII', 'conflict') // [SEE type object]
// Look up by MBTI equivalent
socionics.getTypeByMbti('ENTp') // ILE type object
// Quadra, club or temperament, by type code or group name
socionics.getQuadra('LII') // Alpha quadra object
socionics.getClub('Researcher') // Researcher club object
// Dichotomies
lii.dichotomies.staticDynamic // 'Static'
socionics.getDichotomy('Positivist') // positivistNegativist dichotomy object
socionics.getTypesByPole('Positivist') // the 8 Positivist types
// Small groups
lii.planningStyle // 'Stable'
lii.quasiQuadra // 'Psi'
socionics.data.groups.planningStyle.Stable.formula // ['Rational', 'Farsighted', 'Judicious']
// Stability conditions
socionics.data.relations.metadata.dual.stabilityConditions.task
// 'Recovery: restoring energy and lowering anxiety'
API at a glance
| Area | Functions |
|---|---|
| Types | getType, getAllTypes, getTypeByMbti |
| Functions | getFunction, getAllFunctions |
| Relations | getRelation, getRelationsFor, getTypesByRelation |
| Groups | getQuadra, getClub, getTemperament, getAllGroups |
| Dichotomies | getDichotomy, getAllDichotomies, getTypesByPole |
The raw data is also exported as socionics.data (types, relations, functions, groups, dichotomies). Small groups beyond quadras, clubs and temperaments, and the stability conditions, are read from there.
Full API documentation is in the README on npm and GitHub.
Socion app matching logic
The matching logic for the Socion app is built to be open source and auditable: the intertype relations matrix it applies is the same one published in socionics-core. Community trust through transparency, not a black box.
Repository: github.com/sstern42/socionics-match
Contributing
If you find errors in the type, function, or relation data, or have additions to suggest, open an issue or pull request on the socionics-core repository. The Socionics community has spent decades refining this material and corrections from knowledgeable sources are welcome.