Skip to content

API-ul emitenților

Gestionează emitenții credențialelor — organizațiile sau persoanele care acordă credențiale.

Toate endpoint-urile necesită autentificare prin antetul X-Api-Key. Consultă Autentificare.

Creează emitent

Creează un emitent nou.

POST /issuers

Parametri

ParametruTipObligatoriuDescriere
namestringDaDenumirea organizației (minimum 3 caractere)
urlstringDaSite-ul web al organizației (URL HTTP/HTTPS valid)
emailstringDaE-mail de contact al emitentului
logostringNuImagine codificată în Base64 (PNG sau JPG)
linkedinOrganizationIdstringNuID numeric al paginii de companie LinkedIn. Dacă este setat, fiecare pagină publică de acordare a acestui emitent afișează un buton Add to LinkedIn Profile.

Exemplu

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"
    }
  }'

Răspuns

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

Note

  • Se contabilizează în limita de emitenți a planului (Free: 1, Starter: 5, Pro: nelimitat). Fără scădere din alocație.
  • Dacă e-mailul emitentului coincide cu e-mailul contului, este verificat automat.
  • Dacă e-mailul diferă, se trimite un e-mail de verificare la adresa emitentului.

Listează emitenții

Recuperează toți emitenții pe care i-ai creat.

GET /issuers

Exemplu

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

Răspuns

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"
      }
    ]
  }
}

Verifică emitent

Verifică un emitent cu ajutorul codului de verificare trimis la adresa sa de e-mail.

POST /issuers/{issuerId}/verify

Parametri

ParametruTipObligatoriuDescriere
issuerIdstringDaID-ul emitentului (parametru de rută)
codestringDaCodul de verificare primit pe e-mail

Exemplu

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"
    }
  }'

Răspuns

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

Șterge emitent

Șterge un emitent. Emitentul nu trebuie să aibă credențiale.

DELETE /issuers/{issuerId}

Exemplu

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

Răspuns

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

Erori

  • 400 — emitentul are credențiale sau acordări și nu poate fi șters (șterge-le mai întâi)
  • 404 — emitent negăsit

Actualizează emitent

Actualizează câmpurile unui emitent neverificat. După verificare, doar logo și linkedinOrganizationId rămân editabile, pentru a păstra stabilitatea credențialelor.

PUT /issuers/{issuerId}

Parametri

ParametruTipObligatoriuDescriere
issuerIdstringDaID-ul emitentului (parametru de rută)
namestringNuNume nou (doar dacă nu este verificat)
urlstringNuURL nou (doar dacă nu este verificat)
emailstringNuE-mail nou (doar dacă nu este verificat — trimite un nou e-mail de verificare)
logostringNuLogo nou codificat în Base64
linkedinOrganizationIdstringNuNou LinkedIn organization ID (sau șir gol pentru a-l elimina)

Rotește codul de verificare

Invalidează linkul de verificare anterior și trimite unul nou prin e-mail. Valabil doar cât timp emitentul rămâne neverificat.

POST /issuers/{issuerId}/rotate-code

Răspuns

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

badges.ninja Documentation