Programuotojams,programuotojams,programuotojams!
Viskas, ką turi Makeplans, pasiekiama per API: REST ir JSON, webhook pranešimai apie kiekvieną pakeitimą ir MCP serveris DI asistentams.
- REST + JSON
- Webhooks
- MCP
- iCal
- CSV
$ curl https://youraccount.makeplans.com/api/v1/services/42/slots?from=2026-11-19 \ -H 'Authorization: Bearer $MAKEPLANS_API_KEY' \ -H 'User-Agent: MyApp' \ -H 'Accept: application/json' [ { "slot": { "timestamp": "2026-11-19T10:30:00+01:00", "timestamp_end": "2026-11-19T11:30:00+01:00", "free": 1, "available_resources": [1, 2], "maximum_capacity": 2 } }, { "slot": { "timestamp": "2026-11-19T13:00:00+01:00", "timestamp_end": "2026-11-19T14:00:00+01:00", "free": 2, "available_resources": [1, 2], "maximum_capacity": 2 } } ] $ curl https://youraccount.makeplans.com/api/v1/bookings -X POST \ -H 'Authorization: Bearer $MAKEPLANS_API_KEY' \ -H 'User-Agent: MyApp' \ -H 'Accept: application/json' \ -d 'booking[service_id]=42' \ -d 'booking[resource_id]=1' \ -d 'booking[booked_from]=2026-11-19T10:30:00+01:00' \ -d 'booking[booked_to]=2026-11-19T11:30:00+01:00' { "booking": { "id": 1337, "state": "confirmed", "service_id": 42, "resource_id": 1, "booked_from": "2026-11-19T10:30:00+01:00", "booked_to": "2026-11-19T11:30:00+01:00" } }
curl https://youraccount.makeplans.com/api/v1/services/42/slots?from=2026-11-19 \ -H 'Authorization: Bearer $MAKEPLANS_API_KEY' \ -H 'User-Agent: MyApp' \ -H 'Accept: application/json'
[
{
"slot": {
"timestamp": "2026-11-19T10:30:00+01:00",
"timestamp_end": "2026-11-19T11:30:00+01:00",
"free": 1,
"available_resources": [1, 2],
"maximum_capacity": 2
}
},
{
"slot": {
"timestamp": "2026-11-19T13:00:00+01:00",
"timestamp_end": "2026-11-19T14:00:00+01:00",
"free": 2,
"available_resources": [1, 2],
"maximum_capacity": 2
}
}
]
# 10:30 is free. Book it.
curl https://youraccount.makeplans.com/api/v1/bookings -X POST \ -H 'Authorization: Bearer $MAKEPLANS_API_KEY' \ -H 'User-Agent: MyApp' \ -H 'Accept: application/json' \ -d 'booking[service_id]=42' \ -d 'booking[resource_id]=1' \ -d 'booking[booked_from]=2026-11-19T10:30:00+01:00' \ -d 'booking[booked_to]=2026-11-19T11:30:00+01:00'
{
"booking": {
"id": 1337,
"state": "confirmed",
"service_id": 42,
"resource_id": 1,
"booked_from": "2026-11-19T10:30:00+01:00",
"booked_to": "2026-11-19T11:30:00+01:00"
}
}
const api = "https://youraccount.makeplans.com/api/v1";
const headers = {
Authorization: `Bearer ${process.env.MAKEPLANS_API_KEY}`,
"User-Agent": "MyApp",
Accept: "application/json",
};
// Find the first free slot
const slots = await fetch(`${api}/services/42/slots?from=2026-11-19`, { headers })
.then((res) => res.json());
const { slot } = slots.find(({ slot }) => slot.free > 0);
// Book it
const booking = await fetch(`${api}/bookings`, {
method: "POST",
headers,
body: new URLSearchParams({
"booking[service_id]": "42",
"booking[resource_id]": String(slot.available_resources[0]),
"booking[booked_from]": slot.timestamp,
"booking[booked_to]": slot.timestamp_end,
}),
}).then((res) => res.json());
console.log(booking);
{
"booking": {
"id": 1337,
"state": "confirmed",
"service_id": 42,
"resource_id": 1,
"booked_from": "2026-11-19T10:30:00+01:00",
"booked_to": "2026-11-19T11:30:00+01:00"
}
}
require "net/http"
require "json"
API = "https://youraccount.makeplans.com/api/v1"
def makeplans(request)
request["Authorization"] = "Bearer #{ENV.fetch('MAKEPLANS_API_KEY')}"
request["User-Agent"] = "MyApp"
request["Accept"] = "application/json"
uri = request.uri
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(request) }
JSON.parse(response.body)
end
# Find the first free slot
slots = makeplans(Net::HTTP::Get.new(URI("#{API}/services/42/slots?from=2026-11-19")))
slot = slots.map { |s| s["slot"] }.find { |s| s["free"] > 0 }
# Book it
post = Net::HTTP::Post.new(URI("#{API}/bookings"))
post.set_form_data(
"booking[service_id]" => 42,
"booking[resource_id]" => slot["available_resources"].first,
"booking[booked_from]" => slot["timestamp"],
"booking[booked_to]" => slot["timestamp_end"]
)
puts makeplans(post)
{
"booking": {
"id": 1337,
"state": "confirmed",
"service_id": 42,
"resource_id": 1,
"booked_from": "2026-11-19T10:30:00+01:00",
"booked_to": "2026-11-19T11:30:00+01:00"
}
}
import os
import requests
API = "https://youraccount.makeplans.com/api/v1"
session = requests.Session()
session.headers.update({
"Authorization": f"Bearer {os.environ['MAKEPLANS_API_KEY']}",
"User-Agent": "MyApp",
"Accept": "application/json",
})
# Find the first free slot
slots = session.get(f"{API}/services/42/slots", params={"from": "2026-11-19"}).json()
slot = next(s["slot"] for s in slots if s["slot"]["free"] > 0)
# Book it
booking = session.post(f"{API}/bookings", data={
"booking[service_id]": 42,
"booking[resource_id]": slot["available_resources"][0],
"booking[booked_from]": slot["timestamp"],
"booking[booked_to]": slot["timestamp_end"],
}).json()
print(booking)
{
"booking": {
"id": 1337,
"state": "confirmed",
"service_id": 42,
"resource_id": 1,
"booked_from": "2026-11-19T10:30:00+01:00",
"booked_to": "2026-11-19T11:30:00+01:00"
}
}
Pradėsite per kelias minutes
Gaukite API raktą
Įjunkite API skiltyje Nustatymai → Integracijos → API ir nukopijuokite raktą.
Išsiųskite pirmąją užklausą
Raktą siųskite kaip Bearer žetoną. Kiekvienas objektas turi savo galinį tašką, viskas – JSON formatu.
Sekite pakeitimus
Pridėkite webhook, ir pasikeitus rezervacijoms, renginiams ar klientams išsiųsime POST užklausą į jūsų serverį.
Dvi API
Viešoji API
Rakto nereikia. Rodykite paslaugas ir laisvus laikus bei pradėkite rezervaciją tiesiai savo svetainėje.
https://youraccount.makeplans.com/
Privačioji API
Visa prieiga prie paskyros su API raktu – jūsų serveriui ir integracijoms. Rakto nelaikykite viešame kode.
https://youraccount.makeplans.com/api/v1/
Integruokite Makeplans su savo vidine sistema ar svetaine
Visos Makeplans funkcijos pasiekiamos per API. Tai REST pagrindu veikianti API su JSON. Taip pat galime siųsti webhook pranešimus.
Prijunkite savo DI asistentą (MCP)
Makeplans turi MCP serverį, todėl DI asistentai, pavyzdžiui, Claude ir ChatGPT, gali dirbti su jūsų rezervacijomis. Paprašykite asistento patikrinti laisvus laikus, surasti klientą, sukurti ar atšaukti rezervaciją – su jūsų pačių Makeplans prisijungimo duomenimis.
MCP (Model Context Protocol) yra atviras standartas. Prisijungti gali bet kuris asistentas ar agentas, palaikantis MCP – be uždarų papildinių ir be pririšimo. Taip kuriame ir visa kita.
Įrankiai, kuriuos gauna jūsų asistentas
find_available_slotslist_serviceslist_eventslist_bookingsget_bookingfind_customercreate_bookingcancel_booking
Prijunkite Claude Code viena eilute
claude mcp add --transport http makeplans \ https://youraccount.makeplans.com/api/mcp \ --header "Authorization: Bearer $MAKEPLANS_API_KEY"
Skaitykite daugiau apie mūsų DI rezervacijų asistentą.
Webhook pranešimai apie kiekvieną pakeitimą
Kai rezervacija sukuriama, patvirtinama, perkeliama ar atšaukiama, išsiunčiame POST užklausą į jūsų serverį. Ji pasirašyta HMAC SHA-256, tad žinote, kad ją siuntėme mes. Ją gali priimti ir Zapier bei Make.
Standartinės rezervavimo svetainės pritaikymas
Standartinę rezervavimo svetainę galima pritaikyti naudojant savo CSS. Be to, pasitelkę Liquid šablonų kalbą galite pritaikyti formas ir visus siunčiamus pranešimus.
// Spustelėkite reikšmę ir ją pakeiskite
Paruoštos integracijos
Makeplans jau turi nemažai paruoštų integracijų. Daugiau informacijos rasite integracijų puslapyje. Be tiesioginių integracijų, esame susieti ir su integracijų platformomis Zapier ir Make, kurios leidžia sujungti Makeplans su kitomis programomis neprogramuojant.
Duomenų eksportas
Rezervacijas, klientus ir renginius galite lengvai eksportuoti ir atsisiųsti CSV formatu.
iCalendar sklaidos kanalai
Kad Makeplans rezervacijas matytumėte kitose kalendoriaus programose, siūlome iCalendar sklaidos kanalą. Jį galima naudoti Google Calendar, macOS ir iOS kalendoriuose, Android, Outlook ir kitose kalendoriaus programose.
Pasinerkite į dokumentaciją
Mūsų API dokumentaciją rasite adresu developer.makeplans.com.