{
  "openapi": "3.0.1",
  "info": {
    "title": "Craigslist Listings Scraper - Housing, For Sale, Jobs, Cars",
    "description": "Scrapes Craigslist (craigslist.org) classified listings in any city and category: title, price, location, coordinates, address, bedrooms, square feet, attributes, description, images and posted date. Search by area, keyword and filters, a search URL or a posting URL.",
    "version": "1.0",
    "x-build-id": "7eIVHM9sP1essf4YH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/confidential_gnat~craigslist-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-confidential_gnat-craigslist-listings-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/confidential_gnat~craigslist-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-confidential_gnat-craigslist-listings-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/confidential_gnat~craigslist-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-confidential_gnat-craigslist-listings-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": "Search or posting URLs",
            "type": "array",
            "description": "Craigslist search URLs (for example https://www.craigslist.org/search/area/sfbay?cat=apa or the older https://sfbay.craigslist.org/search/apa?query=loft) or single posting URLs (https://www.craigslist.org/view/d/... or https://sfbay.craigslist.org/eby/apa/d/.../7977442854.html). Filters in a search URL are kept.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "areas": {
            "title": "Areas (cities)",
            "type": "array",
            "description": "Craigslist area hostnames to search, for example newyork, sfbay, chicago, losangeles, london, toronto. The hostname is the first part of the area's old address (newyork.craigslist.org). Each area is searched separately with the category and filters below.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Craigslist category code used with Areas, for example sss (all for sale), apa (apartments for rent), hhh (all housing), cta (cars and trucks), bia (bicycles), jjj (all jobs), ggg (gigs), bbb (services), ccc (community). A hub name such as studio-apartment also works.",
            "default": "sss"
          },
          "searchQuery": {
            "title": "Search keywords",
            "type": "string",
            "description": "Keywords to search for in the chosen areas, for example bike or honda civic."
          },
          "maxItems": {
            "title": "Max items per search",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum unique listings saved for each area or search URL. Craigslist shows at most 10,000 results per search.",
            "default": 5
          },
          "cacheProjectName": {
            "title": "Cache project name",
            "type": "string",
            "description": "Use the same name on each scheduled run to get only new listings. Listings already scraped under this name are skipped and not charged, and they do not count towards Max items. Each record gets changeType: new."
          },
          "scrapeDetails": {
            "title": "Scrape full posting",
            "type": "boolean",
            "description": "Open every posting to get the description, street address, attributes, bathrooms, all photos, posted and updated dates. Turn off for faster, cheaper runs with the search data only. Posting URLs always include the details.",
            "default": true
          },
          "titlesOnly": {
            "title": "Search titles only",
            "type": "boolean",
            "description": "Match the keywords in listing titles only.",
            "default": false
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price, in the area's currency."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price, in the area's currency."
          },
          "minBedrooms": {
            "title": "Min bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Housing categories only."
          },
          "maxBedrooms": {
            "title": "Max bedrooms",
            "minimum": 0,
            "type": "integer",
            "description": "Housing categories only."
          },
          "catsOk": {
            "title": "Cats OK",
            "type": "boolean",
            "description": "Housing categories only: listings that allow cats.",
            "default": false
          },
          "dogsOk": {
            "title": "Dogs OK",
            "type": "boolean",
            "description": "Housing categories only: listings that allow dogs.",
            "default": false
          },
          "hasImage": {
            "title": "Has image",
            "type": "boolean",
            "description": "Only listings with at least one photo.",
            "default": false
          },
          "postedToday": {
            "title": "Posted today",
            "type": "boolean",
            "description": "Only listings posted today.",
            "default": false
          },
          "postal": {
            "title": "ZIP / postal code",
            "type": "string",
            "description": "Search around this ZIP or postal code (use with Search distance)."
          },
          "searchDistance": {
            "title": "Search distance",
            "minimum": 1,
            "type": "integer",
            "description": "Radius around the ZIP / postal code, in the area's distance unit (miles in the US)."
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "date",
              "dateoldest",
              "priceasc",
              "pricedsc",
              "rel"
            ],
            "type": "string",
            "description": "Order of the results. Leave empty for the site default (newest first, or relevance for keyword searches)."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Craigslist works without a proxy for normal runs. Enable Apify Proxy (datacenter) for large runs or if you get blocked.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}