{
  "openapi": "3.0.1",
  "info": {
    "title": "redBus Scraper",
    "description": "Search public redBus bus services for one route and travel date. Get structured schedules, fares, seat availability, boarding points, operators, and bus types in your dataset. Filter services by market, fare, time, operator, bus type, or seat availability.",
    "version": "0.0",
    "x-build-id": "74J6ObKTyu1MXshOC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maximedupre~redbus/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maximedupre-redbus",
        "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/maximedupre~redbus/runs": {
      "post": {
        "operationId": "runs-sync-maximedupre-redbus",
        "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/maximedupre~redbus/run-sync": {
      "post": {
        "operationId": "run-sync-maximedupre-redbus",
        "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": [
          "market",
          "origin",
          "destination",
          "travelDate"
        ],
        "properties": {
          "market": {
            "title": "Market",
            "enum": [
              "co",
              "id",
              "in",
              "my",
              "pe",
              "sg"
            ],
            "type": "string",
            "description": "Choose the redBus market to search. This sets the route source and fare currency."
          },
          "origin": {
            "title": "Origin",
            "minLength": 1,
            "type": "string",
            "description": "Enter the departure city or bus station."
          },
          "destination": {
            "title": "Destination",
            "minLength": 1,
            "type": "string",
            "description": "Enter the arrival city or bus station."
          },
          "travelDate": {
            "title": "Travel date",
            "type": "string",
            "description": "Enter a calendar date such as 2026-10-01 or a relative interval such as 1 day from now. Relative dates are resolved in UTC."
          },
          "operators": {
            "title": "Operators",
            "type": "array",
            "description": "Keep services run by these operators. Enter one or more names, or leave this empty to include all operators.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "busTypes": {
            "title": "Bus types",
            "type": "array",
            "description": "Keep services with these bus types. Enter one or more types, or leave this empty to include all bus types.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "minFare": {
            "title": "Minimum fare",
            "minimum": 0,
            "type": "number",
            "description": "Keep services with a fare at or above this amount in the selected market's currency."
          },
          "maxFare": {
            "title": "Maximum fare",
            "minimum": 0,
            "type": "number",
            "description": "Keep services with a fare at or below this amount in the selected market's currency."
          },
          "departureWindow": {
            "title": "Departure time",
            "required": [],
            "type": "object",
            "description": "Keep services that depart within this window. Set the start, end, or both times in the selected market's local time.",
            "properties": {
              "from": {
                "title": "From",
                "type": "string",
                "description": "Earliest departure time in HH:MM.",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              },
              "to": {
                "title": "To",
                "type": "string",
                "description": "Latest departure time in HH:MM.",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              }
            },
            "additionalProperties": false
          },
          "arrivalWindow": {
            "title": "Arrival time",
            "required": [],
            "type": "object",
            "description": "Keep services that arrive within this window. Set the start, end, or both times in the selected market's local time.",
            "properties": {
              "from": {
                "title": "From",
                "type": "string",
                "description": "Earliest arrival time in HH:MM.",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              },
              "to": {
                "title": "To",
                "type": "string",
                "description": "Latest arrival time in HH:MM.",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              }
            },
            "additionalProperties": false
          },
          "onlyAvailableSeats": {
            "title": "Only services with seats",
            "type": "boolean",
            "description": "Turn this on to keep only services with seats available. Leave it off to include all matching services.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}