API reference
The B5Tools API returns a Big Five-based personality type result from Mini-IPIP-20 answers. All responses are JSON and never cached.
English and Arabic
Use locale=ar for Arabic items and plugin configuration, and include locale: "ar" in scoring requests. English is the default. Item IDs, answer values, and scoring remain the same. These product translations have not been independently psychometrically validated in Arabic.
Authentication
Send your API key as a bearer token (or the x-api-key header). Keys are scoped and issued per environment (test / live).
Authorization: Bearer b5t_live_XXXXXXXXXXXXXXXX
GET/api/v1/items
Returns the assessment items. Requires scope items:read.
curl https://b5tools.ly/api/v1/items \ -H "Authorization: Bearer b5t_live_XXXX"
POST/api/v1/score
Scores 20 answers (1–5) and returns the primary result type. Pro keys also receive browser-only trait spectrums and a secondary style. Requires scope score:read. Counts toward your monthly quota.
curl -X POST https://b5tools.ly/api/v1/score \
-H "Authorization: Bearer b5t_live_XXXX" \
-H "Content-Type: application/json" \
-d '{"answers":[{"itemId":"mini-ipip-e-1","score":4}, ...]}'POST/api/v1/pair
Compares two people. Requires scope pair:read and a plan with the pairwise feature (Pro).
curl -X POST https://b5tools.ly/api/v1/pair \
-H "Authorization: Bearer b5t_live_XXXX" \
-H "Content-Type: application/json" \
-d '{"personA":{"answers":[...]},"personB":{"answers":[...]}}'GET/api/v1/plugin-config
Returns plan-based plugin capabilities, enabled themes/modes, branding, and telemetry support. Requires scope items:read.
POST/api/v1/events
Records metadata-only WordPress plugin funnel events. Requires scope events:write. Existing score-capable keys are accepted for backwards compatibility. Do not send raw answers, emails, names, or trait vectors.
curl -X POST https://b5tools.ly/api/v1/events \
-H "Authorization: Bearer b5t_live_XXXX" \
-H "Content-Type: application/json" \
-d '{"event":"assessment_started","pageUrl":"/personality-test"}'Errors
Errors return { ok: false, error: { code, message } }. Common codes:
unauthorized / invalid_api_key— missing or bad key (401)forbidden_scope / forbidden_origin / forbidden_feature— key lacks access (403)quota_exceeded— monthly plan quota reached (429)missing_answers / invalid_score— malformed input (400)