{
  "openapi": "3.0.1",
  "info": {
    "title": "Professional Cycling Results & Classifications",
    "description": "Returns cycling race winners, stage results, GC, points, mountains, youth, and team classifications. Export data, run via API, schedule and monitor runs, or integrate with other tools.",
    "version": "0.1",
    "x-build-id": "FXswDiberkgrKyZbx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trovevault~professional-cycling-results-classifications/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trovevault-professional-cycling-results-classifications",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/trovevault~professional-cycling-results-classifications/runs": {
      "post": {
        "operationId": "runs-sync-trovevault-professional-cycling-results-classifications",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/trovevault~professional-cycling-results-classifications/run-sync": {
      "post": {
        "operationId": "run-sync-trovevault-professional-cycling-results-classifications",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "raceName",
          "year",
          "resultScope"
        ],
        "properties": {
          "raceName": {
            "title": "Race",
            "enum": [
              "Tour de France",
              "Giro d'Italia",
              "La Vuelta Ciclista a Espana",
              "Paris-Roubaix",
              "Ronde van Vlaanderen",
              "Milano-Sanremo",
              "Liege-Bastogne-Liege",
              "Il Lombardia",
              "Amstel Gold Race",
              "La Fleche Wallonne",
              "Strade Bianche",
              "Paris-Nice",
              "Tirreno-Adriatico",
              "Volta Ciclista a Catalunya",
              "Itzulia Basque Country",
              "Tour de Romandie",
              "Criterium du Dauphine",
              "Tour de Suisse",
              "Tour de Pologne",
              "Renewi Tour",
              "Santos Tour Down Under",
              "Cadel Evans Great Ocean Road Race",
              "UAE Tour",
              "Omloop Nieuwsblad",
              "E3 Saxo Classic",
              "Gent-Wevelgem",
              "Dwars door Vlaanderen",
              "Eschborn-Frankfurt",
              "Copenhagen Sprint",
              "Clasica San Sebastian",
              "ADAC Cyclassics",
              "Bretagne Classic",
              "Grand Prix Cycliste de Quebec",
              "Grand Prix Cycliste de Montreal",
              "Tour of Guangxi",
              "Tour of the Alps",
              "Volta ao Algarve",
              "Vuelta a Andalucia",
              "O Gran Camino",
              "Tour de Provence",
              "Tour de Hongrie",
              "Tour of Norway",
              "Tour of Slovenia",
              "Baloise Belgium Tour",
              "Route d'Occitanie",
              "Tour de Wallonie",
              "Deutschland Tour",
              "Arctic Race of Norway",
              "Tour of Britain",
              "Cro Race",
              "Saudi Tour",
              "AlUla Tour",
              "Vuelta a Burgos",
              "Vuelta a San Juan",
              "Tour de Langkawi",
              "Tour of Oman",
              "Settimana Internazionale Coppi e Bartali",
              "Giro di Sicilia",
              "Giro dell'Emilia",
              "Milano-Torino",
              "Gran Piemonte",
              "Tre Valli Varesine",
              "Coppa Bernocchi",
              "Coppa Sabatini",
              "Brussels Cycling Classic",
              "Grand Prix de Wallonie",
              "Paris-Tours",
              "Kuurne-Bruxelles-Kuurne",
              "Le Samyn",
              "Scheldeprijs",
              "Brabantse Pijl",
              "Famenne Ardenne Classic",
              "Druivenkoers Overijse",
              "Tour de l'Ain",
              "Tour du Limousin",
              "Tour Poitou-Charentes",
              "Classic Var",
              "Faun-Ardeche Classic",
              "Drome Classic",
              "Mercan'Tour Classic Alpes-Maritimes",
              "Mont Ventoux Denivele Challenge",
              "Other race"
            ],
            "type": "string",
            "description": "The professional cycling race to retrieve. The actor resolves this race and year internally, then returns normalized classification and stage rows. Choose Other race when a race is missing from the list and fill Custom Race Name. Recommended: start with major races such as Tour de France, Giro d'Italia, Paris-Roubaix, Tour of Flanders, or La Vuelta Ciclista a Espana.",
            "default": "Tour de France"
          },
          "customRaceName": {
            "title": "Custom Race Name",
            "type": "string",
            "description": "Optional race name used only when Race is set to Other race. The actor converts the text into an internal race lookup, then retrieves the selected year. Use the official race name where possible, for example Tour Colombia, Tour of Antalya, or Circuit Franco-Belge. Custom names may be less reliable than races from the dropdown."
          },
          "year": {
            "title": "Year",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Race edition year to retrieve. The actor combines the race and year to find classifications and stage results for that edition. Use four-digit years such as 2024 or 2025. Older editions can be less complete depending on available public records; recent WorldTour races are usually the best starting point.",
            "default": 2024
          },
          "resultScope": {
            "title": "Result Scope",
            "enum": [
              "winners_only",
              "classifications",
              "stage_results",
              "full_race"
            ],
            "type": "string",
            "description": "Controls how much race information is returned. Winners Only returns classification winners and stage winners; Classifications returns ranking rows for GC, points, mountains, youth, and teams; Stage Results returns stage rankings; Full Race combines classifications and stages. Recommended: Winners Only for fast lookups, Full Race for analytics datasets.",
            "default": "winners_only"
          },
          "maxRankPerClassification": {
            "title": "Max Rank Per Classification",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum ranking position to return for each classification or stage. The actor keeps rows from rank 1 up to this value, so 1 returns winners and 10 returns top tens. Higher values produce larger datasets and longer runs. Recommended: 1 for dashboards, 10 to 25 for analysis.",
            "default": 10
          },
          "includeStagePositions": {
            "title": "Include Stage Positions",
            "type": "boolean",
            "description": "When enabled, stage scopes return rider positions for each stage up to Max Rank Per Classification. When disabled, stage scopes return only stage winners. This is useful when you want a compact winners dataset but still need all classification winners.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings for race lookup requests. Enable Apify Proxy if public result pages block datacenter traffic or return access errors. Residential proxy can improve success rate but increases run cost, so start with the default for small tests.",
            "default": {
              "useApifyProxy": false
            }
          },
          "datasetId": {
            "title": "Dataset ID (optional)",
            "type": "string",
            "description": "ID of an existing Apify dataset to append results to in addition to the default run dataset. The actor writes every public result row to both datasets when this is provided. Leave blank for normal standalone runs."
          },
          "runId": {
            "title": "Run ID (optional)",
            "type": "string",
            "description": "Optional pipeline or workflow identifier copied into each output row. Use it to join this dataset with another system, for example fantasy-import-2024-07 or newsroom-tour-preview. Leave blank when you do not need external run tracking."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}