{ "business": { "name": "Minotaur Barbershop", "phone": "2102849218", "address": "Κουντουριώτου, 12, Iraklio, Greece, 141 22", "latitude": "38.048190752114664", "longitude": "23.76191735236398", "url": "https://minotaur.datelly.gr", "currency": "EUR" }, "businessHours": [ { "day": "Monday", "open": false, "from": "15:00", "to": "21:00" }, { "day": "Tuesday", "open": true, "from": "10:00", "to": "20:00" }, { "day": "Wednesday", "open": true, "from": "10:00", "to": "20:00" }, { "day": "Thursday", "open": true, "from": "10:00", "to": "20:00" }, { "day": "Friday", "open": true, "from": "10:00", "to": "20:00" }, { "day": "Saturday", "open": true, "from": "10:00", "to": "19:00" }, { "day": "Sunday", "open": false, "from": "01:00", "to": "23:58" } ], "services": [ { "id": 1, "name": "Haιrcut", "nameEn": "Haιrcut", "category": "1", "categoryId": 1, "type": "incall", "price": 15, "durationMin": 28, "description": "" }, { "id": 6, "name": "Haircut &amp; beard", "nameEn": "Haircut &amp; beard", "category": "1", "categoryId": 1, "type": "incall", "price": 18, "durationMin": 28, "description": "" }, { "id": 5, "name": "haircut with design", "nameEn": "haircut with design", "category": "1", "categoryId": 1, "type": "incall", "price": 20, "durationMin": 43, "description": "" }, { "id": 2, "name": "Beard trimming", "nameEn": "Beard trimming", "category": "1", "categoryId": 1, "type": "incall", "price": 3, "durationMin": 1, "description": "" }, { "id": 3, "name": "Wash", "nameEn": "Wash", "category": "1", "categoryId": 1, "type": "incall", "price": 3, "durationMin": 1, "description": "" }, { "id": 4, "name": "Eyebrows", "nameEn": "Eyebrows", "category": "1", "categoryId": 1, "type": "incall", "price": 5, "durationMin": 1, "description": "" }, { "id": 7, "name": "Black / gold mask", "nameEn": "Black / gold mask", "category": "1", "categoryId": 1, "type": "incall", "price": 10, "durationMin": 15, "description": "" }, { "id": 8, "name": "Nose &amp; Ear Waxing", "nameEn": "Nose &amp; Ear Waxing", "category": "1", "categoryId": 1, "type": "incall", "price": 5, "durationMin": 15, "description": "" }, { "id": 9, "name": "Full face skincare", "nameEn": "Full face skincare", "category": "1", "categoryId": 1, "type": "incall", "price": 30, "durationMin": 45, "description": "Includes a facial exfoliation, Black or Gold Mask, a clay mask, and a moisturizing cream." } ], "categories": [ { "id": 1, "name": "1" } ], "workers": [ { "id": 1, "name": "Νίκος Mήτσιου", "nameEn": "Nikos Mitsiou", "incall": true, "outcall": false }, { "id": 5, "name": "Κωνσταντίνος Χατζημάρκος", "nameEn": "Konstantinos chatzimarkos", "incall": true, "outcall": false }, { "id": 2, "name": "Βασίλης Μουζακίτης", "nameEn": "Vasilis Mouzakitis", "incall": true, "outcall": false }, { "id": 3, "name": "Μάριος Κυπραίος", "nameEn": "Marios Kupreos", "incall": true, "outcall": false }, { "id": 6, "name": "Γιάννης Εμμανουηλίδης", "nameEn": "Giannis Emmanouelidis", "incall": true, "outcall": false } ], "workerSchedules": [ { "workerId": 1, "workerName": "Nikos Mitsiou", "schedule": [ { "day": "Monday", "open": false, "from": "15:00:00", "to": "21:00:00" }, { "day": "Monday", "open": false, "from": "15:00:00", "to": "21:00:00" }, { "day": "Monday", "open": false, "from": "15:00:00", "to": "21:00:00" }, { "day": "Tuesday", "open": false, "from": "15:00:00", "to": "20:00:00" }, { "day": "Tuesday", "open": true, "from": "10:00:00", "to": "20:00:00" }, { "day": "Wednesday", "open": true, "from": "10:00:00", "to": "20:00:00" }, { "day": "Thursday", "open": true, "from": "10:00:00", "to": "20:00:00" }, { "day": "Friday", "open": true, "from": "10:00:00", "to": "20:00:00" }, { "day": "Saturday", "open": true, "from": "10:00:00", "to": "19:00:00" } ] }, { "workerId": 5, "workerName": "Konstantinos chatzimarkos", "schedule": [ { "day": "Monday", "open": false, "from": "15:00:00", "to": "21:00:00" }, { "day": "Tuesday", "open": true, "from": "12:00:00", "to": "20:00:00" }, { "day": "Wednesday", "open": false, "from": "12:00:00", "to": "20:00:00" }, { "day": "Wednesday", "open": true, "from": "12:00:00", "to": "20:00:00" }, { "day": "Thursday", "open": false, "from": "12:00:00", "to": "20:00:00" }, { "day": "Thursday", "open": true, "from": "12:00:00", "to": "20:00:00" }, { "day": "Friday", "open": false, "from": "12:00:00", "to": "20:00:00" }, { "day": "Friday", "open": true, "from": "12:00:00", "to": "20:00:00" }, { "day": "Saturday", "open": false, "from": "11:00:00", "to": "19:00:00" }, { "day": "Saturday", "open": true, "from": "11:00:00", "to": "19:00:00" } ] }, { "workerId": 2, "workerName": "Vasilis Mouzakitis", "schedule": [ { "day": "Monday", "open": false, "from": "15:00:00", "to": "21:00:00" }, { "day": "Tuesday", "open": true, "from": "11:30:00", "to": "15:30:00" }, { "day": "Tuesday", "open": true, "from": "16:00:00", "to": "19:30:00" }, { "day": "Wednesday", "open": true, "from": "11:30:00", "to": "15:30:00" }, { "day": "Wednesday", "open": true, "from": "16:00:00", "to": "19:30:00" }, { "day": "Thursday", "open": true, "from": "11:30:00", "to": "15:30:00" }, { "day": "Thursday", "open": true, "from": "16:00:00", "to": "19:30:00" }, { "day": "Friday", "open": true, "from": "11:30:00", "to": "15:30:00" }, { "day": "Friday", "open": true, "from": "16:00:00", "to": "19:30:00" }, { "day": "Saturday", "open": false, "from": "10:30:00", "to": "15:00:00" }, { "day": "Saturday", "open": true, "from": "11:00:00", "to": "15:30:00" }, { "day": "Saturday", "open": true, "from": "16:00:00", "to": "19:00:00" } ] }, { "workerId": 3, "workerName": "Marios Kupreos", "schedule": [ { "day": "Monday", "open": false, "from": "15:00:00", "to": "21:00:00" }, { "day": "Tuesday", "open": true, "from": "14:00:00", "to": "20:00:00" }, { "day": "Wednesday", "open": true, "from": "10:00:00", "to": "15:00:00" }, { "day": "Thursday", "open": true, "from": "14:00:00", "to": "20:00:00" }, { "day": "Friday", "open": true, "from": "13:00:00", "to": "20:00:00" }, { "day": "Saturday", "open": true, "from": "12:00:00", "to": "19:00:00" } ] }, { "workerId": 6, "workerName": "Giannis Emmanouelidis", "schedule": [ { "day": "Tuesday", "open": false, "from": "00:00:00", "to": "20:00:00" }, { "day": "Tuesday", "open": true, "from": "12:00:00", "to": "20:00:00" }, { "day": "Thursday", "open": true, "from": "12:00:00", "to": "20:00:00" }, { "day": "Friday", "open": true, "from": "12:00:00", "to": "20:00:00" }, { "day": "Saturday", "open": true, "from": "11:00:00", "to": "19:00:00" } ] } ], "availability": { "mode": "preview", "timezone": "Europe/Athens", "generatedAt": "2026-11-09 04:31", "from": "2026-11-09", "to": "2026-11-15", "serviceIds": [], "workers": [ { "workerId": 1, "workerName": "Nikos Mitsiou", "serviceIds": [ 3 ], "durationMin": 1, "days": [ { "date": "2026-11-09", "weekday": "Monday", "freeSlots": [] }, { "date": "2026-11-10", "weekday": "Tuesday", "freeSlots": [] }, { "date": "2026-11-11", "weekday": "Wednesday", "freeSlots": [ "10:30", "11:30", "14:00", "15:00", "18:30" ] }, { "date": "2026-11-12", "weekday": "Thursday", "freeSlots": [ "10:00", "11:00", "11:30", "12:30", "13:00", "13:30", "14:00", "16:30", "17:00", "18:00", "18:30", "19:00" ] }, { "date": "2026-11-13", "weekday": "Friday", "freeSlots": [ "10:00", "13:30", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "19:00", "19:30" ] }, { "date": "2026-11-14", "weekday": "Saturday", "freeSlots": [ "12:30", "13:30", "14:00", "14:30", "15:00", "16:30", "17:00", "18:00", "18:30" ] }, { "date": "2026-11-15", "weekday": "Sunday", "freeSlots": [] } ] }, { "workerId": 5, "workerName": "Konstantinos chatzimarkos", "serviceIds": [ 3 ], "durationMin": 1, "days": [ { "date": "2026-11-09", "weekday": "Monday", "freeSlots": [] }, { "date": "2026-11-10", "weekday": "Tuesday", "freeSlots": [ "12:30", "13:00", "13:30", "14:00", "14:30", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-11", "weekday": "Wednesday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-12", "weekday": "Thursday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-13", "weekday": "Friday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-14", "weekday": "Saturday", "freeSlots": [ "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30" ] }, { "date": "2026-11-15", "weekday": "Sunday", "freeSlots": [] } ] }, { "workerId": 2, "workerName": "Vasilis Mouzakitis", "serviceIds": [ 3 ], "durationMin": 1, "days": [ { "date": "2026-11-09", "weekday": "Monday", "freeSlots": [] }, { "date": "2026-11-10", "weekday": "Tuesday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "16:30", "17:00", "18:00", "19:00" ] }, { "date": "2026-11-11", "weekday": "Wednesday", "freeSlots": [ "11:30", "12:30", "13:30", "14:00", "14:30", "15:00", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00" ] }, { "date": "2026-11-12", "weekday": "Thursday", "freeSlots": [ "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30" ] }, { "date": "2026-11-13", "weekday": "Friday", "freeSlots": [ "11:30", "12:00", "13:30", "14:00", "14:30", "15:00", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00" ] }, { "date": "2026-11-14", "weekday": "Saturday", "freeSlots": [ "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30" ] }, { "date": "2026-11-15", "weekday": "Sunday", "freeSlots": [] } ] }, { "workerId": 3, "workerName": "Marios Kupreos", "serviceIds": [ 3 ], "durationMin": 1, "days": [ { "date": "2026-11-09", "weekday": "Monday", "freeSlots": [] }, { "date": "2026-11-10", "weekday": "Tuesday", "freeSlots": [ "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:30" ] }, { "date": "2026-11-11", "weekday": "Wednesday", "freeSlots": [ "10:00", "10:30", "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30" ] }, { "date": "2026-11-12", "weekday": "Thursday", "freeSlots": [ "14:30", "15:00", "15:30", "16:30", "17:00", "17:30", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-13", "weekday": "Friday", "freeSlots": [ "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-14", "weekday": "Saturday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30" ] }, { "date": "2026-11-15", "weekday": "Sunday", "freeSlots": [] } ] }, { "workerId": 6, "workerName": "Giannis Emmanouelidis", "serviceIds": [ 3 ], "durationMin": 1, "days": [ { "date": "2026-11-09", "weekday": "Monday", "freeSlots": [] }, { "date": "2026-11-10", "weekday": "Tuesday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "16:00", "16:30", "17:00", "17:30", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-11", "weekday": "Wednesday", "freeSlots": [] }, { "date": "2026-11-12", "weekday": "Thursday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-13", "weekday": "Friday", "freeSlots": [ "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30" ] }, { "date": "2026-11-14", "weekday": "Saturday", "freeSlots": [ "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30" ] }, { "date": "2026-11-15", "weekday": "Sunday", "freeSlots": [] } ] } ], "queryUrl": "https://minotaur.datelly.gr/booking-info?services={serviceIds}&worker={workerId}&date={YYYY-MM-DD}&days={1-14}", "notes": [ "freeSlots are the start times (HH:MM, Europe/Athens) a visitor can book right now for the serviceIds of that worker: closed days, days off, booked, held and past times are already removed. An empty list means the worker has nothing free that day.", "PREVIEW: no services were requested, so each worker shows the free start times for the shortest service he or she performs (see serviceIds per worker). Before building the deep link fetch queryUrl with the services the user wants (and the worker, if any): longer services need more consecutive free time, so the exact list can be shorter.", "Use the autobook_token of the response that gave you the slots. It expires in 15 minutes." ] }, "booking": { "deepLinkFormat": "https://minotaur.datelly.gr/?services={serviceIds}&worker={workerId}&date={YYYY-MM-DD}&time={HH:MM}&name={customerName}&phone={customerPhone}&email={customerEmail}&autobook=1&autobook_token={token}", "autobook_token": "eyJleHAiOjE3OTQxOTIzNjgsInN1YiI6Im1pbm90YXVyIiwibm9uY2UiOiI2MmY4MzA1MGY5YTU5Yzk4IiwiaWF0IjoxNzk0MTkxNDY4fQ.d8d104bf10d38e6aea951ea3abcd5c0a626cc9b5a2c81ab018f22867f4c52620", "autobook_token_expires_in": "15 minutes", "parameters": [ { "name": "services", "required": true, "description": "Comma-separated list of service IDs to book. Use the \"id\" field from the services array.", "example": "1,2,3" }, { "name": "worker", "required": false, "description": "Worker/professional ID. If omitted, the first available worker is auto-selected. Use the workerId whose freeSlots you picked the time from.", "example": "1" }, { "name": "date", "required": false, "description": "Appointment date in YYYY-MM-DD format. Must be today or a future date with free slots (see availability.workers[].days[].date).", "example": "2026-11-10" }, { "name": "time", "required": false, "description": "Desired start time in HH:MM (24-hour) format. Must be one of availability.workers[].days[].freeSlots for the same worker, date and services (fetch availability.queryUrl with the chosen services first).", "example": "10:00" }, { "name": "name", "required": false, "description": "Customer full name (first and last). Auto-fills the booking form.", "example": "John Doe" }, { "name": "phone", "required": false, "description": "Customer phone number (10 digits, no country code prefix).", "example": "6900000000" }, { "name": "email", "required": false, "description": "Customer email address. Auto-fills the booking form.", "example": "john@example.com" }, { "name": "autobook", "required": false, "description": "Set to \"1\" to automatically accept terms and submit the booking. MUST be paired with a valid autobook_token.", "example": "1" }, { "name": "autobook_token", "required": false, "description": "HMAC-signed security token required for autobook. Get a fresh token from this endpoint (booking.autobook_token). Tokens expire after 15 minutes. Without a valid token, autobook will be ignored and the user must manually confirm.", "example": "<use the autobook_token value from this response>" } ], "notes": [ "FREE SLOTS: the \"availability\" section lists the free start times per worker and day. Fetch availability.queryUrl with the service ids (and worker) the user wants to get the exact times for them, then use one of those times.", "If a requested service, worker, date, or time is unavailable, the user is shown a warning and can choose an alternative.", "All parameters except \"services\" are optional. If only services are provided, the user starts at the date/time selection step.", "If date and time are both provided, the system auto-navigates to the booking confirmation step.", "Times use 24-hour format (e.g., 14:30 for 2:30 PM).", "IMPORTANT: To use autobook=1, you MUST first fetch this endpoint to get a fresh autobook_token. The token expires in 15 minutes.", "For AI agents: 1) Fetch this endpoint, 2) Fetch availability.queryUrl with the chosen services (and worker) and pick a date and time from freeSlots, 3) Take the autobook_token from that response, 4) Include worker, date, time, autobook=1 and autobook_token={token} in the deep-link URL.", "Rate limiting: Max 5 bookings per IP per hour and 3 per phone per day. Duplicate appointments at the same date/time are rejected.", "A hidden honeypot field protects against simple bots. Legitimate AI agents and users are not affected." ] }
}