{
  "openapi": "3.0.1",
  "info": {
    "title": "Craigslist Scraper | Listings, Prices & Details",
    "description": "Collect Craigslist listings across 50 US and Canadian regions. Search cars, housing, jobs, electronics, furniture, services, gigs and events with keyword, price, condition, image and date filters. Export unique listings with descriptions, images, post IDs, locations and category-specific attributes.",
    "version": "0.1",
    "x-build-id": "426QskrhcXyjPZXlO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datascraperes~craigslist-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datascraperes-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/datascraperes~craigslist-scraper/runs": {
      "post": {
        "operationId": "runs-sync-datascraperes-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/datascraperes~craigslist-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-datascraperes-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": {
          "startUrls": {
            "title": "Craigslist URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Optional Craigslist search, category or posting URLs. Use one URL per line, for example https://newyork.craigslist.org/search/sss?query=bike or a direct /view/ posting URL. URL filters are preserved and take precedence over region, category, keyword and other guided filters. Leave empty to build a search from the fields below. Maximum 100 URLs.",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "title": "City / region",
            "enum": [
              "newyork",
              "losangeles",
              "chicago",
              "sfbay",
              "seattle",
              "boston",
              "washingtondc",
              "atlanta",
              "dallas",
              "houston",
              "denver",
              "philadelphia",
              "miami",
              "austin",
              "sandiego",
              "phoenix",
              "portland",
              "minneapolis",
              "detroit",
              "nashville",
              "raleigh",
              "charlotte",
              "baltimore",
              "stlouis",
              "orlando",
              "tampa",
              "lasvegas",
              "sacramento",
              "hartford",
              "columbus",
              "indianapolis",
              "cincinnati",
              "cleveland",
              "kansascity",
              "milwaukee",
              "sanantonio",
              "pittsburgh",
              "newhaven",
              "providence",
              "richmond",
              "salem",
              "saltlakecity",
              "anchorage",
              "honolulu",
              "montreal",
              "toronto",
              "vancouver",
              "calgary",
              "ottawa",
              "edmonton"
            ],
            "type": "string",
            "description": "Select the Craigslist area where the search runs. Example: newyork searches New York City; toronto searches Toronto, Canada. This setting is ignored when startUrls contains a URL.",
            "default": "newyork"
          },
          "category": {
            "title": "Category",
            "enum": [
              "sss",
              "cta",
              "ela",
              "fua",
              "apa",
              "roo",
              "sub",
              "jjj",
              "ggg",
              "bbb",
              "ccc",
              "rrr",
              "eee"
            ],
            "type": "string",
            "description": "Choose the top-level Craigslist category to search. Use the code that matches the category: sss = For sale; cta = Cars & trucks; ela = Electronics; fua = Furniture; apa = Apartments & houses; roo = Rooms & shares; sub = Sublets & temporary; jjj = Jobs; ggg = Gigs; bbb = Services; ccc = Community; rrr = Resumes; eee = Events. Example: select cta to collect vehicle listings or jjj to collect jobs. Use startUrls when you need a specific subcategory URL.",
            "default": "sss"
          },
          "searchTerm": {
            "title": "Search keyword",
            "maxLength": 500,
            "type": "string",
            "description": "Optional keyword or phrase sent to Craigslist's search filter. Example: enter electric bike to find listings matching those words. Leave empty to collect the newest listings without a keyword. Maximum 500 characters."
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Optional lower bound for the asking price, expressed in the listing region's currency (USD or CAD). Example: 500 returns listings priced at 500 or more. Leave empty when price filtering does not apply."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Optional upper bound for the asking price, expressed in the listing region's currency (USD or CAD). Example: 2500 returns listings priced up to 2,500. Leave empty when price filtering does not apply; it must be greater than or equal to Minimum price."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "like-new",
              "excellent",
              "good",
              "fair",
              "salvage"
            ],
            "type": "string",
            "description": "Filter by the condition selected by the seller in supported for-sale categories. Example: choose excellent to keep only listings marked excellent. any leaves all conditions unchanged.",
            "default": "any"
          },
          "hasImage": {
            "title": "Has images",
            "type": "boolean",
            "description": "When enabled, keep only search results that include at least one Craigslist image. Example: true is useful for photo inventory research; false keeps listings with or without images.",
            "default": false
          },
          "postedToday": {
            "title": "Posted today",
            "type": "boolean",
            "description": "When enabled, apply Craigslist's posted-today filter. Example: true returns listings posted during the current day according to Craigslist; false includes older listings.",
            "default": false
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "date",
              "rel",
              "priceasc",
              "pricedsc"
            ],
            "type": "string",
            "description": "Choose the order within each search. date returns newest first (default), rel uses Craigslist relevance, priceasc sorts from lowest to highest price, and pricedsc sorts from highest to lowest. Sorting already present in a startUrl takes precedence.",
            "default": "date"
          },
          "includeDetails": {
            "title": "Include full details",
            "type": "boolean",
            "description": "When true, fetch each posting page to add the published description, category attributes, dates, map data, gallery images and visible contact text. Example: true gives richer records; false is faster and returns search-listing fields only. Direct posting URLs always receive details.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of unique listings written across all supplied sources. Example: 50 stops after 50 rows; 0 enables the safety cap of up to 100,000 rows. The value is global for the whole run, not per URL.",
            "default": 200
          },
          "includeNearby": {
            "title": "Include nearby regions",
            "type": "boolean",
            "description": "When true, include nearby-area suggestions returned by Craigslist in addition to the selected region. Example: true can broaden a city search; those rows are marked isNearby=true. false keeps only the requested area.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}