RunSignup Results API

Submit, import, and retrieve race results including finishing times, result sets, and full results with place and time data.

Operations 6

GET /race/{race_id}/results/get-results Get Race Results #
POST /race/{race_id}/results/full-results Post Full Race Results #
POST /race/{race_id}/results/finishing-times Post Finishing Times #
POST /race/{race_id}/results/start-time Set Race Start Time #
POST /race/{race_id}/results/clear-results Clear Race Results #
POST /race/{race_id}/results/csv-import Import Results from CSV #

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/runsignup-results-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

runsignup-results-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RunSignup Corrals Results 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: Results
  description: Submit, import, and retrieve race results including finishing times, result sets, and full results with place and time data.
paths:
  /race/{race_id}/results/get-results:
    get:
      operationId: getRaceResults
      summary: Get Race Results
      description: Returns all results across all result sets for a race. Includes placing, finish time, chip time, and division results for each participant.
      tags:
      - Results
      parameters:
      - $ref: '#/components/parameters/RaceId'
      - name: event_id
        in: query
        description: Filter by specific event ID
        schema:
          type: integer
      - name: format
        in: query
        schema:
          type: string
          enum:
          - json
          - xml
          default: json
      responses:
        '200':
          description: Race results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /race/{race_id}/results/full-results:
    post:
      operationId: postRaceResults
      summary: Post Full Race Results
      description: Submits complete race results for an event. Each result includes registration ID, place, clock time, and optionally chip time. This is the primary endpoint used by timing systems to upload results.
      tags:
      - Results
      parameters:
      - $ref: '#/components/parameters/RaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FullResultsRequest'
      responses:
        '200':
          description: Results posted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultsPostResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /race/{race_id}/results/finishing-times:
    post:
      operationId: postFinishingTimes
      summary: Post Finishing Times
      description: Posts finishing time data for participants in an event. Designed for real-time results updates from timing systems during or after a race.
      tags:
      - Results
      parameters:
      - $ref: '#/components/parameters/RaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinishingTimesRequest'
      responses:
        '200':
          description: Finishing times posted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultsPostResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /race/{race_id}/results/start-time:
    post:
      operationId: setRaceStartTime
      summary: Set Race Start Time
      description: Sets the official start time for a race event. Used by timing systems to record the gun time or wave start time.
      tags:
      - Results
      parameters:
      - $ref: '#/components/parameters/RaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - event_id
              - start_time
              properties:
                event_id:
                  type: integer
                  description: The event to set start time for
                start_time:
                  type: string
                  description: Start time in format HH:MM:SS.ms
      responses:
        '200':
          description: Start time set
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /race/{race_id}/results/clear-results:
    post:
      operationId: clearRaceResults
      summary: Clear Race Results
      description: Removes all results for a specified result set. Use with caution as this operation cannot be undone.
      tags:
      - Results
      parameters:
      - $ref: '#/components/parameters/RaceId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                result_set_id:
                  type: integer
                event_id:
                  type: integer
      responses:
        '200':
          description: Results cleared
        '401':
          $ref: '#/components/responses/Unauthorized'
  /race/{race_id}/results/csv-import:
    post:
      operationId: importResultsFromCsv
      summary: Import Results from CSV
      description: Imports race results from a CSV file upload. The CSV must include at minimum bib number and finish time columns.
      tags:
      - Results
      parameters:
      - $ref: '#/components/parameters/RaceId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: CSV file with results data
                event_id:
                  type: integer
      responses:
        '200':
          description: Results imported
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultsPostResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    FinishingTimesRequest:
      type: object
      required:
      - event_id
      - times
      properties:
        event_id:
          type: integer
        times:
          type: array
          items:
            type: object
            properties:
              chip_num:
                type: string
              bib_num:
                type: string
              finish_time:
                type: string
    ResultsPostResponse:
      type: object
      properties:
        results_submitted:
          type: integer
        errors:
          type: integer
        error_details:
          type: array
          items:
            type: object
            properties:
              registration_id:
                type: integer
              message:
                type: string
    FullResultsRequest:
      type: object
      required:
      - event_id
      - results
      properties:
        event_id:
          type: integer
          description: The event to post results for
        result_set_name:
          type: string
          description: Name for this result set (defaults to "Official")
        results:
          type: array
          items:
            type: object
            required:
            - registration_id
            - place
            - clock_time
            properties:
              registration_id:
                type: integer
              bib_num:
                type: string
              place:
                type: integer
                description: Overall finish place
              clock_time:
                type: string
                description: Gun/clock time (HH:MM:SS.ms)
              chip_time:
                type: string
                description: Net chip time (HH:MM:SS.ms)
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error code
        error_msg:
          type: string
          description: Human-readable error message
    Result:
      type: object
      properties:
        result_id:
          type: integer
        registration_id:
          type: integer
        bib_num:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        clock_time:
          type: string
          description: Clock time from gun start (HH:MM:SS.ms)
        chip_time:
          type: string
          description: Net chip time (HH:MM:SS.ms)
        place_overall:
          type: integer
        place_gender:
          type: integer
        place_division:
          type: integer
        gender:
          type: string
        age:
          type: integer
        event_id:
          type: integer
        pace:
          type: string
    ResultsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Result'
        total_results:
          type: integer
  responses:
    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'
    NotFound:
      description: Resource not found
      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