🔌 Developer API

Pull 's live packages, destinations, blog, banners, reviews and company info into another website — or push enquiries and bookings into this system from one. All endpoints are under https://tolidaydmc.com/api/v1/ and return JSON.

Auth: send your key as header X-API-Key, query param ?api_key=, or in a JSON body as "api_key".

Example key placeholder — log in as this site's Admin to see your real key (Admin → Site Settings → API Access), or ask your Superadmin.
Destinations Packages Enquiries & Bookings Blog Homepage & Company Info ⬇ Postman Collection (.json)

Destinations

GET/api/v1/destinations

List / search destinations (600+ seeded).

typedomestic | international (optional)
trending1 to show only Trending Destinations (optional)
qfree-text search, e.g. q=goa (optional)
page, limitpagination, default limit 50, max 200
curl "https://tolidaydmc.com/api/v1/destinations?api_key=YOUR_API_KEY_HERE"

Packages

GET/api/v1/packages

List tour packages with filters.

destinationdestination slug (optional)
categorycategory slug (optional)
package_typedomestic | international (optional)
featured / recommended / fixed_departure1 to filter (optional)
seasonsummer | monsoon | winter (optional)
min_price, max_priceprice range (optional)
qsearch by title (optional)
page, limitpagination, default limit 20, max 100
curl "https://tolidaydmc.com/api/v1/packages?api_key=YOUR_API_KEY_HERE"
GET/api/v1/package-detail

Full package detail — itinerary, hotels, inclusions/exclusions, meal plan, terms, gallery.

slugpackage slug (or use id)
idpackage id (alternative to slug)
curl "https://tolidaydmc.com/api/v1/package-detail?api_key=YOUR_API_KEY_HERE&slug=example-slug"
GET/api/v1/package-images

Just the main image + gallery for one package.

slugpackage slug (or use id)
idpackage id (alternative to slug)
curl "https://tolidaydmc.com/api/v1/package-images?api_key=YOUR_API_KEY_HERE&slug=example-slug"
GET/api/v1/categories

List all package categories.

curl "https://tolidaydmc.com/api/v1/categories?api_key=YOUR_API_KEY_HERE"

Enquiries & Bookings

POST/api/v1/enquiry

Push a lead/enquiry — appears instantly in Admin / Superadmin → Enquiries.

curl -X POST "https://tolidaydmc.com/api/v1/enquiry" \ -H "X-API-Key: YOUR_API_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "name": "Test User", "email": "test@example.com", "phone": "9999999999", "subject": "Enquiry from partner site", "message": "Interested in a Goa package for 2 adults.", "package_id": 0 }'

name, email, phone are required. package_id is optional.

POST/api/v1/booking-create

Create a booking. Price is calculated server-side (pax-wise) — never trust a client-supplied amount.

curl -X POST "https://tolidaydmc.com/api/v1/booking-create" \ -H "X-API-Key: YOUR_API_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "package_slug": "goa-beach-holiday-package", "name": "Test User", "email": "test@example.com", "phone": "9999999999", "travel_date": "2026-12-20", "adults": 2, "children": 0, "message": "Booked via partner site" }'

Pass package_slug or package_id. Returns booking_ref and, if a payment gateway is configured, payment_options[].initiate_url — redirect the customer's browser there to pay.

GET/api/v1/booking-status

Look up a booking's status/payment status.

booking_refrequired
emailrequired — the email the booking was made with (this pairing is the auth)
curl "https://tolidaydmc.com/api/v1/booking-status?api_key=YOUR_API_KEY_HERE&booking_ref=TTDXXXXXXXX&email=test@example.com"
POST/api/v1/booking-cancel

Cancel a booking.

curl -X POST "https://tolidaydmc.com/api/v1/booking-cancel" \ -H "X-API-Key: YOUR_API_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ "booking_ref": "TTDXXXXXXXX", "email": "test@example.com", "reason": "Change of travel plans" }'

booking_ref + email pairing is the auth, same as Booking Status. Sets status to cancelled.

Blog

GET/api/v1/blog

List published blog posts.

destinationdestination slug (optional)
categorydomestic | international (optional)
qsearch by title (optional)
page, limitpagination, default limit 20, max 100
curl "https://tolidaydmc.com/api/v1/blog?api_key=YOUR_API_KEY_HERE"
GET/api/v1/blog-detail

Full blog post content.

slugblog post slug
curl "https://tolidaydmc.com/api/v1/blog-detail?api_key=YOUR_API_KEY_HERE&slug=example-slug"

Homepage & Company Info

GET/api/v1/banners

Active homepage banners, in display order.

curl "https://tolidaydmc.com/api/v1/banners?api_key=YOUR_API_KEY_HERE"
GET/api/v1/reviews

Active client reviews, in display order.

curl "https://tolidaydmc.com/api/v1/reviews?api_key=YOUR_API_KEY_HERE"
GET/api/v1/site-info

Branding, contact details, social icons, branch offices, footer links, legal page list.

curl "https://tolidaydmc.com/api/v1/site-info?api_key=YOUR_API_KEY_HERE"
GET/api/v1/legal-page

Full content of one legal page.

page_keyprivacy-policy | terms-conditions | disclaimer | refund-cancellation
curl "https://tolidaydmc.com/api/v1/legal-page?api_key=YOUR_API_KEY_HERE&page_key=privacy-policy"

All responses look like { "success": true, "data": {...} } on success, or { "success": false, "error": "..." } on failure.