Skip to content

Uitgevers-API

Beheer de uitgevers van badges — de organisaties of personen die badges uitreiken.

Alle endpoints vereisen authenticatie via de X-Api-Key-header. Zie Authenticatie.

Uitgever aanmaken

Maak een nieuwe badge-uitgever aan.

POST /issuers

Parameters

ParameterTypeVerplichtOmschrijving
namestringJaOrganisatienaam (minimaal 3 tekens)
urlstringJaWebsite van de organisatie (moet een geldige HTTP/HTTPS-URL zijn)
emailstringJaContact-e-mailadres van de uitgever
logostringNeeBase64-gecodeerde afbeelding (PNG of JPG)
linkedinOrganizationIdstringNeeNumeriek ID van de LinkedIn-bedrijfspagina. Indien ingesteld toont elke publieke uitreikingspagina van deze uitgever de knop Toevoegen aan LinkedIn-profiel.

Voorbeeld

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

Respons

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

Opmerkingen

  • Telt mee voor de uitgeverslimiet van je abonnement (Free: 1, Starter: 5, Pro: onbeperkt). Geen quotumaftrek.
  • Als het e-mailadres van de uitgever overeenkomt met je account-e-mailadres, wordt de uitgever automatisch geverifieerd.
  • Wijkt het e-mailadres af, dan wordt er een verificatie-e-mail naar het e-mailadres van de uitgever gestuurd.

Uitgevers opvragen

Haal alle uitgevers op die je hebt aangemaakt.

GET /issuers

Voorbeeld

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

Respons

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

Uitgever verifiëren

Verifieer een uitgever met de verificatiecode die naar het e-mailadres is gestuurd.

POST /issuers/{issuerId}/verify

Parameters

ParameterTypeVerplichtOmschrijving
issuerIdstringJaID van de uitgever (path-parameter)
codestringJaDe verificatiecode uit de e-mail

Voorbeeld

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

Respons

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

Uitgever verwijderen

Verwijder een uitgever. De uitgever mag geen badges hebben.

DELETE /issuers/{issuerId}

Voorbeeld

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

Respons

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

Fouten

  • 400 — uitgever heeft badges of uitreikingen en kan niet verwijderd worden (verwijder deze eerst)
  • 404 — uitgever niet gevonden

Uitgever bijwerken

Werk velden bij van een ongeverifieerde uitgever. Zodra een uitgever geverifieerd is, blijven alleen logo en linkedinOrganizationId bewerkbaar om de stabiliteit van referenties te behouden.

PUT /issuers/{issuerId}

Parameters

ParameterTypeVerplichtOmschrijving
issuerIdstringJaID van de uitgever (path-parameter)
namestringNeeNieuwe naam (alleen wanneer ongeverifieerd)
urlstringNeeNieuwe URL (alleen wanneer ongeverifieerd)
emailstringNeeNieuw e-mailadres (alleen wanneer ongeverifieerd — verstuurt een nieuwe verificatie-e-mail)
logostringNeeNieuw base64-gecodeerd logo
linkedinOrganizationIdstringNeeNieuwe LinkedIn-organisatie-ID (of lege string om te wissen)

Verificatiecode roteren

Maak de vorige verificatielink ongeldig en verstuur een nieuwe per e-mail. Alleen geldig zolang de uitgever nog niet geverifieerd is.

POST /issuers/{issuerId}/rotate-code

Respons

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

badges.ninja Documentation