openapi: 3.1.0 info: title: RunSignup Corrals Teams API description: The RunSignup REST API provides access to race and event management operations for the RunSignup platform. It enables race directors, timing companies, affiliates, and technology partners to integrate race registration, participant management, results posting, bib and chip assignment, division management, team management, fundraising, volunteer management, and user account management. The API covers 100+ endpoints across 29 categories. Authentication uses OAuth 2.0 (preferred) or permanent API keys for partners and timers. The base URL is https://runsignup.com/Rest and responses are available in JSON or XML format. version: '1.0' contact: name: RunSignup Support url: https://runsignup.com/support termsOfService: https://runsignup.com/terms servers: - url: https://runsignup.com/Rest description: RunSignup REST API security: - OAuth2: [] - apiKeyAuth: [] tags: - name: Teams description: Manage teams and groups for team-based race events. paths: /race/{race_id}/teams: get: operationId: getRaceTeams summary: Get Race Teams description: Returns teams and groups registered for a race event. Includes team names, members, and team scores where applicable. tags: - Teams parameters: - $ref: '#/components/parameters/RaceId' - name: event_id in: query schema: type: integer - name: page in: query schema: type: integer default: 1 responses: '200': description: Race teams content: application/json: schema: $ref: '#/components/schemas/TeamsResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: addOrEditTeams summary: Add or Edit Race Teams description: Creates new teams or updates existing team records for a race. tags: - Teams parameters: - $ref: '#/components/parameters/RaceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TeamsUpdateRequest' responses: '200': description: Teams updated '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: schemas: ErrorResponse: type: object properties: error: type: string description: Error code error_msg: type: string description: Human-readable error message TeamsUpdateRequest: type: object properties: teams: type: array items: $ref: '#/components/schemas/Team' Team: type: object properties: team_id: type: integer name: type: string description: Team name member_count: type: integer event_id: type: integer captain_user_id: type: integer TeamsResponse: type: object properties: teams: type: array items: $ref: '#/components/schemas/Team' total_results: type: integer responses: NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Bad request - invalid parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Unauthorized - invalid or missing authentication content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' parameters: RaceId: name: race_id in: path required: true description: The unique ID of the race schema: type: integer securitySchemes: OAuth2: type: oauth2 description: OAuth 2.0 authentication (preferred) flows: authorizationCode: authorizationUrl: https://runsignup.com/OAuth/Authorize tokenUrl: https://runsignup.com/OAuth/Token scopes: read: Read access to race and participant data write: Write access to race and participant data apiKeyAuth: type: apiKey in: query name: api_key description: Permanent API key for affiliates, partners, and timers. Pass api_key and api_secret as query parameters. externalDocs: description: RunSignup API Documentation url: https://runsignup.com/API