Panor
Get API Key

Panor API

AI-powered personality assessment, job description parsing, and name generation. Metered billing, plug and play.

https://www.panor.tech/api/v1

Authentication

Include your API key in the Authorization header:

Authorization: Bearer pk_live_xxxxxxxxxxxxxxxxxxxx

Get your key at /pricing/

Rate Limits

Tier Limit
Free100 requests/minute
Paid1,000 requests/minute

Endpoints

POST /api/v1/mbti/interpret $0.05 / call

Generate an MBTI 16-type personality interpretation from user answers.

Request Body
{
  "answers": [3, 1, 4, 2, ...],
  "lang": "en"
}
Response
{
  "type": "INTJ",
  "interpretation": "The Architect — strategic, independent...",
  "dimensions": {
    "EI": { "score": 72, "label": "Introversion" },
    "SN": { "score": 85, "label": "Intuition" },
    "TF": { "score": 68, "label": "Thinking" },
    "JP": { "score": 79, "label": "Judging" }
  }
}
POST /api/v1/bigfive/interpret $0.05 / call

Generate a Big Five (OCEAN) personality analysis from user answers.

Request Body
{
  "answers": [5, 2, 4, 3, ...],
  "lang": "en"
}
Response
{
  "scores": {
    "openness": 82,
    "conscientiousness": 74,
    "extraversion": 45,
    "agreeableness": 68,
    "neuroticism": 31
  },
  "interpretation": "You score high on Openness, suggesting..."
}
POST /api/v1/job/parse-jd $0.02 / call

Parse a job description to extract skills, requirements, and seniority level.

Request Body
{
  "description": "We are looking for a Senior Full-Stack Engineer..."
}
Response
{
  "skills": ["React", "Node.js", "PostgreSQL", "AWS"],
  "requirements": [
    "5+ years of full-stack experience",
    "Strong system design skills",
    "Experience with CI/CD pipelines"
  ],
  "level": "senior"
}
POST /api/v1/name/generate $0.01 / call

Generate culturally-aware names based on culture, gender, and style preferences.

Request Body
{
  "culture": "chinese",
  "gender": "female",
  "style": "modern"
}
Response
{
  "names": [
    { "name": "林悦然", "pinyin": "Lin Yueran", "meaning": "Joyful and natural" },
    { "name": "苏晴微", "pinyin": "Su Qingwei", "meaning": "Clear skies, gentle" },
    { "name": "陈思宁", "pinyin": "Chen Sining", "meaning": "Thoughtful serenity" }
  ]
}

Code Examples

MBTI Interpretation

curl -X POST https://www.panor.tech/api/v1/mbti/interpret \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer pk_live_YOUR_KEY" \
  -d '{
    "answers": [3, 1, 4, 2, 5, 2, 3, 4, 1, 5],
    "lang": "en"
  }'
import requests

resp = requests.post(
    "https://www.panor.tech/api/v1/mbti/interpret",
    headers={"Authorization": "Bearer pk_live_YOUR_KEY"},
    json={
        "answers": [3, 1, 4, 2, 5, 2, 3, 4, 1, 5],
        "lang": "en"
    }
)
result = resp.json()
print(result["type"])       # "INTJ"
print(result["interpretation"])
const res = await fetch("https://www.panor.tech/api/v1/mbti/interpret", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer pk_live_YOUR_KEY"
  },
  body: JSON.stringify({
    answers: [3, 1, 4, 2, 5, 2, 3, 4, 1, 5],
    lang: "en"
  })
});

const { type, interpretation, dimensions } = await res.json();
console.log(type);            // "INTJ"
console.log(interpretation);

Job Description Parsing

curl -X POST https://www.panor.tech/api/v1/job/parse-jd \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer pk_live_YOUR_KEY" \
  -d '{
    "description": "Senior Full-Stack Engineer at TechCo..."
  }'
import requests

resp = requests.post(
    "https://www.panor.tech/api/v1/job/parse-jd",
    headers={"Authorization": "Bearer pk_live_YOUR_KEY"},
    json={"description": "Senior Full-Stack Engineer at TechCo..."}
)
data = resp.json()
print(data["skills"])        # ["React", "Node.js", ...]
print(data["level"])         # "senior"
const res = await fetch("https://www.panor.tech/api/v1/job/parse-jd", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer pk_live_YOUR_KEY"
  },
  body: JSON.stringify({
    description: "Senior Full-Stack Engineer at TechCo..."
  })
});

const { skills, requirements, level } = await res.json();
console.log(skills);  // ["React", "Node.js", ...]

Pricing

Pay-per-call, no monthly fees. Billed automatically via Stripe.

Endpoint Price / Call Description
/v1/mbti/interpret $0.05 MBTI 16-type interpretation
/v1/bigfive/interpret $0.05 Big Five OCEAN analysis
/v1/job/parse-jd $0.02 Job description parsing
/v1/name/generate $0.01 Name generation
Get API Key & Add Credits

Error Codes

Status Meaning
200Success
400Bad request — invalid or missing parameters
401Unauthorized — missing or invalid API key
402Payment required — insufficient credits
429Rate limit exceeded
500Internal server error

Error Response Format

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please wait 30 seconds.",
    "retry_after": 30
  }
}