Skip to content

Tildelings-API

Opprett og administrer merketildelinger (assertions) — merker utstedt til spesifikke mottakere.

Alle endepunkter krever autentisering via X-Api-Key-headeren. Se Autentisering.

Opprett tildeling

Utsted et merke til en mottaker.

POST /awards

Parametere

ParameterTypePåkrevdBeskrivelse
badgeIdstringJaMerke-ID-en som skal tildeles
recipientobjectJaMottakerdetaljer (se nedenfor)
recipient.namestringJaMottakerens fulle navn (minst 5 tegn)
recipient.emailstringJaMottakerens e-postadresse
issuedOnstringJaUtstedelsesdato i ISO 8601-format (f.eks. 2025-01-15)
expiresstringNeiUtløpsdato i ISO 8601-format
blockchainstringNeiBlockchain for on-chain-verifisering. Kun matchain støttes. Tilgjengelig i Pro-planen.

Eksempel

bash
curl -X POST https://api.badges.ninja/awards \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "badgeId": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
      "recipient": {
        "name": "Jane Smith",
        "email": "jane@example.com"
      },
      "issuedOn": "2025-01-15"
    }
  }'

Svar

json
{
  "statusCode": 200,
  "info": {
    "awardId": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012"
  }
}

Merknader

  • Teller som én tildeling mot månedskvoten din (Free: 100/md, Starter: 1 000/md, Pro: 10 000/md). Kvoten nullstilles hver faktureringsperiode.
  • Parameteren blockchain er kun tilgjengelig i Pro-planen.

List tildelinger

Hent tildelinger med valgfri filtrering og paginering.

GET /awards

Spørringsparametere

ParameterTypePåkrevdBeskrivelse
filterJSON-strengNeiFilterobjekt (se nedenfor)
lastEvaluatedKeystringNeiPagineringstoken fra et tidligere svar

Filterobjekt

Parameteren filter aksepterer en JSON-streng med disse feltene:

FeltTypeBeskrivelse
badgeIdstringFiltrer etter merke-ID.
searchstringDelstreng å søke etter i enten mottakernavn eller e-poster (se searchField).
searchFieldstringEnten name (standard) eller email — hvilken kolonne som skal søkes.

Paginering via lastEvaluatedKey fungerer med eller uten filtre. Sidestørrelsen er 50.

Eksempel — List alle tildelinger

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

Eksempel — Filtrer etter merke

bash
curl -X GET "https://api.badges.ninja/awards?filter=%7B%22badgeId%22%3A%22b1c2d3e4%22%7D" \
  -H "X-Api-Key: bws_your_api_key_here"

Svar

json
{
  "statusCode": 200,
  "info": {
    "awards": [
      {
        "id": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-...",
        "badge": {
          "id": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
          "name": "JavaScript Fundamentals",
          "image": "https://ipfs.ninja/ipfs/Qm..."
        },
        "recipient": {
          "name": "Jane Smith",
          "email": "jane@example.com"
        },
        "issuedOn": "2025-01-15T00:00:00.000Z",
        "timestamp": "2025-01-15T10:30:00.000Z"
      }
    ],
    "lastEvaluatedKey": "eyJ..."
  }
}

Hvis lastEvaluatedKey finnes i svaret, er det flere resultater. Send den som en spørringsparameter i neste forespørsel for å få neste side.


Send tildelings-e-post

Send et e-postvarsel til en mottaker om tildelingen deres.

POST /awards/{awardId}/send

Parametere

ParameterTypePåkrevdBeskrivelse
awardIdstringJaTildelings-ID (stiparameter og body)
emailstringJaMottakerens e-postadresse

Eksempel

bash
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/send \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
      "email": "jane@example.com"
    }
  }'

Svar

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

Del tildeling

Del en tildeling med flere mottakere via e-post.

POST /awards/{awardId}/share

Parametere

ParameterTypePåkrevdBeskrivelse
awardIdstringJaTildelings-ID (stiparameter og body)
recipientsstringJaKommaadskilt liste med e-postadresser
subjectstringJaE-postens emnelinje
messagestringJaE-postens meldingstekst

Eksempel

bash
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/share \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
      "recipients": "manager@example.com,hr@example.com",
      "subject": "Check out my new badge!",
      "message": "I just earned the JavaScript Fundamentals badge."
    }
  }'

Svar

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

Last ned PDF-sertifikat

Generer et utskriftsklart A4-PDF-sertifikat for en tildeling.

GET /awards/{awardGuid}/pdf

Ingen autentisering kreves — dette endepunktet er offentlig slik at mottakere kan laste ned sitt eget sertifikat.

Eksempel

bash
curl -OJ https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/pdf

Svaret er den binære PDF-en med en Content-Type: application/pdf-header.


Spor tildelingshendelse

Registrer en engasjementshendelse (visning, deling, nedlasting, LinkedIn-legg-til). Brukes av den offentlige tildelingssiden for å fylle engasjementsstatistikk. Ingen autentisering kreves.

POST /awards/{awardGuid}/event

Parametere

ParameterTypePåkrevdBeskrivelse
kindstringJaEn av view, share, download, linkedin_add.
networkstringNeiNår kind=share, det sosiale nettverket: linkedin, twitter, facebook, whatsapp, telegram, email, copy.

Duplikatundertrykking per IP: samme kind fra samme IP telles én gang per 24 timer.

Eksempel

bash
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/event \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"kind": "share", "network": "linkedin"}}'

Hent tildelingsstatistikk

Hent kumulative engasjementstellere for en tildeling.

GET /awards/{awardGuid}/stats

Ingen autentisering kreves.

Svar

json
{
  "statusCode": 200,
  "info": {
    "stats": {
      "views": 142,
      "shares": { "linkedin": 8, "twitter": 2, "email": 1, "copy": 5 },
      "downloads": 3,
      "linkedin_adds": 4
    }
  }
}

badges.ninja Documentation