{
  "openapi": "3.0.1",
  "info": {
    "title": "Craigslist Scraper: Listings, Prices, Housing, Jobs, For Sale",
    "description": "Scrape Craigslist in any city: paste search URLs or pick a city, category and search words. Get title, price, location, date, coordinates and images per posting. Optional full text, attributes (bedrooms, sqft, condition) and large images. Price filters. No login.",
    "version": "1.0",
    "x-build-id": "UzJ2QImK73Xa52CMf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fernandosord~craigslist-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fernandosord-craigslist-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/fernandosord~craigslist-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fernandosord-craigslist-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/fernandosord~craigslist-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fernandosord-craigslist-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": {
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Open a search on Craigslist (any city, category, filters, sort order), copy the address from the browser and paste it here. Old and new style addresses both work, sub-areas too. A link to a single posting also works and returns that posting with full details. Leave empty if you use cities below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Craigslist city names as they appear in the web address, for example toronto, vancouver, newyork, sfbay, london. A full address such as https://toronto.craigslist.org also works. One search runs per city, using the category, search word and filters below.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category (cities mode)",
            "enum": [
              "sss",
              "ata",
              "ppa",
              "ara",
              "sna",
              "pta",
              "wta",
              "ava",
              "baa",
              "bar",
              "haa",
              "bip",
              "bia",
              "bpa",
              "boo",
              "bka",
              "bfa",
              "cta",
              "ema",
              "moa",
              "cla",
              "cba",
              "syp",
              "sya",
              "ela",
              "gra",
              "zip",
              "fua",
              "gms",
              "foa",
              "hva",
              "hsa",
              "jwa",
              "maa",
              "mpa",
              "mca",
              "msa",
              "pha",
              "rva",
              "sga",
              "tia",
              "tla",
              "taa",
              "tra",
              "vga",
              "waa",
              "hhh",
              "apa",
              "swp",
              "off",
              "prk",
              "rea",
              "roo",
              "sub",
              "vac",
              "hou",
              "rew",
              "sha",
              "sbw",
              "jjj",
              "ofc",
              "bus",
              "csr",
              "edu",
              "egr",
              "etc",
              "acc",
              "fbh",
              "lab",
              "gov",
              "hea",
              "hum",
              "lgl",
              "mnu",
              "mar",
              "med",
              "npo",
              "rej",
              "ret",
              "sls",
              "spa",
              "sci",
              "sec",
              "trd",
              "sof",
              "sad",
              "tch",
              "trp",
              "tfr",
              "web",
              "wri",
              "ccc",
              "act",
              "ats",
              "kid",
              "com",
              "grp",
              "vnn",
              "laf",
              "mis",
              "muc",
              "pet",
              "pol",
              "rnr",
              "rid",
              "vol",
              "bbb",
              "aos",
              "bts",
              "cms",
              "cps",
              "crs",
              "cys",
              "evs",
              "fgs",
              "fns",
              "hws",
              "hss",
              "lbs",
              "lgs",
              "lss",
              "mas",
              "pas",
              "rts",
              "sks",
              "biz",
              "trv",
              "wet",
              "ggg",
              "cpg",
              "crg",
              "cwg",
              "dmg",
              "evg",
              "lbg",
              "tlg",
              "wrg",
              "eee",
              "cls",
              "eve",
              "rrr",
              "res"
            ],
            "type": "string",
            "description": "Where to search in each city. Leave empty to search all of for sale. Pick a whole section (housing, jobs, for sale, services, gigs, community) or a single category such as apartments, cars+trucks or bikes. Any other Craigslist category code can be given through the API."
          },
          "query": {
            "title": "Search words (cities mode)",
            "type": "string",
            "description": "Words to look for in the posting title and text, for example \"road bike\". Also applied on top of a pasted search URL if you fill it in."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only postings priced at or above this amount, in the local currency."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only postings priced at or below this amount, in the local currency."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "newest",
              "oldest",
              "priceasc",
              "pricedsc",
              "relevance"
            ],
            "type": "string",
            "description": "How Craigslist orders the results. Leave empty for its default: best match when there are search words, newest otherwise. With a limit, the first results in this order are the ones you get."
          },
          "hasPictures": {
            "title": "Only postings with pictures",
            "type": "boolean",
            "description": "Skip postings that have no image."
          },
          "postedToday": {
            "title": "Only posted today",
            "type": "boolean",
            "description": "Only postings from the last day."
          },
          "titleOnly": {
            "title": "Search titles only",
            "type": "boolean",
            "description": "Match the search words in the title only, not in the posting text."
          },
          "postalCode": {
            "title": "Postal or ZIP code",
            "type": "string",
            "description": "Centre of a radius search, for example M5V2T6 or 94103. Use together with Search distance."
          },
          "searchDistance": {
            "title": "Search distance",
            "minimum": 1,
            "type": "integer",
            "description": "Radius around the postal or ZIP code, in miles for US searches and kilometres elsewhere (the unit Craigslist uses for that country)."
          },
          "includeNearby": {
            "title": "Include nearby areas",
            "type": "boolean",
            "description": "When a search has few local results Craigslist adds postings from nearby areas to the end. They are left out unless you switch this on."
          },
          "includeDetails": {
            "title": "Include full posting details",
            "type": "boolean",
            "description": "Open every posting page to add the full description, all attributes (bedrooms, square feet, condition, make, model and more), all images in large size, original posted date, last updated date and map position. Slower: about one page per posting."
          },
          "maxItems": {
            "title": "Maximum postings (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many postings across all searches. Craigslist returns at most 10,000 results per search."
          },
          "maxItemsPerSearch": {
            "title": "Maximum postings per search",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap for each search URL or city, so one big city does not use up the whole total. Leave empty for no per-search cap."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. The Actor works without a proxy. Switch on Apify Proxy only if Craigslist starts blocking you."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}