{
    "openapi": "3.0.3",
    "info": {
        "title": "Get Race Participants",
        "description": "Get participants for a race.",
        "version": "1.0.0",
        "contact": {
            "name": "RunSignup API Support",
            "url": "https://runsignup.com/API",
            "email": "info@runsignup.com"
        }
    },
    "servers": [
        {
            "url": "https://api.runsignup.com/rest",
            "description": "Production API Server"
        }
    ],
    "tags": [
        {
            "name": "Race Participants",
            "description": "APIs related to Race Participants"
        }
    ],
    "components": {
        "schemas": {
            "Error": {
                "type": "object",
                "properties": {
                    "error": {
                        "type": "string",
                        "description": "Error message"
                    },
                    "details": {
                        "type": "object",
                        "description": "Additional error details",
                        "additionalProperties": true
                    }
                },
                "required": [
                    "error"
                ]
            },
            "BadRequestError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating invalid request parameters or structure"
                    }
                ]
            },
            "UnauthorizedError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating authentication failure"
                    }
                ]
            },
            "ForbiddenError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating the authenticated user lacks required permissions"
                    }
                ]
            },
            "NotFoundError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating the requested resource does not exist"
                    }
                ]
            },
            "ServerError": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Error"
                    },
                    {
                        "description": "Error indicating an unexpected server-side issue"
                    }
                ]
            }
        },
        "securitySchemes": {
            "apiKey": {
                "type": "apiKey",
                "in": "query",
                "name": "api_key",
                "description": "RunSignup API Key"
            },
            "apiSecret": {
                "type": "apiKey",
                "in": "query",
                "name": "api_secret",
                "description": "RunSignup API Secret"
            }
        }
    },
    "paths": {
        "/race/{race_id}/participants": {
            "get": {
                "tags": [
                    "Race Participants"
                ],
                "summary": "Get Race Participants",
                "description": "Get participants for a race.",
                "operationId": "race_:race_id_participants",
                "parameters": [
                    {
                        "name": "race_id",
                        "in": "path",
                        "description": "Path parameter: race_id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "api_key",
                        "in": "query",
                        "description": "API Key",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "api_secret",
                        "in": "query",
                        "description": "API Secret",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "rsu_api_key",
                        "in": "query",
                        "description": "API v2 key. If used, you must send the API secret in an HTTP header named X-RSU-API-SECRET.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sp_api_key",
                        "in": "query",
                        "description": "Super partner API key. If used, you must send the API secret in an HTTP header named X-RSU-API-SECRET.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "X-RSU-API-SECRET",
                        "in": "header",
                        "description": "API v2 or super partner secret.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "Authorization Header. If using OAuth 2.0, fill this in with `Bearer <token>`.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "format",
                        "in": "query",
                        "description": "Format of response. The default if not sent is `xml`, but `json` is preferred.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "xml",
                                "json",
                                "csv"
                            ],
                            "default": "xml"
                        }
                    },
                    {
                        "name": "event_id",
                        "in": "query",
                        "description": "ID of event or list of event IDs separated by commas.",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number to get.",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": "1"
                        }
                    },
                    {
                        "name": "results_per_page",
                        "in": "query",
                        "description": "Number of results per page.",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": "50"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort by \"registration_id\", \"registration_date\", \"age\", \"name\", \"first_name\", \"last_name\", \"bib_num\", \"chip_num\", \"gender\" in ascending (\"ASC\") or descending (\"DESC\") order.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "registration_id ASC"
                        }
                    },
                    {
                        "name": "after_registration_id",
                        "in": "query",
                        "description": "Get registrations after the given registration ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "before_registration_id",
                        "in": "query",
                        "description": "Get registrations before the given registration ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "modified_after_timestamp",
                        "in": "query",
                        "description": "Get registrations modified on or after a given time",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "registered_after_timestamp",
                        "in": "query",
                        "description": "Get registrations registered on or after a given time",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "registered_before_timestamp",
                        "in": "query",
                        "description": "Get registrations registered on or before a given time",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include_counties",
                        "in": "query",
                        "description": "Should the US counties (NOT COUNTRY) be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_template_participant",
                        "in": "query",
                        "description": "Should a template participant be included. Registration ID will be -1.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_user_anonymous_flag",
                        "in": "query",
                        "description": "Should the is_anonymous flag be included on users?",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_questions",
                        "in": "query",
                        "description": "Should question responses be included. Ignored for CSV response type.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_corrals",
                        "in": "query",
                        "description": "Should corrals be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_est_finish",
                        "in": "query",
                        "description": "Should estimated finish times be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_corp_teams",
                        "in": "query",
                        "description": "Should corporate teams be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_registration_addons",
                        "in": "query",
                        "description": "Should registration add-ons be included. Ignored for CSV response type.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_memberships",
                        "in": "query",
                        "description": "Should registration memberships be included. Ignored for CSV response type.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_coupon_details",
                        "in": "query",
                        "description": "Should coupon details be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_registration_notes",
                        "in": "query",
                        "description": "Should registration notes be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_checkin_data",
                        "in": "query",
                        "description": "Should checkin data be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_waiver_info",
                        "in": "query",
                        "description": "Should waiver info be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_multiple_waivers",
                        "in": "query",
                        "description": "Should info for multiple waivers be included?",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_usat_waiver_info",
                        "in": "query",
                        "description": "Should USAT waiver info be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_pending_lottery_selection",
                        "in": "query",
                        "description": "Should pending lottery selection participants be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "exclude_registrations_via_super_event",
                        "in": "query",
                        "description": "Exclude event registrations that are due to the registrant signing up for a super event that includes this event.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_shipping_address",
                        "in": "query",
                        "description": "Should shipping address be included (if enabled).",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_profile_type",
                        "in": "query",
                        "description": "Should profile type be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_profile_image_url",
                        "in": "query",
                        "description": "Should profile image URLs be included.",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "supports_nb",
                        "in": "query",
                        "description": "Does integration support non-binary X gender?",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_fundraisers",
                        "in": "query",
                        "description": "Should fundraiser and team fundraiser information be included?",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_multi_race_bundle_info",
                        "in": "query",
                        "description": "Should multi-race bundle information be included?",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "include_transferred_participants",
                        "in": "query",
                        "description": "Should transferred participants be included?",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "enum": [
                                "T",
                                "F"
                            ],
                            "default": "F"
                        }
                    },
                    {
                        "name": "search_first_name",
                        "in": "query",
                        "description": "Search for users by first name.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search_last_name",
                        "in": "query",
                        "description": "Search for users by last name.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search_email",
                        "in": "query",
                        "description": "Search for users by email address.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search_bib",
                        "in": "query",
                        "description": "Search for users by bib number.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "security": [
                    {
                        "apiKey": [],
                        "apiSecret": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BadRequestError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UnauthorizedError"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ForbiddenError"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/NotFoundError"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ServerError"
                                }
                            }
                        }
                    }
                },
                "x-permissions": [
                    "partners",
                    "race_directors",
                    "timers"
                ]
            }
        }
    }
}