curl --request POST \
--url https://app.tikk.chat/api/v1/services \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "default",
"title": "Intro call",
"durations": [
{
"minutes": 30,
"price": null
},
{
"minutes": 60,
"price": 7500
}
],
"location": {
"type": "video"
}
}
'{
"data": {
"type": "default",
"id": 48213,
"slug": "intro-call",
"title": "Intro call",
"description": "A first chat to see if we're a fit.",
"is_default": true,
"is_group": false,
"max_attendees": null,
"requires_approval": true,
"durations": [
{
"minutes": 30,
"price": null,
"currency": "EUR"
},
{
"minutes": 60,
"price": 7500,
"currency": "EUR"
}
],
"location": {
"type": "video",
"label": "Video Meeting",
"address": null
},
"embed_url": "https://tikk.chat/jane/intro-call"
}
}Create a service
Creates a service and returns it. type decides which fields apply:
defaultcreates a permanent booking page. It takes the same fields the API returns for one, and counts toward the Free plan’s service limit.single_usecreates a private booking link for one person. Copy one of your default services withservice, or send atitlefor a standalone link. Send the person the returnedurl.
Booking limits, custom hours, is_active and the highlighted service
aren’t writable through the API. Set those in Tikk.
Scope: services.write
curl --request POST \
--url https://app.tikk.chat/api/v1/services \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "default",
"title": "Intro call",
"durations": [
{
"minutes": 30,
"price": null
},
{
"minutes": 60,
"price": 7500
}
],
"location": {
"type": "video"
}
}
'{
"data": {
"type": "default",
"id": 48213,
"slug": "intro-call",
"title": "Intro call",
"description": "A first chat to see if we're a fit.",
"is_default": true,
"is_group": false,
"max_attendees": null,
"requires_approval": true,
"durations": [
{
"minutes": 30,
"price": null,
"currency": "EUR"
},
{
"minutes": 60,
"price": 7500,
"currency": "EUR"
}
],
"location": {
"type": "video",
"label": "Video Meeting",
"address": null
},
"embed_url": "https://tikk.chat/jane/intro-call"
}
}Authorizations
An API key from Settings → API Keys (starts with tikk_sk_), or an
OAuth access token for a partner app. Both carry scopes; each endpoint
lists the one it needs.
Body
- Default service
- Single-use service
The writable fields of a default service.
"default"50"Intro call"
Replaces all durations when sent.
1Show child attributes
Show child attributes
Shown on the booking page.
500Lowercase letters, digits and single hyphens, unique among your
services. Custom slugs need Pro: on Free the slug is generated from
the title and a slug you send is ignored.
100^[a-z0-9]+(?:-[a-z0-9]+)*$"intro-call"
Several people can book the same slot. Needs Pro; true on Free returns 422.
Seat cap. Required when is_group is true.
2 <= x <= 50Accept each booking by hand. Needs Pro; on Free, bookings are always accepted automatically.
Replaces the location when sent.
Show child attributes
Show child attributes
Response
The created service.
A permanent booking page, such as "Intro call".
- Default service
- Single-use service
Show child attributes
Show child attributes