Dla integratorów

API rezerwacji apartamentów: Twoje dane w Twoich narzędziach

API erphome.pl to interfejs REST, którym pobierzesz z własnego konta rezerwacje, zajęte terminy, cennik, opinie i statystyki, a także dodasz rezerwację ręczną, wyślesz e-mail do gościa i wygenerujesz link do płatności. Dane wracają w JSON, autoryzacja to token Bearer z zakresami nadawanymi przez właściciela konta. Specyfikacja w standardzie OpenAPI 3.1.

Adres bazowy
https://api.erphome.pl/v1
Autoryzacja
Token Bearer z zakresami
Format
JSON, nazwy pól po angielsku
Specyfikacja
OpenAPI 3.1 (Swagger)

Aktualizacja: 2026-09-09. Wiążąca jest specyfikacja OpenAPI, do której linkujemy niżej.

Co udostępnia API

Dwanaście operacji na danych własnego konta. Każda wymaga tokenu z konkretnym zakresem, więc integracja dostaje dokładnie tyle, ile ma robić.

ZasóbCo dostajeszWywołanieZakres tokenu
Tożsamość konta Nazwa firmy i e-mail właściciela, żeby potwierdzić że token działa i podpisać nim połączenie w narzędziu typu Zapier/Make. Jedyny endpoint bez wymogu zakresu — działa z każdym ważnym tokenem. GET /me brak
Apartamenty Lista apartamentów konta z ich identyfikatorami. Od tego zaczyna każda integracja, bo reszta filtruje po apartment_id. GET /apartments apartments:read
Rezerwacje Lista ze wszystkich apartamentów, z filtrem po dacie, statusie i apartamencie, stronicowana kursorem. GET /reservations reservations:read
Jedna rezerwacja Dane gościa, kwota, promocja i kaucja pojedynczej rezerwacji. GET /reservations/{id} reservations:read
Rezerwacja ręczna Dopisanie rezerwacji spoza strony, z odrzuceniem kolidujących terminów. POST /reservations reservations:write
Wiadomości Cały wątek korespondencji z gościem, razem z e-mailami automatycznymi. GET /reservations/{id}/messages messages:read
E-mail do gościa Wysyłka wiadomości na adres gościa i zapis w wątku rezerwacji. POST /reservations/{id}/messages messages:write
Link do płatności Transakcja Przelewy24 na Twoich danych, link jednorazowy, ważny dobę. POST /reservations/{id}/payment-link payments:write
Dostępność Same zajęte przedziały dat, bez danych gości. Domyślnie rok do przodu. GET /availability availability:read
Blokady terminów Terminy zablokowane ręcznie: remont, pobyt własny, przerwa techniczna. GET /blocks blocks:read
Cennik Ceny sezonowe, minimalne długości pobytu i opłaty dodatkowe. GET /pricing pricing:read
Opinie gości Oceny z treścią, gwiazdkami, statusem moderacji i odpowiedzią właściciela. GET /reviews reviews:read
Statystyki Obłożenie i przychód miesiąc po miesiącu dla wskazanego apartamentu. GET /stats stats:read

Pierwsze zapytanie

Wystaw token w panelu

Zakładka API w panelu. Zaznaczasz tylko te zakresy, których integracja naprawdę potrzebuje.

Skopiuj go od razu

Token pokazujemy jeden raz, przy tworzeniu. Zgubiony kasujesz i wystawiasz nowy.

Dodaj nagłówek i pytaj

Każde zapytanie niesie nagłówek Authorization z tym tokenem. Reszta to zwykły HTTP.

Zapytanie
curl -H "Authorization: Bearer erph_live_..." \
  "https://api.erphome.pl/v1/reservations?status=confirmed&from=2026-09-01"
Odpowiedź (fragment)
{
  "data": [
    {
      "id": 128,
      "apartment_id": 3,
      "status": "confirmed",
      "source": "online",
      "check_in": "2026-09-12",
      "check_out": "2026-09-15",
      "guests": 2,
      "guest": {
        "name": "Anna Kowalska",
        "email": "[email protected]"
      },
      "amount_pln": 1350,
      "deposit": { "amount_pln": 300, "status": "paid" }
    }
  ],
  "pagination": { "limit": 100, "has_more": false, "next_after": null }
}

Do czego to służy

Pięć zastosowań, po które właściciele sięgają najczęściej. Każde da się złożyć z operacji z tabeli powyżej.

Księgowość bez przepisywania

Raz w miesiącu pobierasz potwierdzone rezerwacje z kwotami i wrzucasz je do programu księgowego. Koniec z ręcznym przenoszeniem liczb z panelu do arkusza.

GET /reservations?status=confirmed

Własny arkusz albo raport

Obłożenie i przychód miesiąc po miesiącu, gotowe do wykresu w Arkuszach Google czy Power BI.

GET /stats

Kalendarz na innej stronie

Zajęte terminy bez danych gości, więc pokażesz dostępność na blogu albo w aplikacji, nie ujawniając niczego o gościach.

GET /availability

Automat w Make czy n8n

Scenariusz wysyła gościowi wiadomość na Twój sygnał, a cała korespondencja zostaje widoczna w panelu.

POST /reservations/{id}/messages

Rezerwacje z innego kanału

Rezerwacja przyjęta telefonicznie albo z portalu bez iCala wchodzi skryptem i od razu blokuje termin.

POST /reservations

Zasady, limity i czego API nie robi

Granice są tu celowe. Lepiej wiedzieć o nich przed napisaniem integracji niż po.

Token wystawia właściciel
Tylko właściciel konta. Sub-użytkownik panelu nie ma dostępu do tej zakładki, nawet z pełnymi uprawnieniami do rezerwacji.
Odczyt osobno od zapisu
Zakresy :read i :write są rozdzielone także dla tego samego zasobu. Token do raportów fizycznie nie napisze do gościa.
Pula adresów IP
Token możesz przypiąć do adresów albo zakresów CIDR, z których wolno go użyć. Wykradziony klucz nie zadziała wtedy poza siecią Twojej integracji. Domyślnie bez ograniczeń; pulę zmieniasz bez wymiany tokenu.
Limity zapytań
300 zapytań GET i 60 zapytań POST na 10 minut, liczone osobno dla każdego tokenu. Po przekroczeniu wraca 429 z nagłówkiem Retry-After.
Bez edycji i anulowania
Zmiana terminu i anulowanie zostają w panelu, gdzie obok jest kalendarz i podgląd wiadomości, które pójdą do gościa.
Pola po angielsku
Nazwy pól i komunikaty błędów są angielskie, zgodnie z normą w API. Panel i strona rezerwacyjna zostają po polsku.
Bez dopłaty
API wchodzi w abonament i działa też w okresie próbnym. Nie ma opłaty za wywołania ani limitu liczby tokenów.

Najczęstsze pytania

Czy API jest dodatkowo płatne?

Nie. Wchodzi w abonament i działa od pierwszego dnia 14-dniowego okresu próbnego. Nie ma opłaty za wywołania ani limitu liczby tokenów, jest tylko limit częstotliwości: 300 zapytań GET i 60 POST na 10 minut na token.

Skąd wziąć token?

Z panelu, zakładka API (panel.erphome.pl). Wystawia go wyłącznie właściciel konta, sub-użytkownicy panelu tej zakładki nie widzą. Token pokazujemy jeden raz, przy tworzeniu, więc trzeba go od razu skopiować do integracji.

Czy przez API pobiorę rezerwacje z Booking.com i Airbnb?

Tak, o ile trafiły do Twojego kalendarza przez synchronizację iCal. Wyglądają wtedy jak zajęte terminy, bo portale nie przekazują w iCalu ani danych gościa, ani kwoty. Pełne dane mają rezerwacje z Twojej strony i te dopisane ręcznie.

Czy mogę przez API zmienić albo anulować rezerwację?

Nie, i to jest decyzja projektowa. Zmiana terminu i anulowanie zostają w panelu, gdzie widać kalendarz i wiadomości, które przy takiej zmianie pójdą do gościa. Przez API dodasz nową rezerwację, odczytasz każdą i wyślesz wiadomość.

Czy API obsłuży kilka apartamentów?

Tak. Odczyty domyślnie obejmują wszystkie apartamenty konta, a parametr apartment_id zawęża je do jednego. Wyjątkiem są statystyki, gdzie apartment_id jest wymagany: obłożenia apartamentów o różnych cenach za noc nie da się sensownie zsumować w jedną liczbę.

Podłączę to do Make, Zapiera albo n8n?

Tak, zwykłym blokiem HTTP z nagłówkiem Authorization: Bearer i adresem endpointu. Gotowej wtyczki do tych narzędzi nie publikujemy, bo API jest na tyle proste, że blok HTTP wystarcza.

Token wystawisz w panelu w minutę

API działa od pierwszego dnia okresu próbnego i nie jest osobno płatne. 14 dni za darmo, bez karty.

Dalej

Dokumentacja OpenAPI: wszystkie pola i kody błędów → Centrum pomocy: obsługa panelu krok po kroku → Wszystkie funkcje erphome.pl → Jak wybrać system rezerwacyjny dla apartamentu → Cennik abonamentu →