Skip to content

API Emitenți ​

Gestionează emitenții de insigne — organizațiile sau persoanele care emit insigne.

Toate endpoint-urile necesită autentificare prin antetul X-Api-Key. Vezi Authentication.

Creare emitent ​

Creează un nou emitent de insigne.

POST /issuers

Parametri ​

ParametruTipObligatoriuDescriere
namestringDaNumele organizației (minimum 3 caractere)
urlstringDaSite-ul web al organizației (trebuie să fie un URL HTTP/HTTPS valid)
emailstringDaE-mailul de contact al emitentului
logostringNuImagine codificată Base64 (PNG sau JPG)
linkedinOrganizationIdstringNuID-ul numeric al paginii de companie LinkedIn. Când este setat, fiecare pagină publică de credențiale 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
{
  "issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Note ​

  • Se contorizează în limita de emitenți a planului tău (Free: 2, Starter: 5, Pro: 10). Nu se deduce nicio cotă.
  • Dacă e-mailul emitentului coincide cu e-mailul contului tău, emitentul este verificat automat.
  • Dacă e-mailul este diferit, se trimite un e-mail de verificare la adresa emitentului.
  • După configurarea unui emitent, folosește Credentials API pentru a începe să emiți credențiale sub acel emitent.

Listare emitenți ​

Obține 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
{
  "items": [
    {
      "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": 1736937000000
    }
  ]
}

timestamp este un timp Unix epoch în milisecunde. Când există mai mulți emitenți decât încap pe o pagină, se returnează suplimentar un lastEvaluatedKey pentru paginare.


Verificare emitent ​

Verifică un emitent folosind codul de verificare trimis pe e-mailul acestuia.

POST /issuers/{issuerId}/verify

Parametri ​

ParametruTipObligatoriuDescriere
issuerIdstringDaID-ul emitentului (parametru de cale)
codestringDaCodul de verificare din 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 ​

Un șir simplu:

json
"issuer has been verified"

Ștergere emitent ​

Șterge un emitent. Emitentul nu trebuie să aibă insigne asociate.

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 ​

Un șir simplu:

json
"issuer has been deleted"

Erori ​

  • 400 — emitentul are încă insigne asociate: issuer has {n} badge(s) linked — delete the badges first. Ștergerea depinde doar de insignele asociate — credențialele nu o blochează.
  • 404 — emitentul nu a fost găsit

Actualizare emitent ​

Actualizează câmpurile unui emitent. Pot fi editați doar emitenții neverificați — după ce un emitent este verificat, acest endpoint returnează 400 verified issuers cannot be edited pentru a păstra stabilitatea credențialelor. Editarea unui emitent regenerează codul său de verificare: dacă email coincide cu e-mailul contului tău, emitentul este reverificat automat, altfel se trimite un nou e-mail de verificare la acea adresă.

PUT /issuers/{issuerId}

Parametri ​

ParametruTipObligatoriuDescriere
issuerIdstringDaID-ul emitentului (parametru de cale)
namestringNuNume nou
urlstringNuURL nou
emailstringNuE-mail nou (trimite un nou e-mail de verificare, cu excepția cazului în care coincide cu e-mailul contului tău)
logostringNuLogo nou codificat Base64
linkedinOrganizationIdstringNuNoul ID de organizație LinkedIn (sau șir gol pentru a-l șterge)

Răspuns ​

json
{
  "issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
  "updated": true
}

Erori ​

  • 400 — verified issuers cannot be edited (emitentul este deja verificat)
  • 400 — not authorized (emitentul aparține altui cont)
  • 404 — emitentul nu a fost găsit

badges.ninja Documentation