Skip to main content
POST
Add a competitor

Authorizations

Authorization
string
header
required

Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.

Headers

Idempotency-Key
string

Retry-safe key; a repeat of the same request replays the first response

Maximum string length: 255

Body

application/json
name
string
required
Required string length: 1 - 120
website
string | null

The club's own website, not a social profile. Changing it discards the readings of the old one.

Maximum string length: 500
googlePlaceId
string | null

Their Google place id, for the rating and reviews. On create without a website, the website comes from the place.

Maximum string length: 300
clubId
integer | null

The organization's club it competes with; null for all of them

notes
string | null
Maximum string length: 2000

Response

The competitor

id
integer
name
string
website
string | null

The website the weekly watch reads

googlePlaceId
string | null
logoUrl
string | null

Their logo, as the last reading of their website found it

clubId
integer | null

The organization's club it competes with; null for all of them

notes
string | null
lastCheckedAt
string<date-time> | null

When their website was last read; null until the first reading lands (about a minute after adding)

createdAt
string<date-time>
google
object | null

The club's Google rating, read live and cached for a day at most. Null when it has no Google place or Google did not answer.

latestChanges
object[]

What the latest reading found changed on their website