API dla
pracodawców.
// publikuj oferty programowo · JSON · Bearer token
Masz ATS, system HR lub własne narzędzia rekrutacyjne? Podłącz je do 2hr.pl przez REST API i publikuj oferty bezpośrednio - bez ręcznego dodawania, bez kopii i wklejania. Oferty trafiają do kandydatów z widełkami w ciągu sekund.
// co możesz zrobić przez API
- Zarządzaj firmami - utwórz profil firmy z logo i opisem, aktualizuj dane
- Publikuj oferty - tytuł, lokalizacja, opis, widełki, link do aplikowania, typ zatrudnienia
- Aktualizuj i zamykaj - edytuj treść oferty lub ustaw status na
endedkiedy stanowisko obsadzone - Pobieraj listę - GET /jobs zwraca wszystkie aktywne oferty powiązane z Twoim kontem
// jak zacząć
- Wyślij zgłoszenie - wypełnij formularz na api.2hr.pl/register/. Możesz zgłosić się jako osoba prywatna lub firma (wymagany NIP).
- Token po weryfikacji - po weryfikacji zgłoszenia (1-2 dni robocze) token dostaniesz e-mailem. Zachowaj go - nie możemy go odtworzyć.
- Użyj Bearer token - dodaj nagłówek
Authorization: Bearer <token>do każdego żądania. - Opublikuj pierwszą ofertę - POST /api/v1/jobs z JSON-em zawierającym tytuł, lokalizację, opis, widełki i link.
// szybki start - przykłady curl
Utwórz firmę:
curl -X POST https://api.2hr.pl/api/v1/companies \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Sp. z o.o.",
"website": "https://acme.pl",
"logo_url": "https://acme.pl/logo.png"
}'
Opublikuj ofertę:
curl -X POST https://api.2hr.pl/api/v1/jobs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Senior PHP Developer",
"location": "Warszawa / Zdalna",
"snippet": "Szukamy doświadczonego PHP developera do zespołu produktowego.",
"link": "https://acme.pl/kariera/php",
"company_uuid": "TWOJ_COMPANY_UUID",
"type": "full-time",
"salary": {
"type": "monthly",
"min": 14000,
"max": 20000,
"currency": "PLN"
}
}'
Zamknij ofertę:
curl -X PUT https://api.2hr.pl/api/v1/jobs/UUID_OFERTY/status \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "ended"}'
// limity i szczegóły techniczne
- Rate limit: 10 żądań / minutę na token. Przekroczenie zwraca HTTP 429 z polem
retry_after. - Format: JSON dla wszystkich żądań i odpowiedzi. Wymagany nagłówek
Content-Type: application/json. - Widełki wymagane: pola
salary.minisalary.maxsą obowiązkowe - oferty bez wynagrodzenia nie trafiają do kandydatów. - Przetwarzanie asynchroniczne: POST /jobs zwraca HTTP 202 natychmiast. Status zmienia się z
pendingnapublishedw ciągu kilku sekund. - Protokół: tylko HTTPS.
// cykl życia oferty
Oferta przechodzi przez stany: pending → published (lub requires_review → published po weryfikacji moderatora). Ręcznie możesz ustawić status ended gdy stanowisko obsadzone. Stany failed, ended, rejected są terminalne.
Pełna dokumentacja API →
Wszystkie endpointy, schematy JSON, kody błędów i przykłady odpowiedzi.
Pytania? kontakt@2hr.pl