{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Comp Set Builder",
    "description": "Find your real Airbnb competitors with smart matching not every listing in town, just the ones guests compare before booking yours. Get pricing, ratings, reviews, and market positioning data for any location worldwide. Pay per use, no subscription. Built by an active host.",
    "version": "0.1",
    "x-build-id": "EQzqYfhb3Q6wnwekh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/decisive_key~airbnb-comp-set-builder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-decisive_key-airbnb-comp-set-builder",
        "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/decisive_key~airbnb-comp-set-builder/runs": {
      "post": {
        "operationId": "runs-sync-decisive_key-airbnb-comp-set-builder",
        "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/decisive_key~airbnb-comp-set-builder/run-sync": {
      "post": {
        "operationId": "run-sync-decisive_key-airbnb-comp-set-builder",
        "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": {
          "listingUrl": {
            "title": "Your Airbnb Listing URL",
            "type": "string",
            "description": "Paste your Airbnb listing URL (e.g., 'https://www.airbnb.com/rooms/12345'). The Actor auto-extracts property type, bedrooms, capacity, and location. If provided, the manual fields below are ignored."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, neighborhood or address (e.g., 'Austin, TX' or 'Downtown Miami'). Only needed if Listing URL is not provided."
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "entire_home",
              "private_room",
              "shared_room",
              "hotel_room"
            ],
            "type": "string",
            "description": "Type of property to match against. Only needed if Listing URL is not provided.",
            "default": "entire_home"
          },
          "bedrooms": {
            "title": "Bedrooms",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Number of bedrooms in your property. Only needed if Listing URL is not provided.",
            "default": 1
          },
          "maxGuests": {
            "title": "Max Guests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum guest capacity. Only needed if Listing URL is not provided.",
            "default": 4
          },
          "radiusKm": {
            "title": "Search Radius (km)",
            "minimum": 0.5,
            "maximum": 50,
            "type": "number",
            "description": "Radius in kilometers. Use this OR 'Search Radius (mi)' below — not both.",
            "default": 5
          },
          "radiusMi": {
            "title": "Search Radius (mi)",
            "minimum": 0.3,
            "maximum": 31,
            "type": "number",
            "description": "Radius in miles. If provided, overrides the km radius above. Convenient for US users."
          },
          "checkIn": {
            "title": "Check-in Date",
            "type": "string",
            "description": "Optional check-in date for price comparison (YYYY-MM-DD). If omitted, search returns all listings without price filtering."
          },
          "checkOut": {
            "title": "Check-out Date",
            "type": "string",
            "description": "Optional check-out date for price comparison (YYYY-MM-DD). If omitted, search returns all listings without price filtering."
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "auto",
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "MXN",
              "BRL",
              "CHF",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "CZK",
              "JPY",
              "THB",
              "INR",
              "NZD",
              "SGD",
              "HKD",
              "TRY",
              "ZAR",
              "AED",
              "ILS"
            ],
            "type": "string",
            "description": "Currency for prices. Auto-detected from location if not set (e.g., Texas → USD, Portugal → EUR).",
            "default": "auto"
          },
          "maxResults": {
            "title": "Max Competitors",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of competitors to return. Set to 0 for all competitors within the search radius (recommended). Use a number (e.g., 20) to limit output and reduce costs.",
            "default": 0
          },
          "proxyConfig": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxies recommended for Airbnb",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}