Group data model

SummaryClub / DetailedClub, but generic across providers (TeamSnap team, PlayHQ org, etc.).

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNoUnique identifier for this group
created_atstring (date-time)NoThe date that this group was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)NoThe last date that this group was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
namestringNoThe group's name
descriptionstringNoThe group's description
sport_typeenumNoThe primary sport of the group Values: RUNNING, CYCLING, SWIMMING, TRIATHLON, WALKING, HIKING, OTHER
group_typeenumNoThe group type Values: CASUAL_CLUB, RACING_TEAM, SHOP, COMPANY, OTHER
addressobjectNoThe group's address
address.address1stringNo
address.address2stringNo
address.citystringNo
address.regionstringNo
address.region_codestringNo
address.postal_codestringNo
address.countrystringNo
address.country_codestringNoISO 2-digit country code
member_countnumberNoThe number of members in the group
following_countnumberNoThe number of athletes the group follows
post_countnumberNoThe number of posts in the group
is_privatebooleanNoWhether the group is private
is_verifiedbooleanNoWhether the group is verified
is_featuredbooleanNoWhether the group is featured
is_adminbooleanNoWhether the authenticated user is an admin of the group
is_ownerbooleanNoWhether the authenticated user is the owner of the group
membership_statusenumNoThe authenticated user's membership status Values: MEMBER, PENDING, NONE
urlstringNoThe group's vanity URL
profile_image_urlstringNoURL to the group's profile picture
cover_image_urlstringNoURL to the group's cover photo
activity_typesstring[]NoThe activity types the group focuses on

TypeScript

TypeScript
export type ClubsGroup = {
	id?: string; // Unique identifier for this group
	created_at?: string-time; // The date that this group was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // The last date that this group was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	name?: string; // The group's name
	description?: string; // The group's description
	sport_type?: 'RUNNING' | 'CYCLING' | 'SWIMMING' | 'TRIATHLON' | 'WALKING' | 'HIKING' | 'OTHER'; // The primary sport of the group
	group_type?: 'CASUAL_CLUB' | 'RACING_TEAM' | 'SHOP' | 'COMPANY' | 'OTHER'; // The group type
	address?: {
		address1?: string; 
		address2?: string; 
		city?: string; 
		region?: string; 
		region_code?: string; 
		postal_code?: string; 
		country?: string; 
		country_code?: string; // ISO 2-digit country code 
	}; // The group's address
	member_count?: number; // The number of members in the group
	following_count?: number; // The number of athletes the group follows
	post_count?: number; // The number of posts in the group
	is_private?: boolean; // Whether the group is private
	is_verified?: boolean; // Whether the group is verified
	is_featured?: boolean; // Whether the group is featured
	is_admin?: boolean; // Whether the authenticated user is an admin of the group
	is_owner?: boolean; // Whether the authenticated user is the owner of the group
	membership_status?: 'MEMBER' | 'PENDING' | 'NONE'; // The authenticated user's membership status
	url?: string; // The group's vanity URL
	profile_image_url?: string; // URL to the group's profile picture
	cover_image_url?: string; // URL to the group's cover photo
	activity_types?: string[]; // The activity types the group focuses on
	raw?: any; // The raw data returned by the integration for this group
} 

Zod

Zod
import { z } from 'zod';

export const ZodClubsGroup = z.object({
	id: z.string().optional().describe("Unique identifier for this group"),
	created_at: z.string-time().optional().describe("The date that this group was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("The last date that this group was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	name: z.string().optional().describe("The group's name"),
	description: z.string().optional().describe("The group's description"),
	sport_type: z.enum("RUNNING", "CYCLING", "SWIMMING", "TRIATHLON", "WALKING", "HIKING", "OTHER").optional().describe("The primary sport of the group"),
	group_type: z.enum("CASUAL_CLUB", "RACING_TEAM", "SHOP", "COMPANY", "OTHER").optional().describe("The group type"),
	address: z.object({
			address1: z.string().optional(),
			address2: z.string().optional(),
			city: z.string().optional(),
			region: z.string().optional(),
			region_code: z.string().optional(),
			postal_code: z.string().optional(),
			country: z.string().optional(),
			country_code: z.string().optional().describe("ISO 2-digit country code")
}).optional().describe("The group's address"),
	member_count: z.number().optional().describe("The number of members in the group"),
	following_count: z.number().optional().describe("The number of athletes the group follows"),
	post_count: z.number().optional().describe("The number of posts in the group"),
	is_private: z.boolean().optional().describe("Whether the group is private"),
	is_verified: z.boolean().optional().describe("Whether the group is verified"),
	is_featured: z.boolean().optional().describe("Whether the group is featured"),
	is_admin: z.boolean().optional().describe("Whether the authenticated user is an admin of the group"),
	is_owner: z.boolean().optional().describe("Whether the authenticated user is the owner of the group"),
	membership_status: z.enum("MEMBER", "PENDING", "NONE").optional().describe("The authenticated user's membership status"),
	url: z.string().optional().describe("The group's vanity URL"),
	profile_image_url: z.string().optional().describe("URL to the group's profile picture"),
	cover_image_url: z.string().optional().describe("URL to the group's cover photo"),
	activity_types: z.array().optional().describe("The activity types the group focuses on"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class ClubsGroupSport_type(str, Enum):
	RUNNING = 'RUNNING'
	CYCLING = 'CYCLING'
	SWIMMING = 'SWIMMING'
	TRIATHLON = 'TRIATHLON'
	WALKING = 'WALKING'
	HIKING = 'HIKING'
	OTHER = 'OTHER'

@dataclasses.dataclass
class ClubsGroupGroup_type(str, Enum):
	CASUAL_CLUB = 'CASUAL_CLUB'
	RACING_TEAM = 'RACING_TEAM'
	SHOP = 'SHOP'
	COMPANY = 'COMPANY'
	OTHER = 'OTHER'

@dataclasses.dataclass
class ClubsGroupMembership_status(str, Enum):
	MEMBER = 'MEMBER'
	PENDING = 'PENDING'
	NONE = 'NONE'

@dataclasses.dataclass
class PropertyClubsGroupAddress:
	address1: Optional[str]
	address2: Optional[str]
	city: Optional[str]
	region: Optional[str]
	region_code: Optional[str]
	postal_code: Optional[str]
	country: Optional[str]
	"""ISO 2-digit country code"""
	country_code: Optional[str]

@dataclasses.dataclass
class ClubsGroup:
	"""Unique identifier for this group"""
	id: Optional[str]
	"""The date that this group was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""The last date that this group was updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""The group's name"""
	name: Optional[str]
	"""The group's description"""
	description: Optional[str]
	"""The primary sport of the group"""
	sport_type: Optional[ClubsGroupSport_type]
	"""The group type"""
	group_type: Optional[ClubsGroupGroup_type]
	"""The group's address"""
	address: Optional[PropertyClubsGroupAddress]
	"""The number of members in the group"""
	member_count: Optional[int]
	"""The number of athletes the group follows"""
	following_count: Optional[int]
	"""The number of posts in the group"""
	post_count: Optional[int]
	"""Whether the group is private"""
	is_private: Optional[bool]
	"""Whether the group is verified"""
	is_verified: Optional[bool]
	"""Whether the group is featured"""
	is_featured: Optional[bool]
	"""Whether the authenticated user is an admin of the group"""
	is_admin: Optional[bool]
	"""Whether the authenticated user is the owner of the group"""
	is_owner: Optional[bool]
	"""The authenticated user's membership status"""
	membership_status: Optional[ClubsGroupMembership_status]
	"""The group's vanity URL"""
	url: Optional[str]
	"""URL to the group's profile picture"""
	profile_image_url: Optional[str]
	"""URL to the group's cover photo"""
	cover_image_url: Optional[str]
	"""The activity types the group focuses on"""
	activity_types: Optional[List[List[str]]]
Are we missing anything? Let us know
Was this page helpful?