CompTeam Registration API

The Registration API from CompTeam — 14 operation(s) for registration.

GitHub OpenAPI

Operations 14

GET /api/v1/registration/organizations List Organizations #
POST /api/v1/registration/prepare-account Prepare Account #
POST /api/v1/registration/andorra-migration/legacy Migrate Andorra With Legacy Password #
POST /api/v1/registration/mobile-login Mobile Login #
POST /api/v1/registration/gym-lead Capture Gym Lead #
POST /api/v1/registration/setup Complete Admin Setup #
GET /api/v1/registration/branches List Branches #
GET /api/v1/registration/branches/{branch_id} Get Branch #
GET /api/v1/registration/branches/{branch_id}/terms Get Branch Terms #
GET /api/v1/registration/branches/{branch_id}/membership-plans List Branch Membership Plans #
GET /api/v1/registration/check-profile-fields Check Profile Fields #
GET /api/v1/registration/pending Get Pending Athlete #
POST /api/v1/registration/athlete Register Athlete #
POST /api/v1/registration/athlete/join-branch Join Branch #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/compteam-io:compteam-io-registration-api"
All apis
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.

Get an API 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 Specification

compteam-io-registration-api-openapi.yml Raw ↑
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