Zemen Booking public API
JSON API for the guest mobile app and partner integrations. All money values are Ethiopian Birr (ETB).
Production: https://zemenbooking.com/api/v1/mobile
This server: http://196.188.249.180/zemenbooking/api/v1/mobile
Format: JSON envelope { "status", "message", "timestamp", "data" }
1. Create account and sign in
Register sends a verification email. The guest must open the website link before login works.
POST https://zemenbooking.com/api/v1/mobile/auth/register
Content-Type: application/json
{ "first_name": "Abebe", "last_name": "Kebede", "email": "abebe@example.com", "phone": "0911223344", "password": "secret12" }
POST https://zemenbooking.com/api/v1/mobile/auth/login
{ "email": "abebe@example.com", "password": "secret12" }
Protected calls send: Authorization: Bearer <token>
2. Find hotels and rooms
GET /home— featured hotels and citiesGET /hotels— search (query: city, dates, guests)GET /hotels/{id}— hotel detailGET /hotels/{id}/availability— rooms for datesPOST /bookings/quote— price before pay
3. Book and pay
POST /bookings— create booking (guest checkout allowed)GET /bookings— my bookings (JWT)POST /payments/initialize— start DeboPay / cardGET /payments/verify— confirm paymentPOST /bookings/{id}/cancel— cancel (JWT)
4. Account extras
GET /auth/me— profilePOST /auth/resend-verification— send email againGET /hotels/{id}/reviews— list approved reviewsPOST /hotels/{id}/reviews— review after stay
Hotel verify / unverify (admin website)
Super admin does not add database columns in phpPgAdmin. Hotels already have hotel_status and verified_at.
- Sign in at
/admin-panel - Open Hotels
- Set status to Verified or Active (live) or Pending verification / Inactive (unverified)
17 Aug 2026 updates Unified login, reviews list, notifications, hotel-admin writes
Police partner API (external hotels): partner docs.
Mobile app engineers: use docs/API-UPDATES-FOR-DEVELOPERS.md and docs/MOBILE-API-HANDOFF.md in the repository.