Bjuti API Dokumentatsioon
Tere tulemast Bjuti ametlikku arendajate portaali. See dokumentatsioon kirjeldab REST API ja Model Context Protocol (MCP) liideseid, mille abil saavad tarkvaraarendajad ja autonoomsed AI agendid otsida ilusalonge ja meistreid, pärida hinnakirju ja reaalajas vabu kalendriaegu, teostada ajutisi broneeringute lukustusi (15-min On Hold) ning kinnitada broneeringuid e-posti koodiga.
https://api.bjuti.ee. Põhiportaal on kättesaadav aadressil bjuti.ee. Masinloetav spetsifikatsioon asub aadressil /v1/openapi.json.
Broneerimise Töövoo Järjekord ja Parameetrite Ahel (AI Agentidele)
Eduka broneeringu teostamiseks peab autonoomne AI agent või arendaja kutsuma API teenuseid välja järgmises ranges järjekorras (Sammud 1 kuni 7). Iga järgmise sammu sisendparameetrid pärinevad eelnevate päringute vastustest:
7-sammuline Broneerimise Elutsükkel:
- Samm 1: Autentimine (
POST /v1/agent/auth/tokenvõi MCPbjuti_agent_auth)
Sisend:client_id,client_secret
➔ Saadud parameeter:access_token(Bearer token, kehtiv 15 min / 900 sek) ➔ Edastatakse kõigi järgnevate sammude HTTP päises:Authorization: Bearer <access_token>. - Samm 2 (Valikuline): Kategooriate Tuvastamine (
GET /v1/agent/booking/service-groupsvõi MCPbjuti_get_service_categories)
➔ Saadud parameeter:category_id,name(Hair, Nails, Brows/Lashes, Skin, Massage jne). - Samm 3: Salongi ja Meistri Leidmine (
GET /v1/agent/booking/nearby-salonsvõi/search-salonsvõi MCPbjuti_find_salons)
Sisend: GPS koordinaadid (lat,lng,radius_km) VÕI tekstipäring (q,salon_name,specialist_name)
➔ Saadud parameetrid:salons[].location_id➔ Kohustuslik sisend Sammudele 4, 5 ja 6!salons[].professionals[].professional_id➔ Kohustuslik sisend Sammudele 5 ja 6!
- Samm 4: Salongi Hinnakiri ja Teenused (
GET /v1/agent/booking/pricelistvõi MCPbjuti_get_salon_pricelist)
Sisend:location_id(Pärineb Sammust 3:salons[].location_id)
➔ Saadud parameetrid:pricelist[].service_id➔ Kohustuslik sisend (massiivina või komadega) Sammudele 5 ja 6!pricelist[].specialists[].professional_id➔ Teenust osutavate meistrite kinnitus.
- Samm 5: Vabade Aegade Kontroll (4-päeva aken) (
GET /v1/agent/booking/availability-slotsvõi MCPbjuti_get_available_slots)
Sisendid:location_id➔ Pärineb Sammust 3professional_id➔ Pärineb Sammust 3 või 4service_ids➔ Pärineb Sammust 4 (komadega eraldatud UUID-d)date➔ Soovitud alguskuupäev formaadisYYYY-MM-DD
slots[date][]massiivist valitakse kliendile sobiv algusaegstart_time(nt"14:30") ➔ Edastatakse Sammule 6! (Kui vabu aegu pole, tagastabwaitlist_available: true). - Samm 6: Aja Ajutine Lukustamine (15-minuti Hold) (
POST /v1/agent/booking/holdvõi MCPbjuti_hold_booking)
Sisendid:location_id(Sammust 3)professional_id(Sammust 3 või 4)service_ids(Sammust 4)date(Sammust 5)start_time(Sammust 5:slots[date][])- Kliendi kontaktandmed:
contact_firstname,contact_lastname,contact_phone,contact_email,message_text
booking_id(UUID) ➔ Edastatakse Sammule 7! Kliendi e-postile saadetakse 6-kohaline kinnituskood. - Samm 7: Broneeringu Kinnitamine E-posti Koodiga (
POST /v1/agent/booking/confirmvõi MCPbjuti_confirm_booking)
Sisendid:booking_id➔ Pärineb Sammust 6:booking_idverification_code➔ 6-kohaline kood, mille klient sai oma e-posti aadressile
status: "confirmed") ja salongi kalendrisse kantud!
- Holdi vabastamine enne tähtaega:
POST /v1/agent/booking/release-holdvajab parameetritbooking_id(Sammust 6). - Ootenimekirjaga liitumine:
POST /v1/agent/booking/waitlist, kui Sammus 5 vabu aegu ei leitud jawaitlist_available: true. - Aktiivsete aegade kontroll:
GET /v1/agent/booking/my-activekliendi e-posti järgi enne broneerimist (reegel: max 1 broneering kategoorias per klient).
Autentimine ja Tokenite Kehtivus (15-minuti reegel)
Kõik autentimist nõudvad API päringud eeldavad HTTP päises Bearer tokenit:
Authorization: Bearer <access_token>
access_token kehtib täpselt 15 minutit (900 sekundit). AI agent või klient peab säilitama väljastatud refresh_token-i ning aegumisel taotlema uue tokeni endpointist /v1/agent/auth/refresh. Autentimise endpointidel kehtib rate limit (kuni 10 päringut minutis).
Broneerimise ja Holdi Ärireeglid
- Hinnakirjapõhine valik: Agent peab broneeringut tehes saatma teenuste ID-de nimekirja (
service_ids), mis pärineb salongi hinnakirjast (/pricelist). - 15-minutiline On Hold lukustus: Broneeringu alustamisel (
/hold) broneeritakse kalendriaeg koheselt olekusseOn Hold. See aeg blokeerub teistele klientidele ja agentidele 15 minutiks. - E-posti kinnituskood: Holdi loomisel saadetakse kliendi e-posti aadressile 6-kohaline kinnituskood. Broneeringu lõplikuks kinnitamiseks tuleb see sisestada endpointi
/confirm(kuni 5 katset, seejärel broneering tühistatakse). - 1 aktiivne broneering kategoorias per klient: AI Agent ei saa samale kliendile teha rohkem kui ühte kehtivat broneeringut samas kategoorias (nt Juuksur). Kui kliendil on juba tulevikus kehtiv aeg, tagastab süsteem veakoodi
ACTIVE_BOOKING_EXISTS.
1. Access Tokeni Taotlemine
Autendib AI agendi või integratsiooni kliendi võtmete abil ja väljastab 15-minutilise Bearer tokeni ning refresh tokeni.
Parameetrid (JSON body)
| Väli | Tüüp | Kirjeldus |
|---|---|---|
client_id kohustuslik | string | Agendi avalik kliendi-ID (nt ag_live_9b4c81...) |
client_secret kohustuslik | string | Agendi salajane võti |
curl -X POST https://api.bjuti.ee/v1/agent/auth/token \
-H "Content-Type: application/json" \
-d '{
"client_id": "ag_live_9b4c81a2f0e84",
"client_secret": "sec_f20a91e847c1..."
}'
{
"status": "success",
"data": {
"access_token": "agt_4f89b1c20e4a779d...",
"token_type": "Bearer",
"expires_in": 900,
"expires_at": "2026-11-08T21:15:00+02:00",
"refresh_token": "refr_d8a1c902b4e7..."
}
}
{
"status": "error",
"code": "INVALID_CREDENTIALS",
"message": "Invalid client_id or client_secret"
}
2. Access Tokeni Uuendamine (Refresh)
Vahetab kehtiva refresh tokeni uue 15-minutilise access tokeni vastu. Vana refresh token muudetakse kehtetuks (refresh token rotation).
Parameetrid (JSON body)
| Väli | Tüüp | Kirjeldus |
|---|---|---|
refresh_token kohustuslik | string | Eelmisest token-päringust saadud refresh token |
curl -X POST https://api.bjuti.ee/v1/agent/auth/refresh \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refr_d8a1c902b4e7..."
}'
{
"status": "success",
"data": {
"access_token": "agt_99c301fa882b...",
"token_type": "Bearer",
"expires_in": 900,
"expires_at": "2026-11-08T21:30:00+02:00",
"refresh_token": "refr_66ea01449bc1..."
}
}
3. Agendi Profiili Kontroll
Tagastab autenditud agendi identiteedi, õigused ja hetkel aktiivse tokeni aegumise kuupäeva.
Parameetrid
Päringuparameetreid ei nõuta. Nõutav on Authorization: Bearer <token> päis.
curl -X GET https://api.bjuti.ee/v1/agent/auth/me \
-H "Authorization: Bearer agt_4f89b1c20e4a779d..."
{
"status": "success",
"data": {
"agent_id": "9a148c3b-5521-4d30-bfae-1280ea9010ab",
"name": "Concierge Booking Bot",
"email": "bot@example.com",
"token_expires_at": "2026-11-08T21:15:00+02:00",
"seconds_remaining": 842
}
}
4. Teenusekategooriate Nimekiri
Tagastab iluteenuste peagrupid (nt Juuksur, Küüned, Kulmud ja ripsmed, Massaaž, Näohooldus).
Query Parameetrid
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
country valikuline | string | Riigikood (vaikimisi EE) |
curl -X GET "https://api.bjuti.ee/v1/agent/booking/service-groups?country=EE" \
-H "Authorization: Bearer <access_token>"
{
"status": "success",
"data": [
{ "id": "hair", "code": "hair", "name": "Juuksuriteenused", "icon": "scissors" },
{ "id": "nails", "code": "nails", "name": "Küünetehnik", "icon": "hand-sparkles" },
{ "id": "face", "code": "face", "name": "Näohooldused", "icon": "spa" },
{ "id": "brows", "code": "brows", "name": "Kulmud ja ripsmed", "icon": "eye" }
]
}
5. Lähimate Salongide Otsing (GPS)
Otsib aktiivseid salongi asukohti kasutaja geograafiliste koordinaatide (laius- ja pikkuskraad) ning raadiuse alusel (arvutatakse Haversine'i valemiga).
Query Parameetrid
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
lat kohustuslik | float | Kliendi laiuskraad (nt 59.43696) |
lng kohustuslik | float | Kliendi pikkuskraad (nt 24.75353) |
radius_km valikuline | float | Otsingu raadius km (vaikimisi 25) |
category valikuline | string | Teenuse kategooria kood |
curl -X GET "https://api.bjuti.ee/v1/agent/booking/nearby-salons?lat=59.4369&lng=24.7535&radius_km=10" \
-H "Authorization: Bearer <access_token>"
{
"status": "success",
"data": [
{
"location_id": "96fb29cf-a031-4ce8-b541-ef12998a1234",
"company_name": "Studio Elegance OÜ",
"location_name": "Studio Elegance Kesklinn",
"address": "Rotermanni 8, Tallinn",
"distance_km": 0.42,
"rating": 4.9,
"coordinates": { "lat": 59.4385, "lng": 24.7561 }
}
]
}
6. Salongi Otsing Teksti või Teenindaja Järgi
Võimaldab otsida salongi nime, spetsialisti ees- või perekonnanime, telefoninumbri või e-posti aadressi järgi.
Query Parameetrid
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
query kohustuslik | string | Otsisõna (min 2 tähemärki, nt "Kadri Tamm", "55123456", "Salong Ilu") |
city valikuline | string | Piira linna järgi (nt "Tartu", "Tallinn") |
curl -X GET "https://api.bjuti.ee/v1/agent/booking/search-salons?query=Kadri" \
-H "Authorization: Bearer <access_token>"
{
"status": "success",
"data": [
{
"location_id": "96fb29cf-a031-4ce8-b541-ef12998a1234",
"location_name": "Studio Elegance Kesklinn",
"address": "Rotermanni 8, Tallinn",
"matching_professionals": [
{
"professional_id": "8a1e47b2-3c10-482a-99cd-482b991a0021",
"name": "Kadri Kallas",
"title": "Seenior Juuksur",
"avatar_url": "https://ik.imagekit.io/bjuti/Professionals/kadri.webp"
}
]
}
]
}
7. Salongi Teenuste Hinnakiri & Alamteenused
Tagastab antud salongi asukohas pakutavad põhiteenused, nende hinnad (koos KM-ga), kestused minutites ning iga teenusega seotud võimalikud alamteenused / lisateenused (addons). Agent saab broneerimisel saata korraga nii põhiteenuse kui ka soovitud alamteenuste ID-d.
Query Parameetrid
| Parameeter | Tüüp | Päritolu ja Kirjeldus |
|---|---|---|
location_id kohustuslik | uuid | Pärineb Sammust 3 /nearby-salons või /search-salons vastuse väli salons[].location_id. |
professional_id valikuline | uuid | Pärineb Sammust 3 Välja salons[].professionals[].professional_id väärtus, et filtreerida konkreetse meistri teenuseid. |
curl -X GET "https://api.bjuti.ee/v1/agent/booking/pricelist?location_id=96fb29cf-a031-4ce8-b541-ef12998a1234" \
-H "Authorization: Bearer <access_token>"
{
"status": "success",
"data": {
"location_id": "96fb29cf-a031-4ce8-b541-ef12998a1234",
"salon_name": "Studio Elegance Kesklinn",
"services": [
{
"service_id": "c14d9b2e-7412-4aa3-8fa9-994b2a8901aa",
"category": "hair",
"name": "Naiste juukselõikus ja föönisoeng",
"description": "Sisaldab pesu, peamassaaži, lõikust ja föönitamist.",
"duration_minutes": 60,
"price": 45.00,
"addons": [
{
"service_id": "8b14da21-998b-4b11-9a40-ef81203491ba",
"category": "hair",
"name": "Intensiivne niisutav juuksemask",
"description": "Taastav süvahooldus K18 või Olaplex baasil.",
"duration_minutes": 20,
"price": 15.00
},
{
"service_id": "fe1023ba-1200-4781-a891-cb9041289190",
"category": "hair",
"name": "Lõõgastav peamassaaž eeterlike õlidega",
"duration_minutes": 15,
"price": 10.00
}
]
}
]
}
}
8. Vabade Aegade Päring (4-päevane aken & Esimene vaba aeg)
Arvutab spetsialisti kalendri ja graafiku alusel vabad broneerimisaknad valitud teenuste kogukestusele (toetab mitut teenust ja alamteenust korraga):
- 4-päevane aken: Tagastab vabad ajad valitud kuupäevast kuni 3 päeva edasi (
datekunidate + 3 days). - Esimene vaba aeg: Kui nendel päevadel aegu ei leidu, otsib süsteem automaatselt esimese tulevase vaba kuupäeva (kuni 45 päeva ette) plokis
first_available. - Ootejärjekorra valmisolek: Väli
waitlist_available: trueannab agendile märku, et kui pakutud ajad ei sobi, saab kliendi lisada ootejärjekorda (/waitlist).
Query Parameetrid
| Parameeter | Tüüp | Päritolu ja Kirjeldus |
|---|---|---|
location_id kohustuslik | uuid | Pärineb Sammust 3 Salongi asukoha UUID (salons[].location_id). |
professional_id kohustuslik | uuid | Pärineb Sammust 3 või 4 Meistri UUID (salons[].professionals[].professional_id või pricelist[].specialists[].professional_id). |
service_ids kohustuslik | string | Pärineb Sammust 4 Komaeraldusega teenuste ja lisateenuste UUID-d (pricelist[].service_id). |
date kohustuslik | string | Alguskuupäev formaadis YYYY-MM-DD (alguspunkt 4-päevasele saadavusaknale). |
curl -X GET "https://api.bjuti.ee/v1/agent/booking/availability-slots?location_id=96fb29cf-...&professional_id=8a1e47b2-...&service_ids=c14d9b2e-...,8b14da21-...&date=2026-11-15" \
-H "Authorization: Bearer <access_token>"
{
"status": "success",
"data": {
"location_id": "96fb29cf-a031-4ce8-b541-ef12998a1234",
"professional_id": "8a1e47b2-3c10-482a-99cd-482b991a0021",
"requested_date": "2026-11-15",
"total_duration_minutes": 80,
"dates": [
{
"date": "2026-11-15",
"day_of_week": "Sunday",
"slots_count": 0,
"slots": []
},
{
"date": "2026-11-16",
"day_of_week": "Monday",
"slots_count": 2,
"slots": ["10:00", "14:30"]
},
{
"date": "2026-11-17",
"day_of_week": "Tuesday",
"slots_count": 3,
"slots": ["11:00", "13:00", "16:00"]
},
{
"date": "2026-11-18",
"day_of_week": "Wednesday",
"slots_count": 0,
"slots": []
}
],
"first_available": null,
"waitlist_available": true
}
}
9. Broneeringu Alustamine ja 15-minuti Hold
Lukustab vaba aja täpselt 15 minutiks staatusesse On Hold. Kontrollib reeglit (1 aktiivne broneering samas kategoorias per klient) ning saadab kliendi e-posti aadressile 6-kohalise kinnituskoodi.
Parameetrid (JSON body)
| Väli | Tüüp | Päritolu ja Kirjeldus |
|---|---|---|
location_id kohustuslik | uuid | Pärineb Sammust 3 Salongi asukoha UUID. |
professional_id kohustuslik | uuid | Pärineb Sammust 3 või 4 Valitud meistri UUID. |
service_ids kohustuslik | array[uuid] | Pärineb Sammust 4 Valitud teenuste UUID-de massiiv hinnakirjast. |
date kohustuslik | string | Pärineb Sammust 5 Valitud kuupäev YYYY-MM-DD. |
start_time kohustuslik | string | Pärineb Sammust 5 Vaba algusaeg vabade aegade maatriksist (slots[date][], nt "14:00"). |
contact_firstname kohustuslik | string | Kliendi eesnimi. |
contact_lastname valikuline | string | Kliendi perekonnanimi. |
contact_phone kohustuslik | string | Kliendi telefoninumber. |
contact_email kohustuslik | string | Kliendi e-post (sinna saadetakse 6-kohaline kinnituskood). |
message_text valikuline | string | Märkus või soovid teenindajale. |
result_photo_base64 valikuline | string | Soovitud tulemuse pilt (Base64). |
curl -X POST https://api.bjuti.ee/v1/agent/booking/hold \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"location_id": "96fb29cf-a031-4ce8-b541-ef12998a1234",
"professional_id": "8a1e47b2-3c10-482a-99cd-482b991a0021",
"service_ids": ["c14d9b2e-7412-4aa3-8fa9-994b2a8901aa"],
"date": "2026-11-15",
"start_time": "14:00",
"contact_firstname": "Mari",
"contact_lastname": "Tamm",
"contact_phone": "+37255123456",
"contact_email": "mari.tamm@example.com",
"message_text": "Soovin heledamat tooni."
}'
{
"status": "success",
"data": {
"booking_id": "3b29c1e0-71a2-47e9-a02b-118833fa0011",
"status": "On Hold",
"hold_expires_at": "2026-11-08T21:12:30+02:00",
"hold_duration_seconds": 900,
"message": "Time reserved for 15 minutes. Verification code sent to mari.tamm@example.com."
}
}
{
"status": "error",
"code": "ACTIVE_BOOKING_EXISTS",
"message": "Client already has an active booking in category 'hair' on 2026-11-20 11:00."
}
10. Broneeringu Kinnitamine E-posti Koodiga
Kinnitab On Hold broneeringu, kontrollides kliendi sisestatud 6-kohalist e-posti kinnituskoodi. Kaitstud brute-force rünnakute vastu (kuni 5 ebaõnnestunud katset enne broneeringu lukustamist). Kui salong nõuab ettemaksu, väljastatakse turvaline makselink.
Parameetrid (JSON body)
| Väli | Tüüp | Päritolu ja Kirjeldus |
|---|---|---|
booking_id kohustuslik | uuid | Pärineb Sammust 6 POST /v1/agent/booking/hold vastuse väli data.booking_id. |
verification_code kohustuslik | string | Kliendi e-postile saadetud 6-kohaline kinnituskood (nt "481902"). |
curl -X POST https://api.bjuti.ee/v1/agent/booking/confirm \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"booking_id": "3b29c1e0-71a2-47e9-a02b-118833fa0011",
"verification_code": "481902"
}'
{
"status": "success",
"data": {
"booking_id": "3b29c1e0-71a2-47e9-a02b-118833fa0011",
"status": "Confirmed",
"confirmed_at": "2026-11-08T20:58:12+02:00",
"requires_deposit": false,
"payment_url": null,
"summary": {
"salon": "Studio Elegance Kesklinn",
"professional": "Kadri Kallas",
"date": "2026-11-15",
"start_time": "14:00",
"total_price": 45.00
}
}
}
{
"status": "error",
"code": "INVALID_VERIFICATION_CODE",
"message": "Invalid code. 3 attempts remaining."
}
11. Hold Lukustuse Enneaegne Vabastamine
Kui klient otsustab broneerimise katkestada või valida teise aja, saab agent holdi viivitamatult vabastada ilma 15-minutilist aegumist ootamata.
Parameetrid (JSON body)
| Väli | Tüüp | Päritolu ja Kirjeldus |
|---|---|---|
booking_id kohustuslik | uuid | Pärineb Sammust 6 Vabastatava broneeringu ID (data.booking_id). |
curl -X POST https://api.bjuti.ee/v1/agent/booking/release-hold \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"booking_id": "3b29c1e0-71a2-47e9-a02b-118833fa0011"
}'
{
"status": "success",
"message": "Booking hold released successfully. Slot is available again."
}
12. Ootejärjekorra API (Waitlist)
Lisab kliendi meistri ootenimekirja, kui soovitud kuupäevadel ei leidunud sobivat vaba aega. Kui klient juba ootab sama meistri juurde, värskendatakse tema soovi detaile (säilitades järjekorrakoha). Kui salongi graafikus avaneb uus vaba aeg (nt lisandunud töögraafik või tühistamine), pakutakse või broneeritakse see ootenimekirjast FIFO põhimõttel.
Parameetrid (JSON body)
| Väli | Tüüp | Päritolu ja Kirjeldus |
|---|---|---|
location_id kohustuslik | uuid | Pärineb Sammust 3 Salongi asukoha UUID (salons[].location_id). |
professional_id kohustuslik | uuid | Pärineb Sammust 3 või 4 Meistri UUID. |
service_ids kohustuslik | array[uuid] | Pärineb Sammust 4 Soovitud teenuste ja lisateenuste UUID-de massiiv. |
contact_firstname kohustuslik | string | Kliendi eesnimi. |
contact_lastname valikuline | string | Kliendi perekonnanimi. |
contact_phone kohustuslik | string | Kliendi telefoninumber. |
contact_email kohustuslik | string | Kliendi e-posti aadress. |
message_text valikuline | string | Kliendi eelistatud kellaajad või lisasoovid. |
curl -X POST https://api.bjuti.ee/v1/agent/booking/waitlist \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"location_id": "96fb29cf-a031-4ce8-b541-ef12998a1234",
"professional_id": "8a1e47b2-3c10-482a-99cd-482b991a0021",
"service_ids": ["c14d9b2e-7412-4aa3-8fa9-994b2a8901aa"],
"contact_firstname": "Mari",
"contact_lastname": "Tamm",
"contact_phone": "+37255123456",
"contact_email": "mari.tamm@example.com",
"message_text": "Sobivad ajad tööpäeviti peale 17:00."
}'
{
"status": "success",
"message": "Client successfully added to waiting list.",
"data": {
"waitlist_id": "18cf41a0-8910-4bc3-90b1-4478129031ef",
"already_waiting": false,
"status": "waiting",
"title": "Naiste juukselõikus ja föönisoeng",
"duration_minutes": 60,
"created_at": "2026-11-08T21:25:00+02:00"
}
}
{
"status": "success",
"message": "Client is already on the waiting list; request details updated.",
"data": {
"waitlist_id": "18cf41a0-8910-4bc3-90b1-4478129031ef",
"already_waiting": true,
"status": "waiting",
"title": "Naiste juukselõikus ja föönisoeng",
"duration_minutes": 60
}
}
13. Kliendi Aktiivsete Broneeringute Kontroll
Võimaldab agendil pärida kliendi aktiivseid tulevikubroneeringuid enne uue broneeringu alustamist, et vältida dubleerivaid broneeringuid samas kategoorias.
Query Parameetrid
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
contact_email kohustuslik | string | Kliendi e-posti aadress |
category valikuline | string | Kategooria kood (nt hair) |
curl -X GET "https://api.bjuti.ee/v1/agent/booking/my-active?contact_email=mari.tamm@example.com" \
-H "Authorization: Bearer <access_token>"
{
"status": "success",
"data": [
{
"booking_id": "77a102bb-8199-4c01-bf10-9941a8291001",
"status": "Confirmed",
"category": "hair",
"service_name": "Naiste juukselõikus",
"salon_name": "Studio Elegance Kesklinn",
"start_time": "2026-11-20T11:00:00+02:00"
}
]
}
Mis on Bjuti MCP Server?
Model Context Protocol (MCP) on avatud standard, mis võimaldab tehisintellekti mudelitel ja agentidel (nt Claude, Cursor, kohandatud assistendid) turvaliselt suhelda reaalsete süsteemidega. Bjuti pakub standardiseeritud MCP serverit, mis võimaldab AI agentidel otse ja ilma vahekoodita teostada salongiotsingut, kalendriaegade arvutust ja broneeringute haldust.
https://api.bjuti.ee/mcp.Server toetab nii JSON-RPC 2.0 päringuid kui ka Server-Sent Events (SSE) voogesitusühendusi.
MCP Kliendi Seadistamine (Näited)
Kui kasutate Claude Desktopi, Cursorit või muud MCP tuge omavat AI klienti, saate lisada Bjuti MCP serveri oma kliendi konfiguratsioonifaili:
Näide: Claude Desktop (`claude_desktop_config.json`)
{
"mcpServers": {
"bjuti": {
"url": "https://api.bjuti.ee/mcp",
"headers": {
"Authorization": "Bearer <TEIE_ACCESS_TOKEN>"
}
}
}
}
Näide: JSON-RPC päring otse üle HTTPS-i
curl -X POST https://api.bjuti.ee/mcp \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "bjuti_find_salons",
"arguments": {
"lat": 59.4369,
"lng": 24.7535,
"radius_km": 15
}
}
}'
Avaldatud Bjuti MCP Tööriistad (Tools)
Bjuti MCP server teeb AI agendile kättesaadavaks järgmised spetsialiseeritud tööriistad:
| Tööriista Nimi | Sisendparameetrid | Kirjeldus |
|---|---|---|
bjuti_agent_auth |
client_id, client_secret |
Autendib agendi ja tagastab 15-minutilise Bearer tokeni. |
bjuti_get_service_categories |
country (valikuline) |
Tagastab iluteenuste peagrupid (Juuksed, Küüned, Nägu jne). |
bjuti_find_salons |
lat, lng, radius_km, query |
Otsib lähimaid salonge GPS koordinaatide või teksti järgi. |
bjuti_get_salon_pricelist |
location_id |
Tagastab salongi asukoha teenuste ja hindade ametliku hinnakirja. |
bjuti_get_available_slots |
location_id, professional_id, service_ids, date |
Arvutab spetsialisti kalendri ja graafiku alusel vabad broneerimisaknad. |
bjuti_hold_booking |
location_id, professional_id, service_ids, date, start_time, contact_firstname, contact_phone, contact_email |
Lukustab valitud aja 15 minutiks ning saadab kliendile 6-kohalise e-posti kinnituskoodi. |
bjuti_confirm_booking |
booking_id, verification_code |
Kinnitab On Hold broneeringu e-postiga saadud kinnituskoodi alusel. |
bjuti_release_hold |
booking_id |
Vabastab aktiivse 15-minutilise holdi koheselt enne selle aegumist. |
bjuti_join_waitlist |
location_id, professional_id, service_ids, contact_firstname, contact_phone, contact_email |
Lisab kliendi meistri ootenimekirja, kui soovitud kuupäevadel sobivat vaba aega ei leidunud. |
bjuti_get_active_booking |
contact_email, category_id |
Kontrollib kliendi aktiivseid tulevikubroneeringuid. |