# Izstrādātāji,izstrādātāji,izstrādātāji!

Viss, kas ir Makeplans, ir pieejams API: REST un JSON, webhooks katrai izmaiņai un MCP serveris MI asistentiem.

[Lasīt API dokumentāciju](https://developer.makeplans.com)

- 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"
  }
}
```

## Sāciet darbu dažās minūtēs

### Iegūstiet API atslēgu

Iespējojiet API sadaļā Iestatījumi → Integrācijas → API un nokopējiet savu atslēgu.

### Nosūtiet pirmo pieprasījumu

Nosūtiet atslēgu kā Bearer token. Katram objektam ir savs galapunkts, un viss ir JSON formātā.

### Sekojiet izmaiņām

Pievienojiet webhook, un mēs nosūtīsim POST pieprasījumu uz jūsu serveri, kad mainīsies rezervācijas, pasākumi vai klienti.

## Divi API

### Publiskais API

Atslēga nav vajadzīga. Rādiet pakalpojumus un brīvos laikus un sāciet rezervāciju tieši savā tīmekļa vietnē.

`https://youraccount.makeplans.com/`

### Privātais API

Pilna piekļuve jūsu kontam ar API atslēgu – jūsu serverim un integrācijām. Neglabājiet atslēgu publiskā kodā.

`https://youraccount.makeplans.com/api/v1/`

## Integrējiet Makeplans ar savu iekšējo sistēmu vai tīmekļa vietni

Visas Makeplans funkcijas ir pieejamas arī API. Tas ir REST API ar JSON. Varam sūtīt arī webhooks.

- [Slots](https://developer.makeplans.com/endpoints/slots/)
- [Bookings](https://developer.makeplans.com/endpoints/bookings/)
- [People](https://developer.makeplans.com/endpoints/people/)
- [Services](https://developer.makeplans.com/endpoints/services/)
- [Events](https://developer.makeplans.com/endpoints/events/)
- [Resources](https://developer.makeplans.com/endpoints/resources/)
- [Resource Exception Dates](https://developer.makeplans.com/endpoints/resource-exception-dates/)
- [Providers](https://developer.makeplans.com/endpoints/providers/)
- [Categories](https://developer.makeplans.com/endpoints/categories/)
- [Coupons](https://developer.makeplans.com/endpoints/coupons/)
- [Orders](https://developer.makeplans.com/endpoints/orders/)
- [Gift Cards](https://developer.makeplans.com/endpoints/gift-cards/)
- [Message Templates](https://developer.makeplans.com/endpoints/message-templates/)
- [Webhooks](https://developer.makeplans.com/endpoints/webhooks/)
- [Account](https://developer.makeplans.com/endpoints/account/)
- [Passes](https://developer.makeplans.com/endpoints/passes/)
- [Subscriptions](https://developer.makeplans.com/endpoints/subscriptions/)
- [Skatīt visus galapunktus](https://developer.makeplans.com/endpoints/)

## Pievienojiet savu MI asistentu (MCP)

Makeplans piedāvā MCP serveri, lai MI asistenti, piemēram, Claude un ChatGPT, varētu strādāt ar jūsu rezervācijām. Palūdziet asistentam pārbaudīt brīvos laikus, sameklēt klientu vai izveidot un atcelt rezervācijas – ar jūsu pašu Makeplans piekļuves datiem.

MCP (Model Context Protocol) ir atvērts standarts. Pieslēgties var jebkurš asistents vai aģents, kas atbalsta MCP, – bez slēgtiem spraudņiem un piesaistes, tāpat kā viss pārējais, ko veidojam.

### Rīki, ko saņem jūsu asistents

- `find_available_slots`
- `list_services`
- `list_events`
- `list_bookings`
- `get_booking`
- `find_customer`
- `create_booking`
- `cancel_booking`

### Pievienojiet Claude Code ar vienu rindiņu

```
claude mcp add --transport http makeplans \
  https://youraccount.makeplans.com/api/mcp \
  --header "Authorization: Bearer $MAKEPLANS_API_KEY"
```

Lasiet vairāk par mūsu [MI rezervāciju asistentu](/lv/risinajumi/mi-rezervaciju-asistents/).

Pieraksti Annu uz masāžu piektdien plkst. 14.00

Atradīšu masāžas pakalpojumu un sameklēšu Annu.

M`list_services`

```
→{}←[{"id": 42, "title": "Massage", "interval": 60}]
```

M`find_customer`

```
→{"query": "Anna"}←[{"id": 7, "name": "Anna Nordmann"}]
```

M`find_available_slots`

```
→{"service_id": 42, "from": "2026-11-13"}←[{"timestamp": "2026-11-13T14:00:00+01:00", "free": 1}]
```

M`create_booking`

```
→{"service_id": 42, "person_id": 7, "booked_from": "2026-11-13T14:00:00+01:00"}←{"id": 1338, "state": "confirmed"}
```

Rezervēts: Anna Nordmann, masāža piektdien plkst. 14.00. Viņa saņems apstiprinājumu un atgādinājumu.

## Webhooks katrai izmaiņai

Kad rezervācija tiek izveidota, apstiprināta, pārcelta vai atcelta, mēs to ar POST nosūtām uz jūsu serveri, parakstītu ar HMAC SHA-256, lai jūs zinātu, ka tā nāk no mums. To var saņemt arī Zapier un Make.

Mmakeplans

{ }your server

Zapier

Make

POST https://example.com/webhooks

```
X-MakePlans-Signature: sha256=5257a869e7ec…{
  "event": "booking.created",
  "idempotency_id": "evt_4810",
  "generated_at": "2026-11-12T02:37:29Z",
  "performed_by": "customer",
  "data": {
    "object": "booking",
    "id": 1337,
    "booking": { "id": 1337, "state": "confirmed" }
  }
}
```

tail -f webhooks.log

```
02:37:29 POST /webhooks **booking.created** _200 OK_signature ✓
```

## Standarta rezervēšanas vietnes pielāgošana

Standarta rezervēšanas vietni var pielāgot ar savu CSS. Turklāt ar Liquid veidņu valodu var [pielāgot veidlapas](https://github.com/makeplans/makeplans-custom-forms) un visus [izejošos ziņojumus](https://github.com/makeplans/makeplans-custom-messages).

custom.css

.booking-site {--accent: #2a8c8f;--background: #f1f8f8;--text: #173f44;--soft: #d9ecec;--radius: 14px;--font: "Avenir Next", sans-serif;}

// Noklikšķiniet uz vērtības, lai to mainītu

 Jūsu uzņēmums Jūsu rezervēšanas vietne, jūsu stils 

**12**** 13 ****14**** 15**

09:0010:3011:0013:0014:3016:00
Rezervēt tūlīt

### Iebūvētās integrācijas

Makeplans jau ir iebūvētas daudzas integrācijas. Plašāku informāciju skatiet mūsu [integrāciju lapā](/lv/integracijas/). Papildus tiešajām integrācijām mums ir integrācija ar integrāciju platformām [Zapier](/lv/integracijas/zapier/) un [Make](/lv/integracijas/make/), kas ļauj savienoties ar citām lietotnēm bez programmēšanas.

### Datu eksports

Rezervācijas, klientus un pasākumus var ērti eksportēt un lejupielādēt CSV formātā.

### iCalendar plūsmas

Lai Makeplans pierakstus rādītu citās kalendāra lietotnēs, mēs piedāvājam iCalendar plūsmu, ko var izmantot Google Calendar, macOS un iOS kalendārā, Android, Outlook un citās kalendāra lietotnēs.

## Iedziļinieties dokumentācijā

- [Ceļvedis](https://developer.makeplans.com/guide/getting-started/)
- [API galapunkti](https://developer.makeplans.com/endpoints/)
- [Piemēri](https://developer.makeplans.com/examples/overview/)
- [Izmaiņu žurnāls](https://developer.makeplans.com/changelog/)
- [Partneru API](https://developer.makeplans.com/partner/)

Mūsu [API dokumentācija ir pieejama vietnē developer.makeplans.com](https://developer.makeplans.com).
