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

zapytanie
curl 'https://edofinansowania.pl/api/v1/grants?voivodeship=mazowieckie&installationTypes=PV' \
  -H 'Authorization: Bearer sk_live_TWOJ_KLUCZ'
odpowiedź
{
  "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 }
}
nabór do 2026-09-30zostało 61 dni

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.

openapi.json