Żeby wystawiać certyfikaty automatycznie, zaprojektuj jeden szablon, a potem wysyłaj do API imię i nazwisko, nazwę kursu i datę każdego odbiorcy — jedno zapytanie, gdy kursant kończy kurs, albo jedno zlecenie hurtowe dla całej grupy z arkusza. Shareglint zwraca jednostronicowy PDF do druku oraz, z tego samego szablonu, obrazek do udostępnienia w mailu albo na LinkedInie. Wbudowane są cztery szablony certyfikatów (certificate, certification-earned, award-achievement, graduation); możesz też użyć własnego HTML-a i CSS w rozmiarze papieru.
Kilka certyfikatów bez kodu zrobisz w darmowym generatorze certyfikatów: wypełnia szablon w przeglądarce i pobiera gotowy plik.
Szablony
| Szablon | Pola | Do czego |
|---|---|---|
certificate |
name, course, date, issuer, issuer_role, seal, logo… | Ukończenie kursu |
certification-earned |
credential, name, issuer, issued, expires, credential_id, verify_url, skills, badge | Certyfikaty zawodowe z identyfikatorem |
award-achievement |
recipient, award_name, placement, category, issuer, year, photo | Konkursy i nagrody |
graduation |
name, degree, school, class_year, honors, photo, school_logo | Absolwenci i roczniki |
Każdy wbudowany szablon renderuje się w każdym presecie rozmiaru (og 1200×630, square 1080×1080, portrait 1080×1350, story 1080×1920, pinterest 1000×1500, youtube 1280×720) i oprócz swoich pól przyjmuje accent oraz theme (dark albo light), więc ten sam certyfikat wychodzi w kolorze twojej marki jako karta 1200×630 do udostępnienia albo kwadratowy post. Obejrzysz je w galerii szablonów. Do druku skopiuj szablon i ustaw rozmiar papieru: 1123×794 px to A4 w poziomie, 1056×816 px to US Letter w poziomie. Strona PDF ma dokładnie rozmiar szablonu, co wyjaśnia strona o API do generowania PDF.
Jeden certyfikat, gdy kursant kończy kurs
Większość platform LMS i kursowych potrafi wywołać webhook po ukończeniu kursu. Twój handler wysyła jedno zapytanie:
const res = await fetch('https://shareglint.com/v1/images?wait=true', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CERT_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
template: 'certificate',
format: 'pdf',
modifications: {
name: learner.fullName,
course: course.title,
date: new Date().toLocaleDateString('pl-PL', { dateStyle: 'long' }),
issuer: course.instructor,
logo: 'https://example.com/logo.png',
},
}),
});
const { url } = await res.json(); // https://…/img_….pdf
Zapisz url przy zapisie na kurs i wstaw go do maila z gratulacjami. Zapytaj jeszcze raz z "format": "png", żeby dostać obrazek, który ludzie publikują. Długie nazwiska zmniejszają się, żeby się zmieścić, zamiast się zawijać; obrazki, takie jak logo, są pobierane z publicznych adresów w chwili renderowania certyfikatu. Nie wywołuj API z kodu w przeglądarce: klucz stałby się publiczny.
Cała grupa z arkusza
Po bootcampie albo konferencji wyeksportuj uczestników i wyślij jedno zlecenie hurtowe:
curl -X POST "https://shareglint.com/v1/batches" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"template": "certificate",
"format": "pdf",
"csv_url": "https://docs.google.com/spreadsheets/d/…/edit?usp=sharing"
}'
Kolumny nazwane tak jak pola (name, course, date, issuer) przypisują się same; pozostałe przypiszesz przez columns. Kolumna filename nadaje nazwę każdemu PDF-owi w ZIP-ie (amelia-nowak.pdf), a id wraca przy wyniku każdego wiersza, więc łatwo dopasujesz certyfikaty do osób. GET /v1/batches/{id} podaje postęp, a po zakończeniu każdy adres i jedno archiwum ZIP. Limit wierszy na zlecenie według planu: Free 50, Starter 500, Pro 1 000, Scale 2 000, Business 5 000. Jeśli poprawisz literówkę i uruchomisz zlecenie jeszcze raz, nowymi renderami będą tylko zmienione wiersze; niezmienione zwrócą istniejące pliki za darmo. Formaty CSV opisuje poradnik o renderowaniu hurtowym (po angielsku).
Strona Bulk w panelu robi to samo bez kodu — wgrywasz CSV albo wklejasz link do arkusza, przypisujesz kolumny, za darmo podglądasz pierwsze certyfikaty i pobierasz ZIP. Asystent AI podłączony do serwera MCP uruchomi to z czatu przez create_batch.
Linki w mailu zamiast plików
Nie musisz renderować certyfikatów przed wysyłką. Podpisany adres (/i/…/certificate.pdf?name=…&course=…&s=…, podpisany twoim sekretem do podpisów) to kompletny link, który renderuje PDF przy pierwszym otwarciu, a potem serwuje plik z pamięci podręcznej. Wstaw go do szablonu maila w swoim narzędziu do mailingu z polami odbiorcy, a limit zużyją tylko certyfikaty, które ktoś otworzy. Podpis obejmuje każde pole, więc odbiorca nie zmieni nazwiska w linku. Dokumentacja pokazuje, jak podpisywać adresy w każdym języku.
Weryfikacja i udostępnianie
Przy certyfikatach, które ludzie wpisują do CV, użyj certification-earned: jego credential_id i verify_url drukują się na certyfikacie i wskazują stronę w twoim serwisie, która potwierdza uprawnienie. My renderujemy ten link; strona weryfikacji i rekord za nią należą do ciebie. Na LinkedIn ludzie dołączają do posta PNG z tego samego szablonu. Wpis w sekcji Licencje i certyfikaty na profilu dodaje sam użytkownik; jako wystawca certyfikatów możesz udostępnić przycisk LinkedIna Add to Profile, który wypełnia go za niego — razem z identyfikatorem i adresem certyfikatu, więc trafia tam twoja strona weryfikacji (Pomoc LinkedIn).
Ile to kosztuje
Każdy certyfikat to jeden render na format: grupa 300 osób w PDF-ie to 300 renderów, a wersje PNG kolejne 300. Plan Free ma 100 renderów miesięcznie ze znakiem wodnym — wystarczy, żeby zaprojektować i przetestować szablon, ale nie do wystawiania prawdziwych certyfikatów. Starter kosztuje $9 miesięcznie za 2 000 renderów bez znaku wodnego ($4,50 za 1000), a jednorazowa paczka 1 000 renderów za $8 pokryje miesiąc rozdania dyplomów bez zmiany planu. Cennik porównuje to z narzędziami do certyfikatów od Bannerbear, Placid i innych.
Czego nie robi
- Nie wysyła maili i nie prowadzi portalu z certyfikatami; adres dostarcza twoja platforma kursowa albo narzędzie do mailingu.
- Każdy PDF ma jedną stronę. Certyfikat z wykazem ocen na drugiej stronie wymaga narzędzia do dokumentów.
- Kroje pisma to zainstalowane rodziny; własnego pliku z fontem nie wgrasz. Font do szablonu wybierz z
GET /v1/fonts. - Nie przechowujemy ani nie weryfikujemy uprawnień —
verify_urljest drukowany, a nie sprawdzany.