{
  "openapi": "3.0.1",
  "info": {
    "title": "Airbnb Scraper - Host Leads, Emails, Phones & Revenue",
    "description": "Turn Airbnb listings into prospecting-ready host leads. Search any city or paste listing URLs to extract prices, reviews, amenities, rich host profiles and daily availability. Find public business emails, phone numbers and social profiles with source links, plus occupancy and revenue estimates.",
    "version": "0.1",
    "x-build-id": "pHo6N67H5DjhLwsM7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trakk~airbnb-scraper-v2/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trakk-airbnb-scraper-v2",
        "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/trakk~airbnb-scraper-v2/runs": {
      "post": {
        "operationId": "runs-sync-trakk-airbnb-scraper-v2",
        "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/trakk~airbnb-scraper-v2/run-sync": {
      "post": {
        "operationId": "run-sync-trakk-airbnb-scraper-v2",
        "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": {
          "researchPreset": {
            "title": "Research preset",
            "enum": [
              "quick-test",
              "market-scan",
              "review-intelligence",
              "revenue",
              "contacts",
              "full-audit",
              "custom"
            ],
            "type": "string",
            "description": "Choose a ready-made setup. You can still adjust the fields below.",
            "default": "quick-test"
          },
          "mode": {
            "title": "Run mode",
            "enum": [
              "auto",
              "search-fast",
              "search-full",
              "urls"
            ],
            "type": "string",
            "description": "Choose a quick location search, a detailed listing scrape, or direct Airbnb URLs.",
            "default": "auto"
          },
          "locationQueries": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, neighborhoods, or Airbnb location search terms. Example: Prague, Barcelona, New York.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Airbnb listing URLs",
            "type": "array",
            "description": "Paste direct listing URLs such as https://www.airbnb.com/rooms/123456789.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "checkIn": {
            "title": "Check-in",
            "type": "string",
            "description": "Add a future date when you need date-aware prices and availability."
          },
          "checkOut": {
            "title": "Check-out",
            "type": "string",
            "description": "Must be later than check-in."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Number of adult guests.",
            "default": 2
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Children ages 2-12.",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Infants under 2.",
            "default": 0
          },
          "pets": {
            "title": "Pets",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of pets.",
            "default": 0
          },
          "maxItemsPerQuery": {
            "title": "Listings per source",
            "minimum": 1,
            "maximum": 270,
            "type": "integer",
            "description": "Maximum listings to save per location or per URL batch. Use 10 for a quick test.",
            "default": 10
          },
          "includeContacts": {
            "title": "📬 Include public emails, phones & social profiles",
            "type": "boolean",
            "description": "Check the listing's public text and identity-matched official business websites. Includes source links. Private booking-only contact details are not exposed. Auto detect selects full details when enabled. Included in the listing result, with no separate contact event.",
            "default": false
          },
          "contactWebsites": {
            "title": "Known official websites (optional)",
            "type": "object",
            "description": "Optional mapping of Airbnb listing IDs to official property or operator websites. The site must match the listing's business and location or link to that listing. Example: {\"123456789\": \"https://www.example.com/\"}. Enable public contacts above to use this.",
            "default": {}
          },
          "includeReviews": {
            "title": "Include review texts",
            "type": "boolean",
            "description": "Save guest review text, star ratings, and Review summary analytics. Works in Full search and Direct listing URLs modes.",
            "default": false
          },
          "maxReviewsPerListing": {
            "title": "Reviews per listing",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum guest reviews to save per listing when reviews are enabled. Use 1 or 10 for quick tests, 50 for deeper analysis.",
            "default": 50
          },
          "includeCalendar": {
            "title": "Include availability calendar",
            "type": "boolean",
            "description": "Save a 12-month availability calendar when Airbnb returns it. Works in Full search and Direct listing URLs modes.",
            "default": false
          },
          "analyzeRevenue": {
            "title": "Analyze revenue ($)",
            "type": "boolean",
            "description": "Add a revenue block to every listing: estimated occupancy, ADR (average nightly rate), RevPAR, projected monthly income, typical minimum stay and month-by-month seasonality, plus a market comparison against the other listings in the same run. Computed from the availability calendar the run already downloads, so it needs no extra requests. Turns the calendar on automatically and needs Full search or Direct listing URLs mode. Occupancy is an estimate: Airbnb marks a night unavailable whether it was booked or blocked by the host.",
            "default": false
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price filter in the selected currency."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price filter in the selected currency."
          },
          "roomType": {
            "title": "Room type",
            "enum": [
              "",
              "Entire home/apt",
              "Private room",
              "Shared room",
              "Hotel room"
            ],
            "type": "string",
            "description": "Filter listings by stay type.",
            "default": ""
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Keep listings with at least this many bedrooms."
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Keep listings with at least this many bathrooms."
          },
          "minBeds": {
            "title": "Minimum beds",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Keep listings with at least this many beds."
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR"
            ],
            "type": "string",
            "description": "Currency used for price fields.",
            "default": "USD"
          },
          "locale": {
            "title": "Language",
            "enum": [
              "en",
              "de",
              "fr",
              "es",
              "it",
              "pt",
              "nl",
              "pl",
              "ru"
            ],
            "type": "string",
            "description": "Language for listing text when Airbnb provides it.",
            "default": "en"
          },
          "maxConcurrency": {
            "title": "Speed",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many requests can run in parallel. The default is a balanced choice for most runs.",
            "default": 10
          },
          "maxRetries": {
            "title": "Retry attempts",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to retry a temporary request failure.",
            "default": 3
          },
          "proxy": {
            "title": "Connection",
            "type": "object",
            "description": "Default connection settings work for most runs. Advanced users can customize them here.",
            "default": {
              "useApifyProxy": true
            }
          },
          "rawOutput": {
            "title": "Include raw response",
            "type": "boolean",
            "description": "Adds raw source data for debugging. Keep off for normal exports.",
            "default": false
          },
          "debugLog": {
            "title": "Debug logs",
            "type": "boolean",
            "description": "Enable verbose logs for troubleshooting.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}