curl --request POST \
--url https://api.1club.ai/v1/platform/checkins \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"bookingId": 123,
"clubId": 123
}
'import requests
url = "https://api.1club.ai/v1/platform/checkins"
payload = {
"bookingId": 123,
"clubId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({bookingId: 123, clubId: 123})
};
fetch('https://api.1club.ai/v1/platform/checkins', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.1club.ai/v1/platform/checkins",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'bookingId' => 123,
'clubId' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.1club.ai/v1/platform/checkins"
payload := strings.NewReader("{\n \"bookingId\": 123,\n \"clubId\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.1club.ai/v1/platform/checkins")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"bookingId\": 123,\n \"clubId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/checkins")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bookingId\": 123,\n \"clubId\": 123\n}"
response = http.request(request)
puts response.read_body{
"checkinId": 123,
"contactId": 123,
"clubId": 123,
"classId": 123,
"bookingId": 123,
"membershipId": 123,
"externalProgramId": 123,
"entranceMethod": "<string>",
"date": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"contact": {},
"club": {},
"class": {},
"booking": {},
"membership": {},
"externalProgram": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Check in a booking or a member
Records attendance, in one of two ways. Send exactly one of bookingId or contactId. Supports the Idempotency-Key header.
An existing booking (bookingId): records attendance for the booking during its configured check-in window. The booking must be confirmed or pending, and its payment and duplicate-attendance rules still apply.
A visit with no booking (contactId and clubId): checks a member in at the club on their membership, the way the front desk’s direct check-in does, and spends one session from it. Name the membership with membershipId, or leave it out to use the member’s own covering membership (one with nothing owed is preferred). To record the visit against a zero-fee external program instead, send externalProgramId. The membership must not be limited to particular classes, areas or instructors, must have sessions left, and must have nothing owed on it - a member who owes is checked in at the front desk, where staff can see the balance. Nothing is charged. To check someone into a class or an area, book it first and check that booking in.
curl --request POST \
--url https://api.1club.ai/v1/platform/checkins \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"bookingId": 123,
"clubId": 123
}
'import requests
url = "https://api.1club.ai/v1/platform/checkins"
payload = {
"bookingId": 123,
"clubId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({bookingId: 123, clubId: 123})
};
fetch('https://api.1club.ai/v1/platform/checkins', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.1club.ai/v1/platform/checkins",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'bookingId' => 123,
'clubId' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.1club.ai/v1/platform/checkins"
payload := strings.NewReader("{\n \"bookingId\": 123,\n \"clubId\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.1club.ai/v1/platform/checkins")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"bookingId\": 123,\n \"clubId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/checkins")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bookingId\": 123,\n \"clubId\": 123\n}"
response = http.request(request)
puts response.read_body{
"checkinId": 123,
"contactId": 123,
"clubId": 123,
"classId": 123,
"bookingId": 123,
"membershipId": 123,
"externalProgramId": 123,
"entranceMethod": "<string>",
"date": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"contact": {},
"club": {},
"class": {},
"booking": {},
"membership": {},
"externalProgram": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Authorizations
Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.
Headers
Retry-safe key; a repeat of the same request replays the first response
255Body
Response
Check-in created
An attendance record for a booking, class, membership, or direct gym visit.
Was this page helpful?