Skip to content

API эмитентов

Управляйте эмитентами значков — организациями или людьми, выдающими значки.

Все эндпоинты требуют аутентификации через заголовок X-Api-Key. См. Аутентификация.

Создать эмитента

Создать нового эмитента значков.

POST /issuers

Параметры

ПараметрТипОбязательноОписание
namestringДаНазвание организации (минимум 3 символа)
urlstringДаСайт организации (должен быть валидным URL HTTP/HTTPS)
emailstringДаКонтактный e-mail эмитента
logostringНетИзображение в base64 (PNG или JPG)
linkedinOrganizationIdstringНетЧисловой ID страницы компании LinkedIn. Если задан, каждая публичная страница награды показывает кнопку Add to LinkedIn Profile.

Пример

bash
curl -X POST https://api.badges.ninja/issuers \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "name": "Acme Academy",
      "url": "https://acme.example.com",
      "email": "badges@acme.example.com"
    }
  }'

Ответ

json
{
  "statusCode": 200,
  "info": {
    "issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
}

Примечания

  • Учитывается в лимите эмитентов тарифа (Free: 1, Starter: 5, Pro: без ограничений). Квота наград не списывается.
  • Если e-mail эмитента совпадает с e-mail аккаунта, эмитент подтверждается автоматически.
  • Если адрес отличается, на e-mail эмитента отправляется письмо подтверждения.

Список эмитентов

Получить всех созданных эмитентов.

GET /issuers

Пример

bash
curl -X GET https://api.badges.ninja/issuers \
  -H "X-Api-Key: bws_your_api_key_here"

Ответ

json
{
  "statusCode": 200,
  "info": {
    "issuers": [
      {
        "id": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
        "name": "Acme Academy",
        "url": "https://acme.example.com",
        "email": "badges@acme.example.com",
        "verified": true,
        "timestamp": "2025-01-15T10:30:00.000Z"
      }
    ]
  }
}

Подтвердить эмитента

Подтвердить эмитента с помощью кода, отправленного на его e-mail.

POST /issuers/{issuerId}/verify

Параметры

ПараметрТипОбязательноОписание
issuerIdstringДаID эмитента (path-параметр)
codestringДаКод подтверждения из письма

Пример

bash
curl -X POST https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/verify \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "issuerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "code": "ABC123"
    }
  }'

Ответ

json
{
  "statusCode": 200,
  "info": {
    "verified": true
  }
}

Удалить эмитента

Удалить эмитента. У эмитента не должно быть значков.

DELETE /issuers/{issuerId}

Пример

bash
curl -X DELETE https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-Api-Key: bws_your_api_key_here"

Ответ

json
{
  "statusCode": 200,
  "info": {
    "deleted": true
  }
}

Ошибки

  • 400 — у эмитента есть значки или награды, удаление невозможно (сначала удалите их)
  • 404 — эмитент не найден

Обновить эмитента

Обновить поля неподтверждённого эмитента. После подтверждения редактируемыми остаются только logo и linkedinOrganizationId, чтобы обеспечить стабильность удостоверений.

PUT /issuers/{issuerId}

Параметры

ПараметрТипОбязательноОписание
issuerIdstringДаID эмитента (path-параметр)
namestringНетНовое имя (только пока не подтверждён)
urlstringНетНовый URL (только пока не подтверждён)
emailstringНетНовый e-mail (только пока не подтверждён — отправляет новое письмо подтверждения)
logostringНетНовый логотип в base64
linkedinOrganizationIdstringНетНовый LinkedIn organization ID (или пустая строка для очистки)

Ротация кода подтверждения

Аннулировать предыдущую ссылку подтверждения и отправить новую. Доступно, пока эмитент не подтверждён.

POST /issuers/{issuerId}/rotate-code

Ответ

json
{
  "statusCode": 200,
  "info": {
    "sent": true
  }
}

badges.ninja Documentation