{
  "openapi": "3.0.1",
  "info": {
    "title": "FSBO Scraper",
    "description": "[💰 $5.0 / 1K] Extract For Sale By Owner property listings from FSBO.com. Get direct seller contact info (name + phone), price, address, beds/baths, square footage, photos, and full property description. Search by state, city, ZIP code, or paste FSBO.com URLs.",
    "version": "1.0",
    "x-build-id": "PQUoBa51strZeohyH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~fsbo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-fsbo-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/solidcode~fsbo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-fsbo-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/solidcode~fsbo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-fsbo-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": {
          "startUrls": {
            "title": "FSBO.com URLs",
            "type": "array",
            "description": "Paste one or more FSBO.com search or listing URLs directly. Any filters in the URL (state, city, price, beds, property type) are honored as-is. Mix URLs and search locations freely — both are scraped in one run.",
            "items": {
              "type": "string"
            }
          },
          "searchLocations": {
            "title": "Search Locations",
            "type": "array",
            "description": "Search by US state, city + state, or ZIP code. Accepted formats: 'Florida', 'Austin, TX', '78701'. Add multiple entries to scrape several markets in one run.",
            "items": {
              "type": "string"
            }
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "all",
              "single_family",
              "condo",
              "townhouse",
              "multi_family",
              "mobile_home",
              "land",
              "other"
            ],
            "type": "string",
            "description": "Filter results by property type. Only applies to Search Locations — ignored when using URLs (URLs carry their own type filter)."
          },
          "minPrice": {
            "title": "Minimum Price (USD)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Only return listings priced at or above this amount. Leave blank for no minimum."
          },
          "maxPrice": {
            "title": "Maximum Price (USD)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Only return listings priced at or below this amount. Leave blank for no maximum."
          },
          "minBeds": {
            "title": "Minimum Bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Only return listings with at least this many bedrooms. Listings that publish no bedroom count at all (typically land, mobile homes and 'other') are left out when you set this, so every result really has the number you asked for."
          },
          "minBaths": {
            "title": "Minimum Bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Only return listings with at least this many bathrooms. Listings that publish no bathroom count at all (typically land, mobile homes and 'other') are left out when you set this, so every result really has the number you asked for."
          },
          "includePropertyDetails": {
            "title": "Include Full Property Details",
            "type": "boolean",
            "description": "Open each listing's own page to capture the owner's name, county, neighborhood, school district, lot size, HOA fee, room-level features, and the complete photo array. Disable for faster, cheaper card-level runs — price, address, beds/baths/sqft, year built, description and the primary photo all still come through, but owner names are only published on a listing's own page, so they come back empty when this is off."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on total listings across all URLs and searches. Default 100 — increase for bigger runs, or set to 0 for no cap (an internal upper limit of 100,000 still applies to prevent infinite pagination). The run stops exactly on this number, so you are never charged for more listings than you asked for. Caps below 50 return the first page of results (up to 50 listings), which is the smallest page FSBO.com serves."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}