List a track's members
curl --request GET \
--url https://api.1club.ai/v1/platform/progression-tracks/{id}/members \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/progression-tracks/{id}/members"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.1club.ai/v1/platform/progression-tracks/{id}/members', 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/progression-tracks/{id}/members",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/progression-tracks/{id}/members"
req, _ := http.NewRequest("GET", 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.get("https://api.1club.ai/v1/platform/progression-tracks/{id}/members")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/progression-tracks/{id}/members")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"contact": {
"id": 123,
"firstName": "<string>",
"lastName": "<string>"
},
"levelId": 123,
"levelName": "<string>",
"color": "<string>",
"stripes": 123,
"earnedOn": "2023-12-25",
"promotionProgress": {
"nextLevel": {
"id": 123,
"skill": "<string>",
"level": "<string>",
"color": "<string>"
},
"sessions": 123,
"requiredSessions": 123,
"days": 123,
"requiredDays": 123,
"learnedItems": 123,
"requiredItems": 123,
"eligible": true
}
}
],
"total": 123,
"limit": 123,
"offset": 123
}{
"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": {}
}Contacts
List a track's members
Everyone whose current rank is on the track, lowest rank first, each with their level, stripes, the date they earned it and how close they are to the next rank against its promotion requirement. levelId narrows to one rank (“every yellow belt”); eligibleOnly=true to those who meet every requirement the next rank sets (“who is eligible for grading”). Archived contacts are left out. Requires contacts:read.
GET
/
v1
/
platform
/
progression-tracks
/
{id}
/
members
List a track's members
curl --request GET \
--url https://api.1club.ai/v1/platform/progression-tracks/{id}/members \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/progression-tracks/{id}/members"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.1club.ai/v1/platform/progression-tracks/{id}/members', 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/progression-tracks/{id}/members",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/progression-tracks/{id}/members"
req, _ := http.NewRequest("GET", 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.get("https://api.1club.ai/v1/platform/progression-tracks/{id}/members")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/progression-tracks/{id}/members")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"contact": {
"id": 123,
"firstName": "<string>",
"lastName": "<string>"
},
"levelId": 123,
"levelName": "<string>",
"color": "<string>",
"stripes": 123,
"earnedOn": "2023-12-25",
"promotionProgress": {
"nextLevel": {
"id": 123,
"skill": "<string>",
"level": "<string>",
"color": "<string>"
},
"sessions": 123,
"requiredSessions": 123,
"days": 123,
"requiredDays": 123,
"learnedItems": 123,
"requiredItems": 123,
"eligible": true
}
}
],
"total": 123,
"limit": 123,
"offset": 123
}{
"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
Query Parameters
Only members whose current rank is this level of the track.
Only members who meet every requirement the next rank sets.
Available options:
true, false Required range:
1 <= x <= 100Required range:
x >= 0Was this page helpful?