curl --request DELETE \
--url https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}', 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/pay-rate-policies/{id}/instructors/{instructorId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"policyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"kind": "individual",
"earnings": {
"kind": "individual",
"perSession": 1,
"sessionRevenuePercentage": 50,
"perClass": 1,
"perBooking": 1,
"classRevenuePercentage": 50
},
"requirePaidBooking": true,
"instructors": [
{
"id": 123,
"name": "<string>"
}
],
"classTypes": [
{
"id": 123,
"name": "<string>"
}
],
"entranceScopes": [
{
"entranceMethod": "direct_payment",
"membershipPlanId": 123,
"externalProgramId": 123
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Take an instructor off a pay rate policy
Removes one coach from a policy. Their not-yet-finalized pay re-resolves to whichever policy covers them next, or to nothing if none does; days already closed stay frozen.
Removing the last named coach does not disable the policy - it turns it into the organization’s default, applying to every coach without one of their own. The response shows the policy as it now stands, which is where that is visible.
curl --request DELETE \
--url https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}', 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/pay-rate-policies/{id}/instructors/{instructorId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/pay-rate-policies/{id}/instructors/{instructorId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"policyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"kind": "individual",
"earnings": {
"kind": "individual",
"perSession": 1,
"sessionRevenuePercentage": 50,
"perClass": 1,
"perBooking": 1,
"classRevenuePercentage": 50
},
"requirePaidBooking": true,
"instructors": [
{
"id": 123,
"name": "<string>"
}
],
"classTypes": [
{
"id": 123,
"name": "<string>"
}
],
"entranceScopes": [
{
"entranceMethod": "direct_payment",
"membershipPlanId": 123,
"externalProgramId": 123
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.
Path Parameters
Pay rate policy id
1club instructor id
Response
The policy, with its instructors as they now stand
A rule for what the club pays a coach. Not an instructor's hourlyRate, which is what a member pays for an hour of their time. Each coverage list means "everything" when empty: no instructors makes it the organization default, no classTypes covers every class type, no entranceScopes covers every way in.
individual, class What the coach earns, and for what unit of work. kind decides which of the rate fields apply and which are rejected: an individual policy takes perSession and sessionRevenuePercentage, a class policy takes perClass, perBooking and classRevenuePercentage. At least one of the applicable rates must be greater than zero, and kind cannot be changed once the policy exists.
Show child attributes
Show child attributes
Coaches this policy covers. Empty means every coach with no policy of their own.
Show child attributes
Show child attributes
Class types it covers. Empty means every class type.
Show child attributes
Show child attributes
How the attendee got in. Empty means every route in.
Show child attributes
Show child attributes
Was this page helpful?