curl --request PATCH \
--url https://api.1club.ai/v1/platform/programs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"color": "<string>",
"sortOrder": 123,
"minAge": 60,
"maxAge": 60,
"progressionTrackId": 123
}
'import requests
url = "https://api.1club.ai/v1/platform/programs/{id}"
payload = {
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"color": "<string>",
"sortOrder": 123,
"minAge": 60,
"maxAge": 60,
"progressionTrackId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
slug: '<string>',
description: '<string>',
imageUrl: '<string>',
color: '<string>',
sortOrder: 123,
minAge: 60,
maxAge: 60,
progressionTrackId: 123
})
};
fetch('https://api.1club.ai/v1/platform/programs/{id}', 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/programs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'slug' => '<string>',
'description' => '<string>',
'imageUrl' => '<string>',
'color' => '<string>',
'sortOrder' => 123,
'minAge' => 60,
'maxAge' => 60,
'progressionTrackId' => 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/programs/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"color\": \"<string>\",\n \"sortOrder\": 123,\n \"minAge\": 60,\n \"maxAge\": 60,\n \"progressionTrackId\": 123\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.1club.ai/v1/platform/programs/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"color\": \"<string>\",\n \"sortOrder\": 123,\n \"minAge\": 60,\n \"maxAge\": 60,\n \"progressionTrackId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/programs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"color\": \"<string>\",\n \"sortOrder\": 123,\n \"minAge\": 60,\n \"maxAge\": 60,\n \"progressionTrackId\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"color": "<string>",
"sortOrder": 123,
"minAge": 60,
"maxAge": 60,
"progressionTrackId": 123,
"classTypeCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Update a program
Changes a program. Send only what changes; an omitted field is left alone, null clears a nullable one, and at least one field is required. Changing progressionTrackId changes which ranks the sessions of its class types count toward, for every member, back to their current rank’s earned date. A rename leaves slug alone - it is a stable key a website link may already use.
curl --request PATCH \
--url https://api.1club.ai/v1/platform/programs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"color": "<string>",
"sortOrder": 123,
"minAge": 60,
"maxAge": 60,
"progressionTrackId": 123
}
'import requests
url = "https://api.1club.ai/v1/platform/programs/{id}"
payload = {
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"color": "<string>",
"sortOrder": 123,
"minAge": 60,
"maxAge": 60,
"progressionTrackId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
slug: '<string>',
description: '<string>',
imageUrl: '<string>',
color: '<string>',
sortOrder: 123,
minAge: 60,
maxAge: 60,
progressionTrackId: 123
})
};
fetch('https://api.1club.ai/v1/platform/programs/{id}', 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/programs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'slug' => '<string>',
'description' => '<string>',
'imageUrl' => '<string>',
'color' => '<string>',
'sortOrder' => 123,
'minAge' => 60,
'maxAge' => 60,
'progressionTrackId' => 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/programs/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"color\": \"<string>\",\n \"sortOrder\": 123,\n \"minAge\": 60,\n \"maxAge\": 60,\n \"progressionTrackId\": 123\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.1club.ai/v1/platform/programs/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"color\": \"<string>\",\n \"sortOrder\": 123,\n \"minAge\": 60,\n \"maxAge\": 60,\n \"progressionTrackId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/programs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"color\": \"<string>\",\n \"sortOrder\": 123,\n \"minAge\": 60,\n \"maxAge\": 60,\n \"progressionTrackId\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"imageUrl": "<string>",
"color": "<string>",
"sortOrder": 123,
"minAge": 60,
"maxAge": 60,
"progressionTrackId": 123,
"classTypeCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Authorizations
Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.
Path Parameters
Body
Fields accepted when updating a program. Send only what changes; null clears a nullable field, an omitted field is left alone, and at least one is required. A rename does not move slug.
255100Cover image shown where the program is listed, e.g. the website.
Hex colour the program is shown in, e.g. "#2563eb".
Where the program is listed, lowest first.
Youngest age the program is for, in years. Display only: it does not gate booking.
0 <= x <= 120Oldest age the program is for, in years. Display only.
0 <= x <= 120The progression track the sessions of its class types count toward, from GET /v1/platform/progression-tracks. Once any program points at a track, only sessions of those programs count toward its ranks. Must be a track the organization uses.
Response
The updated program
What a student joins, e.g. "Kids BJJ (7-12)": a group of class types whose sessions count toward one progression track, and what the club website lists. Reference the id as programId on a class type. One shape for the list, get-by-id, create and update.
Stable key, derived from the name when a create does not send one. A rename never moves it.
Cover image shown where the program is listed, e.g. the website.
Hex colour the program is shown in, e.g. "#2563eb".
Where the program is listed, lowest first.
Youngest age the program is for, in years. Display only: it does not gate booking.
0 <= x <= 120Oldest age the program is for, in years. Display only.
0 <= x <= 120The progression track the sessions of its class types count toward, from GET /v1/platform/progression-tracks. Once any program points at a track, only sessions of those programs count toward its ranks. Must be a track the organization uses.
Class types in the program.
Was this page helpful?