CompTeam Registration API
The Registration API from CompTeam — 14 operation(s) for registration.
The Registration API from CompTeam — 14 operation(s) for registration.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/compteam-io:compteam-io-registration-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Compteam Io Registration API
version: 0.1.0
description: 'Operations tagged Registration across 2 of this provider''s published API definitions: compteam-io-openapi.json, compteam-io-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.compteam.io
description: C-TEAM API host serving this spec and its Swagger UI at /docs
tags:
- name: Registration
paths:
/api/v1/registration/organizations:
get:
tags:
- Registration
summary: List Organizations
operationId: list_organizations_api_v1_registration_organizations_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/OrgOption'
type: array
title: Response List Organizations Api V1 Registration Organizations Get
/api/v1/registration/prepare-account:
post:
tags:
- Registration
summary: Prepare Account
operationId: prepare_account_api_v1_registration_prepare_account_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PrepareAccountRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/registration/andorra-migration/legacy:
post:
tags:
- Registration
summary: Migrate Andorra With Legacy Password
description: Verify the legacy password, attach Auth to the imported profile, and sign in.
operationId: migrate_andorra_with_legacy_password_api_v1_registration_andorra_migration_legacy_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AndorraLegacyMigrationRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/mobile-login:
post:
tags:
- Registration
summary: Mobile Login
operationId: mobile_login_api_v1_registration_mobile_login_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MobileLoginRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/gym-lead:
post:
tags:
- Registration
summary: Capture Gym Lead
description: 'Capture a gym that isn''t on CompTeam yet, surfaced by an athlete at a
dead-end. Public — works logged-out — but attaches the athlete''s identity
when a session is present so the founder can close the loop.'
operationId: capture_gym_lead_api_v1_registration_gym_lead_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GymLeadRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/registration/setup:
post:
tags:
- Registration
summary: Complete Admin Setup
operationId: complete_admin_setup_api_v1_registration_setup_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RegistrationSetupRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/registration/branches:
get:
tags:
- Registration
summary: List Branches
operationId: list_branches_api_v1_registration_branches_get
security:
- HTTPBearer: []
parameters:
- name: organization_id
in: query
required: false
schema:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Organization Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BranchOption'
title: Response List Branches Api V1 Registration Branches Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/branches/{branch_id}:
get:
tags:
- Registration
summary: Get Branch
operationId: get_branch_api_v1_registration_branches__branch_id__get
parameters:
- name: branch_id
in: path
required: true
schema:
type: string
format: uuid
title: Branch Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BranchOption'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/branches/{branch_id}/terms:
get:
tags:
- Registration
summary: Get Branch Terms
operationId: get_branch_terms_api_v1_registration_branches__branch_id__terms_get
security:
- HTTPBearer: []
parameters:
- name: branch_id
in: path
required: true
schema:
type: string
format: uuid
title: Branch Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BranchTerms'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/branches/{branch_id}/membership-plans:
get:
tags:
- Registration
summary: List Branch Membership Plans
operationId: list_branch_membership_plans_api_v1_registration_branches__branch_id__membership_plans_get
security:
- HTTPBearer: []
parameters:
- name: branch_id
in: path
required: true
schema:
type: string
format: uuid
title: Branch Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RegistrationMembershipPlan'
title: Response List Branch Membership Plans Api V1 Registration Branches Branch Id Membership Plans Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/check-profile-fields:
get:
tags:
- Registration
summary: Check Profile Fields
description: Check whether a smoothcomp_id or instagram_handle is already taken by another profile.
operationId: check_profile_fields_api_v1_registration_check_profile_fields_get
security:
- HTTPBearer: []
parameters:
- name: smoothcomp_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Smoothcomp Id
- name: instagram_handle
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Instagram Handle
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/pending:
get:
tags:
- Registration
summary: Get Pending Athlete
description: Return pre-filled data for this athlete if the branch admin imported them.
operationId: get_pending_athlete_api_v1_registration_pending_get
security:
- HTTPBearer: []
parameters:
- name: branch_id
in: query
required: true
schema:
type: string
format: uuid
title: Branch Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/registration/athlete:
post:
tags:
- Registration
summary: Register Athlete
operationId: register_athlete_api_v1_registration_athlete_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AthleteRegistrationRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/registration/athlete/join-branch:
post:
tags:
- Registration
summary: Join Branch
description: An existing athlete joins an additional branch (global profile untouched).
operationId: join_branch_api_v1_registration_athlete_join_branch_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JoinBranchRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
components:
schemas:
PrepareAccountRequest:
properties:
email:
type: string
title: Email
branch_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Branch Id
start_managed_claim:
type: boolean
title: Start Managed Claim
default: false
type: object
required:
- email
title: PrepareAccountRequest
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
RegistrationMembershipPlan:
properties:
id:
type: string
format: uuid
title: Id
name:
type: string
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
price_amount:
anyOf:
- type: number
- type: string
- type: 'null'
title: Price Amount
currency:
anyOf:
- type: string
- type: 'null'
title: Currency
billing_interval:
anyOf:
- type: string
- type: 'null'
title: Billing Interval
allowed_tiers:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Allowed Tiers
min_age_years:
anyOf:
- type: integer
- type: 'null'
title: Min Age Years
max_age_years:
anyOf:
- type: integer
- type: 'null'
title: Max Age Years
perks:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Perks
type: object
required:
- id
- name
title: RegistrationMembershipPlan
RegistrationSetupRequest:
properties:
first_name:
type: string
title: First Name
last_name:
type: string
title: Last Name
branch_name:
anyOf:
- type: string
- type: 'null'
title: Branch Name
organization_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Organization Id
new_org_name:
anyOf:
- type: string
- type: 'null'
title: New Org Name
claim_branch_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Claim Branch Id
city:
anyOf:
- type: string
- type: 'null'
title: City
country:
anyOf:
- type: string
- type: 'null'
title: Country
weight_unit:
type: string
enum:
- kg
- lbs
title: Weight Unit
default: kg
billing_currency:
type: string
enum:
- USD
- EUR
- EGP
- NOK
- DKK
- CHF
- GBP
- CZK
- HUF
- PLN
- RON
- SEK
- ALL
- TRY
title: Billing Currency
default: EUR
default_language:
type: string
enum:
- en
- de
- fr
- es
- pl
title: Default Language
default: en
ref_code:
anyOf:
- type: string
- type: 'null'
title: Ref Code
accept_terms:
type: boolean
title: Accept Terms
default: false
accept_privacy:
type: boolean
title: Accept Privacy
default: false
type: object
required:
- first_name
- last_name
title: RegistrationSetupRequest
BranchOption:
properties:
id:
type: string
format: uuid
title: Id
name:
type: string
title: Name
city:
anyOf:
- type: string
- type: 'null'
title: City
country:
anyOf:
- type: string
- type: 'null'
title: Country
logo_url:
anyOf:
- type: string
- type: 'null'
title: Logo Url
secondary_logo_url:
anyOf:
- type: string
- type: 'null'
title: Secondary Logo Url
secondary_name:
anyOf:
- type: string
- type: 'null'
title: Secondary Name
organization_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Organization Id
require_self_subscription_approval:
type: boolean
title: Require Self Subscription Approval
default: false
require_member_photo:
type: boolean
title: Require Member Photo
default: false
is_unmanaged:
type: boolean
title: Is Unmanaged
default: false
type: object
required:
- id
- name
title: BranchOption
AthleteRegistrationRequest:
properties:
first_name:
type: string
title: First Name
last_name:
type: string
title: Last Name
date_of_birth:
type: string
format: date
title: Date Of Birth
branch_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Branch Id
new_branch_name:
anyOf:
- type: string
- type: 'null'
title: New Branch Name
new_branch_city:
anyOf:
- type: string
- type: 'null'
title: New Branch City
new_branch_country:
anyOf:
- type: string
- type: 'null'
title: New Branch Country
gender:
anyOf:
- type: string
enum:
- male
- female
- other
- type: 'null'
title: Gender
address_line1:
anyOf:
- type: string
- type: 'null'
title: Address Line1
address_line2:
anyOf:
- type: string
- type: 'null'
title: Address Line2
city:
anyOf:
- type: string
- type: 'null'
title: City
postal_code:
anyOf:
- type: string
- type: 'null'
title: Postal Code
country:
anyOf:
- type: string
- type: 'null'
title: Country
smoothcomp_id:
anyOf:
- type: string
- type: 'null'
title: Smoothcomp Id
instagram_handle:
anyOf:
- type: string
- type: 'null'
title: Instagram Handle
membership_plan_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Membership Plan Id
account_holder_name:
anyOf:
- type: string
- type: 'null'
title: Account Holder Name
iban:
anyOf:
- type: string
- type: 'null'
title: Iban
accept_terms:
type: boolean
title: Accept Terms
default: false
accept_data_processing:
type: boolean
title: Accept Data Processing
default: false
terms_version:
type: integer
title: Terms Version
type: object
required:
- first_name
- last_name
- date_of_birth
- terms_version
title: AthleteRegistrationRequest
GymLeadRequest:
properties:
gym_name:
type: string
title: Gym Name
town:
anyOf:
- type: string
- type: 'null'
title: Town
country:
anyOf:
- type: string
- type: 'null'
title: Country
coach_name:
anyOf:
- type: string
- type: 'null'
title: Coach Name
coach_contact:
anyOf:
- type: string
- type: 'null'
title: Coach Contact
athlete_name:
anyOf:
- type: string
- type: 'null'
title: Athlete Name
athlete_contact:
anyOf:
- type: string
- type: 'null'
title: Athlete Contact
message:
anyOf:
- type: string
- type: 'null'
title: Message
source:
type: string
enum:
- gym_not_found
- athlete_signup
title: Source
default: gym_not_found
type: object
required:
- gym_name
title: GymLeadRequest
MobileLoginRequest:
properties:
email:
type: string
title: Email
password:
type: string
title: Password
type: object
required:
- email
- password
title: MobileLoginRequest
OrgOption:
properties:
id:
type: string
format: uuid
title: Id
name:
type: string
title: Name
type: object
required:
- id
- name
title: OrgOption
AndorraLegacyMigrationRequest:
properties:
email:
type: string
format: email
title: Email
password:
type: string
maxLength: 1024
minLength: 1
title: Password
captcha_token:
type: string
maxLength: 2048
minLength: 1
title: Captcha Token
type: object
required:
- email
- password
- captcha_token
title: AndorraLegacyMigrationRequest
JoinBranchRequest:
properties:
branch_id:
type: string
format: uuid
title: Branch Id
address_line1:
anyOf:
- type: string
- type: 'null'
title: Address Line1
address_line2:
anyOf:
- type: string
- type: 'null'
title: Address Line2
city:
anyOf:
- type: string
- type: 'null'
title: City
postal_code:
anyOf:
- type: string
- type: 'null'
title: Postal Code
country:
anyOf:
- type: string
- type: 'null'
title: Country
membership_plan_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Membership Plan Id
account_holder_name:
anyOf:
- type: string
- type: 'null'
title: Account Holder Name
iban:
anyOf:
- type: string
- type: 'null'
title: Iban
accept_terms:
type: boolean
title: Accept Terms
default: false
accept_data_processing:
type: boolean
title: Accept Data Processing
default: false
terms_version:
type: integer
title: Terms Version
type: object
required:
- branch_id
- terms_version
title: JoinBranchRequest
BranchTerms:
properties:
terms_text:
anyOf:
- type: string
- type: 'null'
title: Terms Text
terms_version:
type: integer
title: Terms Version
allow_registration_without_membership:
type: boolean
title: Allow Registration Without Membership
default: false
require_member_photo:
type: boolean
title: Require Member Photo
default: false
type: object
required:
- terms_version
title: BranchTerms
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
x-refined-from:
- compteam-io-openapi.json
- compteam-io-openapi.yml