Przejdź do treści
Świadectwo Energetyczne 24
Dla deweloperów i asystentów AI

Publiczne API i serwer MCP

Udostępniamy aktualny cennik świadectw charakterystyki energetycznej, FAQ i listę obsługiwanych miast jako darmowe API JSON — bez klucza, bez rejestracji, z otwartym CORS. Osobno działa serwer MCP, przez który asystent AI może złożyć zamówienie w imieniu klienta, oraz API partnerów dla systemów CRM i portali ogłoszeniowych.

Autoryzacja
Brak — endpointy otwarte
Format
JSON, UTF-8, język polski
Cache
1 h w przeglądarce, 24 h na CDN

Zasady korzystania

  • Bez klucza i bez limitu. Endpointy tylko-do-odczytu odpowiadają na zwykłe GET i obsługują OPTIONS (preflight). Odpowiedź jest cache'owana, więc nie ma sensu odpytywać ich częściej niż raz na godzinę.
  • Podaj źródło. Możesz wykorzystać te dane u siebie, jeśli wskażesz źródło linkiem do swiadectwo-energetyczne24.pl. Nie podawaj naszej oferty jako własnej.
  • Ceny się zmieniają. basePricePln to zawsze aktualna cena brutto z VAT. Jeśli pokazujesz ceny u siebie, pobieraj je z API zamiast przepisywać — inaczej Twoja strona pokaże nieaktualną kwotę.
  • Bez wersjonowania, bez SLA. Nowe pola dopisujemy tak, żeby nie psuć istniejących integracji; o usunięciu pola uprzedzimy na tej stronie. Nie gwarantujemy dostępności — przy krytycznej integracji napisz na kontakt@swiadectwo-energetyczne24.pl.

Cennik świadectw

GEThttps://swiadectwo-energetyczne24.pl/api/pricingOtwórz ↗

Aktualne ceny brutto dla każdego typu nieruchomości, opcje dodatkowe, czas realizacji i lista tego, co jest w cenie. To ten sam cennik, który widzi klient w kalkulatorze ceny.

PoleTypOpis
currencystringWaluta cen — zawsze PLN.
pricesIncludeVatbooleanZawsze true: wszystkie kwoty są brutto, z VAT.
propertyTypes[]arrayslug, label, basePricePln, description, orderUrl — jeden wpis na typ nieruchomości.
addons[]arraykey, label, pricePln, description — dopłaty doliczane do ceny bazowej.
leadTimeobjectCzas realizacji.
included[]string[]Co zawiera cena (m.in. wpis do rejestru CHEB).
contactobjectE-mail i telefon do obsługi klienta.
linksobjectAdresy powiązanych narzędzi i pozostałych endpointów.
curl
curl -s https://swiadectwo-energetyczne24.pl/api/pricing | jq '.propertyTypes[] | {slug, basePricePln}'
Odpowiedź 200 OK
{
  "service": "Świadectwo charakterystyki energetycznej — 100% online",
  "provider": "Świadectwo Energetyczne 24",
  "currency": "PLN",
  "pricesIncludeVat": true,
  "serviceArea": "Polska (zamówienie online, bez dopłat za lokalizację)",
  "propertyTypes": [
    {
      "slug": "mieszkanie",
      "label": "Mieszkanie",
      "basePricePln": 119,
      "description": "Świadectwo dla mieszkania w bloku, kamienicy lub apartamentowcu.",
      "orderUrl": "https://swiadectwo-energetyczne24.pl/zamow/mieszkanie"
    }
  ],
  "addons": [
    {
      "key": "paperVersion",
      "label": "Wersja papierowa (wydruk)",
      "pricePln": 59,
      "description": "Wydruk świadectwa ze stroną z kodem QR do oryginału, wysłany na wskazany adres. Oryginałem zawsze jest plik PDF z podpisem elektronicznym."
    }
  ],
  "leadTime": {
    "standard": "do 24 h"
  },
  "included": [
    "Sporządzenie przez audytora z uprawnieniami",
    "Podpis elektroniczny"
  ],
  "contact": {
    "email": "kontakt@swiadectwo-energetyczne24.pl",
    "phone": "+48796437057"
  },
  "links": {
    "documentation": "https://swiadectwo-energetyczne24.pl/api",
    "priceCalculator": "https://swiadectwo-energetyczne24.pl/kalkulator-ceny",
    "needCheck": "https://swiadectwo-energetyczne24.pl/czy-potrzebuje-swiadectwa",
    "faqApi": "https://swiadectwo-energetyczne24.pl/api/faq",
    "citiesApi": "https://swiadectwo-energetyczne24.pl/api/cities",
    "mcpServer": "https://swiadectwo-energetyczne24.pl/api/mcp"
  }
}
Przykład skrócony (propertyTypes: 1 z 4, included: 2 z 4) — pełną odpowiedź zobaczysz pod adresem endpointu.

Pytania i odpowiedzi

GEThttps://swiadectwo-energetyczne24.pl/api/faqOtwórz ↗

Wszystkie pytania i odpowiedzi z serwisu w jednym miejscu: FAQ ze strony głównej plus FAQ dołączone do artykułów poradnika. Każdy wpis ma sourceUrl — adres strony, z której pochodzi odpowiedź, więc asystent AI może podać źródło.

PoleTypOpis
languagestringJęzyk treści — pl-PL.
countnumberLiczba pozycji w tablicy faq.
faq[].questionstringPytanie w brzmieniu ze strony.
faq[].answerstringPełna odpowiedź, zwykły tekst bez HTML.
faq[].sourceUrlstringAdres strony, na której odpowiedź jest opublikowana.
curl
curl -s https://swiadectwo-energetyczne24.pl/api/faq | jq '.faq[0]'
Odpowiedź 200 OK
{
  "provider": "Świadectwo Energetyczne 24",
  "language": "pl-PL",
  "count": 138,
  "faq": [
    {
      "question": "Czym jest świadectwo energetyczne?",
      "answer": "To dokument, który określa zapotrzebowanie na energię niezbędną do użytkowania budynku. Pozwala ocenić efektywność energetyczną nieruchomości i jest wymagany prawnie przy sprzedaży lub wynajmie.",
      "sourceUrl": "https://swiadectwo-energetyczne24.pl/#faq"
    }
  ],
  "links": {
    "documentation": "https://swiadectwo-energetyczne24.pl/api",
    "guide": "https://swiadectwo-energetyczne24.pl/poradnik",
    "pricingApi": "https://swiadectwo-energetyczne24.pl/api/pricing"
  }
}
Przykład skrócony (faq: 1 z 138) — pełną odpowiedź zobaczysz pod adresem endpointu.

Obsługiwane miasta

GEThttps://swiadectwo-energetyczne24.pl/api/citiesOtwórz ↗

Lista miast z dedykowaną stroną usługi wraz z województwem. Obsługujemy całą Polskę w jednakowych cenach — te strony są punktem wejścia dla klientów szukających lokalnie, a nie osobnym cennikiem.

PoleTypOpis
countnumberLiczba miast na liście.
cities[].namestringNazwa miasta.
cities[].slugstringIdentyfikator w adresie strony miasta.
cities[].voivodeshipstringWojewództwo (pełna nazwa po polsku).
cities[].urlstringAdres strony usługi w tym mieście.
curl
curl -s https://swiadectwo-energetyczne24.pl/api/cities | jq '.cities[] | select(.voivodeship == "mazowieckie")'
Odpowiedź 200 OK
{
  "provider": "Świadectwo Energetyczne 24",
  "serviceArea": "Polska (zamówienie online, jednolite ceny bez dopłat za lokalizację)",
  "count": 60,
  "cities": [
    {
      "name": "Warszawa",
      "slug": "warszawa",
      "voivodeship": "mazowieckie",
      "url": "https://swiadectwo-energetyczne24.pl/swiadectwo-energetyczne/warszawa"
    },
    {
      "name": "Kraków",
      "slug": "krakow",
      "voivodeship": "małopolskie",
      "url": "https://swiadectwo-energetyczne24.pl/swiadectwo-energetyczne/krakow"
    }
  ],
  "links": {
    "documentation": "https://swiadectwo-energetyczne24.pl/api",
    "allCities": "https://swiadectwo-energetyczne24.pl/swiadectwo-energetyczne",
    "pricingApi": "https://swiadectwo-energetyczne24.pl/api/pricing"
  }
}
Przykład skrócony (cities: 2 z 60) — pełną odpowiedź zobaczysz pod adresem endpointu.

Serwer MCP — zamówienie przez asystenta AI

POSThttps://swiadectwo-energetyczne24.pl/api/mcp

Serwer Model Context Protocol (transport Streamable HTTP, bezstanowy). Pozwala agentowi AI zebrać dane nieruchomości, sprawdzić czego brakuje, wycenić zamówienie, dołączyć dokumenty i wygenerować link do płatności. Endpoint jest publiczny, limit 60 żądań na 10 minut z jednego adresu IP.

Granica jest twarda: agent nigdy nie przyjmuje danych karty ani zgód prawnych i nie liczy ceny sam. Zgody RODO, akceptację regulaminu i płatność wykonuje człowiek pod wygenerowanym linkiem. Każde zamówienie chroni własny access_token zwracany tylko raz — samo order_id nie otwiera niczego.

Podłączenie klienta MCP

W Claude Desktop, Claude Code lub innym kliencie MCP wystarczy adres serwera — bez tokenu:

Konfiguracja klienta MCP
{
  "mcpServers": {
    "swiadectwo-energetyczne24": {
      "type": "http",
      "url": "https://swiadectwo-energetyczne24.pl/api/mcp"
    }
  }
}

Klient, który uruchamia serwery MCP lokalnie jako proces (transport stdio), korzysta z paczki npm swiadectwo-energetyczne24-mcp. Paczka przekazuje każde wywołanie pod ten sam adres, więc narzędzia, pytania i ceny są identyczne:

Claude Code
claude mcp add swiadectwo-energetyczne24 -- npx -y swiadectwo-energetyczne24-mcp
Konfiguracja klienta MCP (stdio)
{
  "mcpServers": {
    "swiadectwo-energetyczne24": {
      "command": "npx",
      "args": [
        "-y",
        "swiadectwo-energetyczne24-mcp"
      ]
    }
  }
}

Kod paczki jest otwarty na licencji MIT: repozytorium na GitHubie. W oficjalnym rejestrze MCP serwer figuruje pod nazwą pl.swiadectwo-energetyczne24/zamowienia.

Narzędzia serwera

NarzędzieCo robi
get_certificate_optionsTypy nieruchomości z cenami bazowymi, opcja dodatkowa (wersja papierowa) i dozwolone wartości pól.
get_certificate_informationInformacje o usłudze: czas realizacji, co jest w cenie, podstawa prawna.
create_certificate_orderZakłada zamówienie i zwraca access_token — jedyny raz, więc agent musi go zapamiętać.
get_certificate_order_requirementsMówi, czego jeszcze brakuje, żeby zamówienie dało się opłacić.
update_certificate_orderUzupełnia dane zamówienia (adres, dane techniczne, kontakt).
get_certificate_orderZwraca zebrane dane zamówienia (wymaga order_id + access_token).
get_certificate_order_statusStatus zamówienia — także po opłaceniu, gdy dane są już zamrożone.
calculate_certificate_priceLiczy cenę po stronie serwera; agent nigdy nie wylicza jej sam.
get_payment_linkBezpieczny link, pod którym klient akceptuje zgody i płaci.
create_document_upload_urlAdres presigned PUT do wgrania dokumentu prosto do naszego magazynu.
add_property_documentPodpina wgrany plik (rzut, zdjęcie elewacji) pod zamówienie.

Pełny przebieg rozmowy z agentem opisaliśmy w poradniku: jak zamówić świadectwo energetyczne przez AI.

API partnerów — zamówienie z systemu CRM lub portalu

POSThttps://swiadectwo-energetyczne24.pl/api/v1/orders

Dla dostawców oprogramowania biur nieruchomości, portali ogłoszeniowych i biur z własnym systemem. Agent klika „Zamów świadectwo” przy ofercie, Twój system wysyła nam dane oferty, a my zwracamy formularz już nimi wypełniony. Po wydaniu świadectwa pobierasz wskaźniki do ogłoszenia, numer świadectwa i plik PDF.

  1. Zamówienie. POST /api/v1/orders z danymi oferty. Wystarczy typ nieruchomości — każde kolejne pole to mniej wpisywania dla klienta.
  2. Formularz. Otwierasz form_url w nowej karcie albo embed_url w ramce. Klient albo agent uzupełnia braki, dodaje zdjęcie budynku, akceptuje zgody i płaci online.
  3. Wynik. GET /api/v1/orders/{id} zwraca status. Gdy świadectwo jest wysłane, pole certificate ma komplet wskaźników i gotowy akapit do opisu ogłoszenia.
Klucz jest sekretem serwera. Każde żądanie wymaga nagłówka Authorization: Bearer <klucz>. API nie wysyła nagłówków CORS, więc nie wywołasz go z przeglądarki — i dobrze, bo klucz nie może trafić do kodu strony. Klucz wydajemy po podpisaniu umowy partnerskiej: napisz na kontakt@swiadectwo-energetyczne24.pl.

Endpointy

EndpointCo robi
GET /api/v1/meTest połączenia: partner, zakresy klucza i ceny, po których sprzedajesz.
GET /api/v1/fields/{typ}Pola formularza dla typu nieruchomości: ścieżka, typ i dozwolone wartości. Do jednorazowego zmapowania pól oferty.
POST /api/v1/ordersNowe zamówienie z danymi oferty. Zwraca link do formularza i listę braków.
GET /api/v1/ordersLista zamówień; filtr external_id znajduje zamówienia dla oferty.
GET /api/v1/orders/{id}Status, a po wysłaniu świadectwa wskaźniki, numer i akapit do ogłoszenia.
PATCH /api/v1/orders/{id}Uzupełnienie danych, dopóki klient nie złożył zamówienia.
GET /api/v1/orders/{id}/certificatePlik PDF świadectwa. Wymaga klucza z zakresem pdf.

Specyfikacja OpenAPI 3.1 API partnerów: https://swiadectwo-energetyczne24.pl/api/v1/openapi.json

Zamówienie z danymi oferty

Żądanie
curl -X POST https://swiadectwo-energetyczne24.pl/api/v1/orders \
  -H "Authorization: Bearer $SE24_KLUCZ" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: oferta-OF-1001" \
  -d '{"property_type":"mieszkanie","external_id":"OF-1001","agent_code":"AK12","customer":{"first_name":"Jan","last_name":"Kowalski","email":"jan@example.com"},"address":{"street":"Leśna","building_number":"12","apartment_number":"4","postal_code":"55-050","city":"Sobótka"},"property":{"area_m2":54.2,"year_built":2008},"fields":[{"path":"heating.heating","value":"Sieć miejska"}]}'
Odpowiedź 201 Created
{
  "id": "6f0c2d5e-8a3b-4c1d-9e7f-2b4a6c8d0e1f",
  "external_id": "OF-1001",
  "agent_code": "AK12",
  "property_type": "mieszkanie",
  "status": "requires_information",
  "payment_status": "not_started",
  "certificate_status": "not_started",
  "missing_fields": [
    "details.floor",
    "heating.hotWater",
    "windows.panes"
  ],
  "price": {
    "currency": "PLN",
    "net": 104.88,
    "vat": 24.12,
    "gross": 129,
    "vat_rate": 0.23,
    "items": []
  },
  "form_url": "https://swiadectwo-energetyczne24.pl/p/biuro-kowalski/szkic/…",
  "embed_url": "https://swiadectwo-energetyczne24.pl/p/biuro-kowalski/szkic/…?embed=1",
  "created_at": "2026-10-01T09:15:00.000Z",
  "updated_at": "2026-10-01T09:15:00.000Z",
  "expires_at": "2026-10-31T09:15:00.000Z"
}
Adresy formularza i lista braków skrócone. Cena to cena partnera: biuro sprzedaje po swojej cenie, partner polecający po cenie ze strony.
PoleTypOpis
property_typestringWymagane. mieszkanie, dom, lokal-uzytkowy albo budynek-nieogrzewany.
external_idstringIdentyfikator oferty w Twoim systemie — po nim znajdziesz zamówienie.
agent_codestringKod agenta biura. Zamówienie i prowizja trafią do tego agenta.
customerobjectImię, nazwisko, e-mail i telefon klienta. Klient może je poprawić w formularzu.
addressobjectUlica, numer budynku i lokalu, kod pocztowy, miejscowość.
propertyobjectPowierzchnia (area_m2), wysokość pomieszczeń (height_m), rok budowy (year_built).
fieldsarrayPozostałe pola formularza jako pary path i value. Listę pól podaje GET /api/v1/fields/{typ}.
optionsobjectpaper_version — wersja papierowa doliczana do ceny.
send_invitationbooleanWyślij klientowi e-mail z linkiem w imieniu biura. Wymaga customer_consent: true.

Formularz w ramce

Adres embed_url można osadzić w oknie swojego systemu. Bramka płatnicza nie otwiera się w ramce, więc po złożeniu zamówienia formularz pokazuje przycisk przejścia do płatności w pełnym oknie.

Osadzenie
<iframe src="{embed_url}" style="width:100%;height:900px;border:0" title="Zamówienie świadectwa energetycznego"></iframe>

Wynik po wydaniu świadectwa

GET /api/v1/orders/{id} — odpowiedź 200 OK (skrócona)
{
  "id": "6f0c2d5e-8a3b-4c1d-9e7f-2b4a6c8d0e1f",
  "external_id": "OF-1001",
  "status": "completed",
  "payment_status": "paid",
  "certificate_status": "sent",
  "certificate": {
    "number": "SCHE/10388/2026/1000",
    "issued_on": "2026-10-02",
    "sent_at": "2026-10-02T14:05:00.000Z",
    "indicators": {
      "eu_kwh_m2_year": 58.4,
      "ek_kwh_m2_year": 71.25,
      "ep_kwh_m2_year": 85.5,
      "renewable_share_percent": 0,
      "co2_emission_t_m2_year": 0.01834
    },
    "listing_text": "Świadectwo charakterystyki energetycznej nr SCHE/10388/2026/1000: EU 58,40 kWh/(m²·rok), EK 71,25 kWh/(m²·rok), EP 85,50 kWh/(m²·rok), udział OZE 0,00%, emisja CO₂ 0,01834 t CO₂/(m²·rok).",
    "pdf_url": "https://swiadectwo-energetyczne24.pl/api/v1/orders/6f0c2d5e-8a3b-4c1d-9e7f-2b4a6c8d0e1f/certificate"
  }
}
Pole certificate jest puste (null), dopóki świadectwo nie zostało wysłane klientowi. Wiążący jest dokument PDF.

Pole listing_text to gotowy akapit z pięcioma wskaźnikami, które podaje się w ogłoszeniu sprzedaży lub najmu, gdy świadectwo już istnieje. API nie wysyła powiadomień — stan sprawdzasz zapytaniem, np. raz na godzinę dla zamówień w toku. Limit: 120 żądań na minutę na klucz i 300 nowych zamówień na godzinę.

Błąd ma zawsze postać { "error": { "code", "message", "field" } }. Kody: UNAUTHORIZED (401), FORBIDDEN (403), NOT_FOUND (404), CONFLICT i NOT_READY (409), EXPIRED (410), VALIDATION_ERROR (422), RATE_LIMITED (429).

Czego API nie udostępnia

  • Wyszukiwarki rejestru CHEB. Endpointy pod /api/swiadectwa/ obsługują wyłącznie naszą wyszukiwarkę świadectw — przyjmują żądania tylko z tej domeny i mają limit zapytań. Surowe dane rejestru są jednak publiczne: Ministerstwo Rozwoju i Technologii udostępnia je na dane.gov.pl na licencji CC0.
  • Danych zamówień i klientów. Zamówienie widać wyłącznie z jego access_token (MCP), z linku do statusu, który klient dostaje mailem, albo kluczem partnera, który je założył przez API partnerów. Partner nie widzi zamówień złożonych inną drogą.
  • Wyliczeń świadectwa. Silnik obliczeniowy nie jest wystawiony na zewnątrz. Orientacyjne wskaźniki policzysz w bezpłatnym kalkulatorze EP, EK i EU.

Najczęstsze pytania o API

Czy API jest darmowe i czy potrzebuję klucza?

Tak, jest darmowe i nie wymaga klucza ani rejestracji. Endpointy /api/pricing, /api/faq i /api/cities odpowiadają na zwykłe żądanie GET, mają otwarty CORS (Access-Control-Allow-Origin: *), więc można je wołać także prosto z przeglądarki.

Czy mogę użyć tych danych na swojej stronie?

Tak. Możesz pokazywać nasz cennik, FAQ i listę miast we własnym serwisie, aplikacji lub asystencie AI, pod warunkiem podania źródła z linkiem do swiadectwo-energetyczne24.pl. Nie zezwalamy na podawanie tych danych jako własnej oferty ani na sugerowanie, że świadectwo wystawia ktoś inny niż nasi audytorzy.

Jakie są limity zapytań?

Nie ma twardego limitu na endpointach tylko-do-odczytu — odpowiedzi są cache'owane na CDN (24 godziny), więc odpytywanie częściej niż raz na godzinę i tak nie zwróci nowszych danych. Serwer MCP ma limit 60 żądań na 10 minut z jednego adresu IP.

Czy przez API mogę złożyć zamówienie?

Tak, na dwa sposoby. System CRM albo portal zamawia przez API partnerów (/api/v1) z kluczem: przekazuje dane oferty, dostaje link do wypełnionego formularza, a po wydaniu świadectwa pobiera wskaźniki do ogłoszenia. Asystent AI zamawia przez serwer MCP (/api/mcp). W obu przypadkach zgody i płatność potwierdza klient na naszej stronie — danych karty ani zgód RODO nie przyjmujemy przez API.

Czy udostępniacie API do wyszukiwarki świadectw z rejestru CHEB?

Nie. Wyszukiwarka rejestru działa wyłącznie na naszej stronie — jej endpointy są ograniczone do żądań z tej domeny i objęte limitem zapytań. Surowe dane rejestru są jednak dostępne publicznie na dane.gov.pl, bo to dane otwarte Ministerstwa Rozwoju i Technologii na licencji CC0.

Czy API ma wersjonowanie i SLA?

Nie ma wersjonowania w adresie — pola dopisujemy w sposób nierozwalający istniejących integracji, a o usunięciu któregokolwiek pola uprzedzimy na tej stronie. Serwis nie daje gwarancji dostępności (SLA); przy krytycznej integracji napisz do nas, a ustalimy warunki.

Budujesz coś na naszym API?

Napisz, czego potrzebujesz — brakującego pola, wyższego limitu albo współpracy partnerskiej (biura nieruchomości, notariusze, portale ogłoszeniowe). Odpowiadamy zwykle tego samego dnia.

Mieszkanie119 złDom239 zł