Enterprise API

Документация API

Интегрируйте психологическое тестирование 7 Радикалов в ваши системы подбора персонала, HR-платформы и корпоративные порталы.

Аутентификация

Все запросы к API требуют API ключ в заголовке Authorization.

Authorization: Bearer sk_ваш_api_ключ

Базовый URL: https://7radicalov.ru/api/v1

POST/test

Создаёт приглашение на тест для кандидата и отправляет ему персональную ссылку по email.

Запрос

POST https://7radicalov.ru/api/v1/test
Authorization: Bearer sk_ваш_ключ
Content-Type: application/json

{
  "email": "candidate@company.com",
  "name": "Иван Иванов",
  "send_email": true
}

Параметры

ПолеТипОписание
emailstring *Email кандидата
namestringИмя кандидата (опционально)
send_emailbooleanОтправить ссылку по email (default: true)

Ответ 200

{
  "ok": true,
  "testUrl": "https://7radicalov.ru/auth/register?org=...&token=...&email=...",
  "inviteToken": "abc123def456",
  "expiresIn": "7 days"
}
GET/results/{sessionId}

Возвращает результаты завершённого теста по ID сессии.

Запрос

GET https://7radicalov.ru/api/v1/results/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer sk_ваш_ключ

Ответ 200

{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "candidateName": "Иван Иванов",
  "candidateEmail": "candidate@company.com",
  "topRadicals": ["C", "F", "B"],
  "percentages": {
    "A": 14, "B": 16, "C": 22,
    "D": 12, "E": 10, "F": 18, "G": 8
  },
  "pdfUrl": "https://storage.7radicalov.ru/pdf-profiles/...",
  "completedAt": "2025-06-01T10:30:00Z"
}

Радикалы: A = Истероидный, B = Эпилептоидный, C = Паранояльный, D = Эмотивный, E = Шизоидный, F = Гипертимный, G = Тревожный

Ошибки

КодОписание
401Неверный или отсутствующий API ключ
403Доступ к ресурсу запрещён (не ваша организация)
404Сессия или ресурс не найден
400Неверный запрос (проверьте параметры)
429Превышен лимит запросов
500Внутренняя ошибка сервера

Пример интеграции

Node.js / TypeScript

const API_KEY = 'sk_ваш_api_ключ'
const BASE_URL = 'https://7radicalov.ru/api/v1'

// 1. Запустить тест для кандидата
const res = await fetch(`${BASE_URL}/test`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: 'candidate@company.com',
    name: 'Иван Иванов',
  }),
})
const { testUrl, inviteToken } = await res.json()
console.log('Ссылка на тест:', testUrl)

// 2. Получить результаты (после прохождения теста)
// sessionId доступен после завершения теста кандидатом
const results = await fetch(`${BASE_URL}/results/${sessionId}`, {
  headers: { 'Authorization': `Bearer ${API_KEY}` },
})
const data = await results.json()
console.log('Топ радикалы:', data.topRadicals)