EazyGo Agent Booking API
The agent API lets a travel agency's own website, booking engine or back office book EazyGo cabs anywhere EazyGo runs: local and airport transfers, hourly rentals, and outstation one-way and round trips. It's the same service as the agent panel, with the same prices, wallet and cancellation rules.
Base URL:
https://eazygo.in/api/agent/v1
How a booking works
- Find the ids.
GET /citiesandGET /airportsgive the city and airport ids a trip is quoted with. - Get a quote.
POST /quoteswith the trip returns every vehicle that can do it with your agency's price, plus aquote_tokenthat is valid for 30 minutes. - Book.
POST /bookingswith thequote_token, the vehicle, the passenger and the pickup address. EazyGo prices the trip again, takes the full amount from your agency wallet and confirms the booking at once. Send anIdempotency-Keyheader so a retried request never books twice. - Track.
GET /bookings/{reference}shows the status, and the driver and vehicle once they're assigned. You can also have webhooks posted to your server as the trip moves along. - Cancel if plans change.
POST /bookings/{reference}/cancelcancels the booking and refunds your wallet, less the cancellation charge.
Before you start
- Your agency needs an approved EazyGo agent account. Sign up as an agent if you don't have one.
- Ask EazyGo support to enable API access for your agency.
- The agency owner creates API keys on the agent panel under API Access. See Authentication.
- Keep your wallet topped up. Bookings are paid in full from it.
Conventions
- All requests and responses are JSON (
Content-Type: application/json), except the invoice download, which is a PDF. - Money is in Indian rupees (INR) as a number with up to two decimals.
- Times are Indian Standard Time. You send
pickup_dateasYYYY-MM-DDandpickup_timeasHH:MM(24-hour, IST). Responses give times in ISO 8601 with the+05:30offset, e.g.2026-11-20T07:30:00+05:30. - Every response has a
successflag. Successful responses carrydata, and lists also carrymetafor paging:
{
"success": true,
"data": { "...": "..." }
}
- Errors carry a machine-readable
errorcode and a human-readablemessage. Validation errors also carryerrors, keyed by field. See Errors.
{
"success": false,
"message": "This quote has expired or is not valid. Please ask for a new quote.",
"error": "QUOTE_EXPIRED"
}
Endpoints
| Method | Path | What it does |
|---|---|---|
| GET | /cities |
Cities a kind of trip runs from (and, for outstation, to) |
| GET | /airports |
Airports for local airport transfers |
| POST | /quotes |
Every vehicle's price for a trip, plus a quote_token |
| POST | /bookings |
Book a quoted vehicle, paid from the wallet |
| GET | /bookings |
Your bookings, newest first |
| GET | /bookings/{reference} |
One booking |
| GET | /bookings/{reference}/cancellation |
What cancelling now would cost |
| POST | /bookings/{reference}/cancel |
Cancel and refund to the wallet |
| GET | /bookings/{reference}/invoice |
EazyGo's GST tax invoice (PDF) |
| GET | /wallet |
Wallet balance |
| GET | /wallet/transactions |
Wallet ledger |
A machine-readable description of every endpoint is at openapi.json. Import it into Postman or Insomnia, or generate a client from it.
Testing
EazyGo can set you up on its staging site with a test wallet. Ask support for access. Staging works exactly like the live API, but no real cabs are sent.