Accounting without retyping
Once a month you pull the confirmed bookings with their amounts and feed them into your accounting software, instead of copying numbers out of the panel by hand.
GET /reservations?status=confirmed
The erphome.pl API is a REST interface for pulling your own reservations, occupied dates, pricing, reviews and statistics out of your account, and for adding a manual reservation, mailing a guest and generating a payment link. Responses are JSON, authentication is a bearer token carrying the scopes the account owner granted. The specification follows OpenAPI 3.1.
Updated: 2026-09-09. The OpenAPI specification linked below is the binding reference.
Twelve operations on your own account data. Each one needs a token carrying its specific scope, so an integration gets exactly as much as its job requires.
| Resource | What you get | Call | Token scope |
|---|---|---|---|
| Account identity | Business name and owner e-mail, to confirm the token works and to label the connection in a tool like Zapier or Make. The one endpoint with no scope requirement — works with any valid token. | GET /me |
none |
| Apartments | The account's apartments and their ids. Every integration starts here, because the rest filters by apartment_id. | GET /apartments |
apartments:read |
| Reservations | Every apartment on the account, filterable by date, status and apartment, cursor-paginated. | GET /reservations |
reservations:read |
| One reservation | Guest details, amount, promo code and deposit for a single booking. | GET /reservations/{id} |
reservations:read |
| Manual booking | Records a booking taken off-site, rejecting dates that clash with an existing stay. | POST /reservations |
reservations:write |
| Messages | The whole thread with the guest, automatic mail included. | GET /reservations/{id}/messages |
messages:read |
| Mail to the guest | Sends real mail to the guest address and records it in the reservation thread. | POST /reservations/{id}/messages |
messages:write |
| Payment link | A Przelewy24 transaction on your own credentials. Single use, valid for 24 hours. | POST /reservations/{id}/payment-link |
payments:write |
| Availability | Occupied date ranges only, with no guest data. A year ahead by default. | GET /availability |
availability:read |
| Blocked dates | Ranges you blocked by hand: maintenance, personal use, a technical break. | GET /blocks |
blocks:read |
| Pricing | Seasonal rates, minimum-stay rules and extra fees. | GET /pricing |
pricing:read |
| Guest reviews | Ratings with text, stars, moderation status and the owner reply. | GET /reviews |
reviews:read |
| Statistics | Occupancy and revenue month by month for one apartment. | GET /stats |
stats:read |
The API tab in the panel. Tick only the scopes the integration genuinely needs.
The token is shown once, at creation. Lose it and you revoke it and issue a new one.
Every request carries an Authorization header with that token. The rest is plain HTTP.
curl -H "Authorization: Bearer erph_live_..." \
"https://api.erphome.pl/v1/reservations?status=confirmed&from=2026-09-01"
{
"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 }
}
The five uses that come up most often. Each one is assembled from the operations in the table above.
Once a month you pull the confirmed bookings with their amounts and feed them into your accounting software, instead of copying numbers out of the panel by hand.
GET /reservations?status=confirmed
Occupancy and revenue month by month, ready to chart in Google Sheets or Power BI.
GET /stats
Occupied dates with no guest data, so you can show availability on a blog or in an app without exposing anything about your guests.
GET /availability
A scenario mails the guest on your trigger, and the whole exchange stays visible in the panel.
POST /reservations/{id}/messages
A booking taken by phone, or from a portal with no iCal feed, goes in from a script and blocks the dates immediately.
POST /reservations
The boundaries here are deliberate. Better to know them before writing an integration than after.
No. It is part of the subscription and works from day one of the 14-day trial. There is no per-call fee and no cap on tokens, only a rate limit: 300 GET and 60 POST requests per 10 minutes per token.
From the API tab in the panel (panel.erphome.pl). Only the account owner can issue one; panel sub-users do not see that tab. The token is displayed once, at creation, so copy it into your integration right away.
Yes, as far as they reached your calendar over iCal sync. They then look like occupied dates, because the portals pass neither guest details nor amounts in an iCal feed. Full detail exists for bookings made on your own page and for ones you added manually.
No, and that is deliberate. Changing dates and cancelling stay in the panel, where you can see the calendar and the messages such a change will send to the guest. Through the API you can create a booking, read any of them and send a message.
Yes. Reads cover every apartment on the account by default, and the apartment_id parameter narrows them to one. Statistics are the exception, where apartment_id is required: occupancy across apartments with different nightly rates cannot be meaningfully summed into a single number.
Yes, with a plain HTTP block carrying an Authorization: Bearer header and the endpoint URL. We do not publish a dedicated connector for those tools, because the API is simple enough that an HTTP block covers it.
The API works from day one of the trial and costs nothing extra. 14 days free, no card.