{
  "openapi": "3.0.1",
  "info": {
    "title": "Controller.com Aircraft For Sale Scraper",
    "description": "Scrape aircraft for-sale listings from Controller.com - Sandhills Global's aircraft classifieds marketplace. Search by keyword, browse by aircraft category, and filter by price, year, total time, manufacturer, condition, and location.",
    "version": "1.0",
    "x-build-id": "QWwbbKMYsJe5Fy4RA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~controller-aircraft-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-controller-aircraft-scraper",
        "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/crawlerbros~controller-aircraft-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-controller-aircraft-scraper",
        "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/crawlerbros~controller-aircraft-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-controller-aircraft-scraper",
        "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",
        "properties": {
          "searchQuery": {
            "title": "Keyword search",
            "type": "string",
            "description": "Free-text keyword search (make, model, registration #, serial #, etc.). Leave empty to browse by category/filters only.",
            "default": "Cessna"
          },
          "category": {
            "title": "Aircraft category",
            "enum": [
              "",
              "6",
              "9",
              "3",
              "8",
              "5",
              "7",
              "2",
              "433",
              "47",
              "70",
              "1",
              "71",
              "10004",
              "10072"
            ],
            "type": "string",
            "description": "Restrict results to one aircraft category. Leave as \"All aircraft categories\" to search across every aircraft type.",
            "default": ""
          },
          "manufacturer": {
            "title": "Manufacturer(s)",
            "type": "string",
            "description": "Filter by one or more manufacturers as listed on Controller.com (e.g. `Cessna`, `Cirrus`, `Beechcraft`, `Piper`, `Gulfstream`, `Robinson Helicopter`). Separate multiple manufacturers with a comma."
          },
          "state": {
            "title": "State / Province",
            "enum": [
              "",
              "Alabama",
              "Alaska",
              "Arizona",
              "Arkansas",
              "California",
              "Colorado",
              "Connecticut",
              "Delaware",
              "District of Columbia",
              "Florida",
              "Georgia",
              "Hawaii",
              "Idaho",
              "Illinois",
              "Indiana",
              "Iowa",
              "Kansas",
              "Kentucky",
              "Louisiana",
              "Maine",
              "Maryland",
              "Massachusetts",
              "Michigan",
              "Minnesota",
              "Mississippi",
              "Missouri",
              "Montana",
              "Nebraska",
              "Nevada",
              "New Hampshire",
              "New Jersey",
              "New Mexico",
              "New York",
              "North Carolina",
              "North Dakota",
              "Ohio",
              "Oklahoma",
              "Oregon",
              "Pennsylvania",
              "Rhode Island",
              "South Carolina",
              "South Dakota",
              "Tennessee",
              "Texas",
              "Utah",
              "Vermont",
              "Virginia",
              "Washington",
              "West Virginia",
              "Wisconsin",
              "Wyoming",
              "Alberta",
              "British Columbia",
              "Manitoba",
              "New Brunswick",
              "Newfoundland and Labrador",
              "Nova Scotia",
              "Ontario",
              "Prince Edward Island",
              "Quebec",
              "Saskatchewan",
              "Northwest Territories",
              "Nunavut",
              "Yukon"
            ],
            "type": "string",
            "description": "Restrict results to a US state or Canadian province where the aircraft is located.",
            "default": ""
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "",
              "New",
              "Used"
            ],
            "type": "string",
            "description": "Filter by aircraft condition.",
            "default": ""
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "",
              "For Retail",
              "For Lease",
              "For Fractional Ownership"
            ],
            "type": "string",
            "description": "Filter by how the aircraft is being offered.",
            "default": ""
          },
          "priceMin": {
            "title": "Price (min, USD)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Only include listings priced at or above this amount. Listings marked \"Call for price\" are always included regardless of this filter."
          },
          "priceMax": {
            "title": "Price (max, USD)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Only include listings priced at or below this amount. Listings marked \"Call for price\" are always included regardless of this filter."
          },
          "yearMin": {
            "title": "Year built (min)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include aircraft manufactured in or after this year."
          },
          "yearMax": {
            "title": "Year built (max)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include aircraft manufactured in or before this year."
          },
          "totalTimeMin": {
            "title": "Total time (min, hours)",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "Only include aircraft with airframe total time at or above this many hours."
          },
          "totalTimeMax": {
            "title": "Total time (max, hours)",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "Only include aircraft with airframe total time at or below this many hours."
          },
          "seatsMin": {
            "title": "Number of seats (min)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Only include aircraft with at least this many seats."
          },
          "seatsMax": {
            "title": "Number of seats (max)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Only include aircraft with at most this many seats."
          },
          "yearPaintedMin": {
            "title": "Year painted (min)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include aircraft last painted in or after this year. Not every listing reports this spec."
          },
          "yearPaintedMax": {
            "title": "Year painted (max)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include aircraft last painted in or before this year. Not every listing reports this spec."
          },
          "yearInteriorMin": {
            "title": "Year interior refreshed (min)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include aircraft with interior refreshed in or after this year. Not every listing reports this spec."
          },
          "yearInteriorMax": {
            "title": "Year interior refreshed (max)",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include aircraft with interior refreshed in or before this year. Not every listing reports this spec."
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "",
              "priceLowHigh",
              "priceHighLow",
              "yearOldNew",
              "yearNewOld"
            ],
            "type": "string",
            "description": "How results are ordered.",
            "default": ""
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on the number of listings returned.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Controller.com does not require a proxy from Apify datacenter IPs, so this is disabled by default. Enable Apify Proxy (Auto) only if you experience blocking.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}