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