Skip to content

API Emittenti ​

Gestisci gli emittenti di badge — le organizzazioni o i privati che emettono i badge.

Tutti gli endpoint richiedono l'autenticazione tramite l'header X-Api-Key. Vedi Autenticazione.

Crea emittente ​

Crea un nuovo emittente di badge.

POST /issuers

Parametri ​

ParametroTipoObbligatorioDescrizione
namestringSìNome dell'organizzazione (minimo 3 caratteri)
urlstringSìSito web dell'organizzazione (deve essere un URL HTTP/HTTPS valido)
emailstringSìEmail di contatto dell'emittente
logostringNoImmagine codificata in Base64 (PNG o JPG)
linkedinOrganizationIdstringNoID numerico della pagina aziendale LinkedIn. Se impostato, ogni pagina pubblica delle credenziali di questo emittente mostra un pulsante Add to LinkedIn Profile.

Esempio ​

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

Risposta ​

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

Note ​

  • Conta ai fini del limite di emittenti del tuo piano (Free: 2, Starter: 5, Pro: 10). Nessuna deduzione di quota.
  • Se l'email dell'emittente coincide con l'email del tuo account, l'emittente viene verificato automaticamente.
  • Se l'email è diversa, viene inviata un'email di verifica all'indirizzo dell'emittente.
  • Dopo aver configurato un emittente, usa l'API Credenziali per iniziare a emettere credenziali a suo nome.

Elenca emittenti ​

Recupera tutti gli emittenti che hai creato.

GET /issuers

Esempio ​

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

Risposta ​

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 è un Unix epoch in millisecondi. Quando gli emittenti sono più di quelli che stanno in una pagina, viene restituito anche un lastEvaluatedKey per la paginazione.


Verifica emittente ​

Verifica un emittente usando il codice di verifica inviato alla sua email.

POST /issuers/{issuerId}/verify

Parametri ​

ParametroTipoObbligatorioDescrizione
issuerIdstringSìL'ID dell'emittente (parametro del percorso)
codestringSìIl codice di verifica ricevuto via email

Esempio ​

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

Risposta ​

Una semplice stringa:

json
"issuer has been verified"

Elimina emittente ​

Elimina un emittente. L'emittente non deve avere badge collegati.

DELETE /issuers/{issuerId}

Esempio ​

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

Risposta ​

Una semplice stringa:

json
"issuer has been deleted"

Errori ​

  • 400 — l'emittente ha ancora badge collegati: issuer has {n} badge(s) linked — delete the badges first. L'eliminazione dipende solo dai badge collegati — le credenziali non la bloccano.
  • 404 — emittente non trovato

Aggiorna emittente ​

Aggiorna i campi di un emittente. Possono essere modificati solo gli emittenti non verificati — una volta verificato un emittente, questo endpoint restituisce 400 verified issuers cannot be edited per preservare la stabilità delle credenziali. La modifica di un emittente rigenera il suo codice di verifica: se l'email coincide con l'email del tuo account l'emittente viene riverificato automaticamente, altrimenti viene inviata una nuova email di verifica a quell'indirizzo.

PUT /issuers/{issuerId}

Parametri ​

ParametroTipoObbligatorioDescrizione
issuerIdstringSìL'ID dell'emittente (parametro del percorso)
namestringNoNuovo nome
urlstringNoNuovo URL
emailstringNoNuova email (invia una nuova email di verifica a meno che non coincida con l'email del tuo account)
logostringNoNuovo logo codificato in base64
linkedinOrganizationIdstringNoNuovo ID organizzazione LinkedIn (o stringa vuota per rimuoverlo)

Risposta ​

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

Errori ​

  • 400 — verified issuers cannot be edited (l'emittente è già verificato)
  • 400 — not authorized (l'emittente appartiene a un altro account)
  • 404 — emittente non trovato

badges.ninja Documentation