API v1.0.0
eDofinansowania API dla partnerów
API dla partnerów handlowych. Pozwala pobrać katalog dotacji do własnego systemu, dopasować dotacje do profilu klienta i przeprowadzić pełne sprawdzenie kwalifikowalności.
Szybki start
curl 'https://edofinansowania.pl/api/v1/grants?voivodeship=mazowieckie&installationTypes=PV' \
-H 'Authorization: Bearer sk_live_TWOJ_KLUCZ'{
"data": [
{
"grantCode": "FENG-EKO",
"title": "Kredyt ekologiczny",
"fundingAmount": "do 80% kosztów kwalifikowanych",
"applicationDeadline": "2026-09-30",
"eligibleInstallations": ["PV", "Heat Pump"],
"hasEligibilityEngine": true
}
],
"pagination": { "hasMore": false, "nextCursor": null }
}Odpowiedzi w skrócie
- Adres bazowy
- https://edofinansowania.pl/api
- Uwierzytelnianie
- Authorization: Bearer sk_live_... (albo nagłówek X-API-Key)
- Limit
- 60 zapytań na minutę, pula miesięczna ustalana per partner
- Format błędów
- RFC 9457 Problem Details, application/problem+json
- Wersjonowanie
- Wersja w ścieżce (/v1). Wycofanie zapowiadamy nagłówkami Deprecation i Sunset z 6-miesięcznym wyprzedzeniem.
Uwierzytelnianie
Klucze API i limity zapytań.
GET/v1/health
Sprawdzenie dostępności API
Najprostszy sposób na potwierdzenie, że klucz działa. Wymaga klucza, tak jak każdy inny endpoint.
curl -X GET 'https://edofinansowania.pl/api/v1/health' \
-H 'Authorization: Bearer sk_live_TWOJ_KLUCZ'Odpowiedzi
- 200
- API odpowiada.
- 401
- Brak klucza albo klucz nieprawidłowy, odwołany lub wygasły.
Dotacje
Katalog dotacji i szczegóły pojedynczej dotacji.
GET/v1/grants
Katalog dotacji
Zwraca dotacje otwarte na dziś, posortowane po terminie naboru. Do synchronizacji katalogu u siebie użyj `updatedSince` i zapisz `nextCursor`. Odpowiedź niesie `ETag` - odesłanie go w `If-None-Match` zwróci 304 bez treści.
Parametry
voivodeshipstring · zapytanie- Województwo klienta. Dotacje ogólnopolskie pasują do każdego.
companySizestring · zapytanie- Wielkość firmy klienta.
installationTypesstring · zapytanie- Rodzaje instalacji po przecinku. Dopasowanie na zasadzie LUB.
limitinteger · zapytanie- Ile wyników na stronę. Domyślnie 50, maksymalnie 200.
cursorstring · zapytanie- Wartość `nextCursor` z poprzedniej odpowiedzi. Nie twórz go samodzielnie - jest nieprzezroczysty, żeby sortowanie mogło się zmienić bez psucia Twojej integracji.
updatedSincestring · zapytanie- Tylko dotacje zmienione po tej dacie (ISO 8601).
If-None-Matchstring · nagłówek- ETag z poprzedniej odpowiedzi. Jeśli katalog się nie zmienił, odpowiedź to 304 bez treści.
X-If-None-Matchstring · nagłówek- To samo co If-None-Match. Użyj tego nagłówka, jeśli łączysz się przez edofinansowania.pl/api - warstwa proxy nie przekazuje standardowego If-None-Match do serwera.
curl -X GET 'https://edofinansowania.pl/api/v1/grants?voivodeship=mazowieckie&companySize=ma%C5%82e&installationTypes=PV%2CHeat%20Pump&updatedSince=2026-07-01T00%3A00%3A00Z' \
-H 'Authorization: Bearer sk_live_TWOJ_KLUCZ'Odpowiedzi
- 200
- Strona wyników.
- 304
- Katalog nie zmienił się od czasu podanego ETag. Bez treści. Uwaga: 304 nadal liczy się do limitu. Przez edofinansowania.pl/api użyj nagłówka X-If-None-Match.
- 400
- Nieprawidłowe zapytanie - odpowiedź zawiera listę dozwolonych wartości.
- 401
- Brak klucza albo klucz nieprawidłowy, odwołany lub wygasły.
- 429
- Przekroczony limit. Nagłówek Retry-After mówi, kiedy ponowić.
GET/v1/grants/{id}
Szczegóły dotacji
Pełna treść: warunki, dokumenty, FAQ, harmonogram. Identyfikatorem może być UUID albo kod dotacji. Zwraca też dotacje po terminie, z polem `isOpen: false` - CRM trzymający starą referencję dostaje odpowiedź, a nie 404.
Parametry
idstring · w ścieżce · wymagany- UUID albo kod dotacji.
curl -X GET 'https://edofinansowania.pl/api/v1/grants/FENG-EKO' \
-H 'Authorization: Bearer sk_live_TWOJ_KLUCZ'Odpowiedzi
- 200
- Dotacja.
- 401
- Brak klucza albo klucz nieprawidłowy, odwołany lub wygasły.
- 404
- Nie znaleziono zasobu.
- 429
- Przekroczony limit. Nagłówek Retry-After mówi, kiedy ponowić.
Kwalifikowalność
Dopasowanie po profilu firmy i pełny silnik pytań.
POST/v1/eligibility/check
Dopasowanie dotacji do profilu klienta
Wysyłasz to, co i tak masz w CRM, dostajesz listę pasujących dotacji z powodem dopasowania. Kryterium, którego nie podałeś, ma `matched: null` - to znaczy "nie sprawdzaliśmy", a nie "przeszło".
curl -X POST 'https://edofinansowania.pl/api/v1/eligibility/check' \
-H 'Authorization: Bearer sk_live_TWOJ_KLUCZ' \
-H 'Content-Type: application/json' \
-d '{"voivodeship":"mazowieckie","companySize":"małe","installationTypes":["PV"]}'Odpowiedzi
- 200
- Dopasowane dotacje.
- 400
- Nieprawidłowe zapytanie - odpowiedź zawiera listę dozwolonych wartości.
- 401
- Brak klucza albo klucz nieprawidłowy, odwołany lub wygasły.
- 429
- Przekroczony limit. Nagłówek Retry-After mówi, kiedy ponowić.
POST/v1/eligibility/run
Pełne sprawdzenie kwalifikowalności
Bezstanowe. Wysyłasz wszystkie zebrane dotąd odpowiedzi, dostajesz albo następne pytanie, albo werdykt. Pętlę prowadzi Twój system - my nie trzymamy sesji.
curl -X POST 'https://edofinansowania.pl/api/v1/eligibility/run' \
-H 'Authorization: Bearer sk_live_TWOJ_KLUCZ' \
-H 'Content-Type: application/json' \
-d '{"grantId":"FENG-EKO","answers":{"q1":"Tak"}}'Odpowiedzi
- 200
- Następne pytanie albo werdykt.
- 400
- Nieprawidłowe zapytanie - odpowiedź zawiera listę dozwolonych wartości.
- 401
- Brak klucza albo klucz nieprawidłowy, odwołany lub wygasły.
- 404
- Nie znaleziono zasobu.
- 422
- Zapytanie poprawne składniowo, ale niespójne.
- 429
- Przekroczony limit. Nagłówek Retry-After mówi, kiedy ponowić.
Słowniki
Dozwolone wartości filtrów.
GET/v1/meta/vocabularies
Dozwolone wartości filtrów
Zbuduj z tego listy wyboru w swoim CRM. Rodzaje instalacji mają wartość techniczną (`value`), którą wysyłasz, i polską etykietę (`label`), którą pokazujesz handlowcowi.
curl -X GET 'https://edofinansowania.pl/api/v1/meta/vocabularies' \
-H 'Authorization: Bearer sk_live_TWOJ_KLUCZ'Odpowiedzi
- 200
- Słowniki.
- 401
- Brak klucza albo klucz nieprawidłowy, odwołany lub wygasły.
- 429
- Przekroczony limit. Nagłówek Retry-After mówi, kiedy ponowić.
Kontrakt maszynowy
Ta strona jest renderowana z dokumentu OpenAPI 3.1, a test w naszym CI porównuje ten dokument z faktycznie zaimplementowanymi trasami. Jeśli coś tu przeczytasz, to tak właśnie działa API. Plik nadaje się do wrzucenia w Postmana albo generator klienta.