curl --request GET \
--url https://api.1club.ai/v1/platform/competitors \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/competitors"
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/competitors', 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/competitors",
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/competitors"
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/competitors")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/competitors")
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": [
{
"id": 123,
"name": "<string>",
"website": "<string>",
"googlePlaceId": "<string>",
"logoUrl": "<string>",
"clubId": 123,
"notes": "<string>",
"lastCheckedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"google": {
"rating": 123,
"ratingCount": 123
},
"latestChanges": [
{
"kind": "price_changed",
"name": "<string>",
"before": "<string>",
"after": "<string>"
}
]
}
],
"ownClubs": [
{
"clubId": 123,
"clubName": "<string>",
"onGoogle": true,
"logoUrl": "<string>",
"rating": 123,
"ratingCount": 123
}
],
"importableFromReport": 123,
"limit": 123,
"available": true
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}List competitors
Every competitor the organization follows, by name: its website, its Google rating (read live, cached for a day), when its website was last read and what that reading found changed. ownClubs is the organization’s own clubs’ Google standing to compare against. available is false when the plan does not have Competitors (Grow): the list can still be read, edited and pruned, but nothing is added and no website is read. Requires competitors:read.
curl --request GET \
--url https://api.1club.ai/v1/platform/competitors \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/competitors"
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/competitors', 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/competitors",
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/competitors"
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/competitors")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/competitors")
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": [
{
"id": 123,
"name": "<string>",
"website": "<string>",
"googlePlaceId": "<string>",
"logoUrl": "<string>",
"clubId": 123,
"notes": "<string>",
"lastCheckedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"google": {
"rating": 123,
"ratingCount": 123
},
"latestChanges": [
{
"kind": "price_changed",
"name": "<string>",
"before": "<string>",
"after": "<string>"
}
]
}
],
"ownClubs": [
{
"clubId": 123,
"clubName": "<string>",
"onGoogle": true,
"logoUrl": "<string>",
"rating": 123,
"ratingCount": 123
}
],
"importableFromReport": 123,
"limit": 123,
"available": true
}{
"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.
Response
The organization's competitors
Every competitor on the list, by name
Show child attributes
Show child attributes
The organization's own clubs' Google standing, to compare against
Show child attributes
Show child attributes
Clubs the latest AI visibility report suggested that are not on the list yet
How many competitors the list holds at most
Whether the plan has Competitors (Grow). Without it the list can be read, edited and pruned, but nothing is added and no website is read.
Was this page helpful?