{
  "openapi": "3.0.1",
  "info": {
    "title": "Craigslist Scraper: Listings, Phones, Leads and Prices",
    "description": "Search Craigslist services, gigs, jobs, housing, for sale and community by city, category, keyword, price and posted today, or paste links: one row per listing with price, neighbourhood, coordinates, dates, full text, attributes, images and any phone or email it shows. No login.",
    "version": "0.1",
    "x-build-id": "fFooFFK92xsGv1z0Y"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/themineworks~craigslist-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-themineworks-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/themineworks~craigslist-scraper/runs": {
      "post": {
        "operationId": "runs-sync-themineworks-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/themineworks~craigslist-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-themineworks-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": {
          "sites": {
            "title": "Craigslist sites (cities)",
            "type": "array",
            "description": "City sites, one per line, by the first part of the address (sfbay, newyork, chicago, toronto, london), the full address (https://chicago.craigslist.org) or the name Craigslist gives it (SF bay area). Add a sub area after a slash to narrow it: newyork/brk, sfbay/sfc. Every site in the US, Canada and abroad works (707 sites). Empty with keywords: sfbay.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Sections or categories, one per line: services, gigs, jobs, housing, for sale, community, resumes, events, or a category code from Craigslist links (apa apartments, cto cars by owner, sks skilled trade services, cpg computer gigs) or its name (cars & trucks). Empty: for sale.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Keywords (optional)",
            "type": "array",
            "description": "Words to search for, one per line, as you would type them in the Craigslist search box: plumber, roofing, web design, 2 bedroom. Each keyword runs in every site and category above. Empty: every listing in the category.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Craigslist links (optional)",
            "type": "array",
            "description": "Search links (https://sfbay.craigslist.org/search/apa?query=loft&max_price=3000) run as they are, with every filter in the link. Listing links (https://sfbay.craigslist.org/eby/apa/d/walnut-creek-home/7988118918.html) return that listing. Built for one record at a time from Clay, n8n or an AI agent. Up to 5,000 listing links per run.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Every site in these countries (optional)",
            "type": "array",
            "description": "Two letter country codes: every Craigslist site of the country is searched with the categories and keywords above (US has 413 sites, CA 55, GB 27). Up to 200 searches per run, so combine it with one category and one keyword.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max listings per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The most listings to return for each site, category and keyword, 1 to 10,000 (Craigslist serves 10,000 at most per search). Listing links are not limited by this.",
            "default": 100
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "newest",
              "relevance",
              "price_low",
              "price_high",
              "oldest",
              "distance"
            ],
            "type": "string",
            "description": "Craigslist's own order. Newest suits monitoring and lead lists.",
            "default": "newest"
          },
          "minPrice": {
            "title": "Min price (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or above this, in the site's currency."
          },
          "maxPrice": {
            "title": "Max price (optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or below this, in the site's currency."
          },
          "postedToday": {
            "title": "Posted today only",
            "type": "boolean",
            "description": "Only listings posted or renewed in the last 24 hours (Craigslist's posted today filter).",
            "default": false
          },
          "hasImage": {
            "title": "With images only",
            "type": "boolean",
            "description": "Only listings that have at least one image.",
            "default": false
          },
          "titlesOnly": {
            "title": "Search titles only",
            "type": "boolean",
            "description": "Match keywords in titles only, not in the listing text.",
            "default": false
          },
          "hideDuplicates": {
            "title": "Hide duplicates",
            "type": "boolean",
            "description": "Craigslist's own hide duplicates filter: groups listings with the same text.",
            "default": false
          },
          "postalCode": {
            "title": "Near this ZIP or postal code (optional)",
            "type": "string",
            "description": "A US ZIP or Canadian postal code. Searches then return listings within the distance below. Use it with the site that covers the code."
          },
          "searchDistance": {
            "title": "Distance in miles",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "How far from the postal code, 1 to 2,000 miles. Only used with a postal code.",
            "default": 25
          },
          "searchParams": {
            "title": "More Craigslist filters (optional)",
            "type": "object",
            "description": "Any other filter from a Craigslist search link, as JSON: {\"min_bedrooms\": 2, \"pets_dog\": 1} for housing, {\"auto_make_model\": \"toyota\", \"max_auto_miles\": 80000} for cars, {\"employment_type\": 1} for jobs. Easiest: set the filters on craigslist.org and paste the link into Craigslist links instead."
          },
          "includeDetails": {
            "title": "Read each listing in full",
            "type": "boolean",
            "description": "On: every listing is read for its full text, attributes, all images, posted and updated dates, and the phones, emails and websites written in it. Off: only what the result list shows (title, price, location, coordinates, images, date), faster for big price sweeps. Same price per listing.",
            "default": true
          },
          "monitorMode": {
            "title": "Only new listings since the last run (monitor mode)",
            "type": "boolean",
            "description": "On: listings delivered by an earlier run with the same monitor name are skipped before they are read and are not charged. Schedule the run (every hour, every morning) to get only fresh listings each time.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate memories for separate monitors, for example plumbers-sf or rentals-austin. Letters, digits and hyphens.",
            "default": "default"
          },
          "includeNearbyAreas": {
            "title": "Include listings from nearby sites",
            "type": "boolean",
            "description": "When a search has few results, Craigslist adds listings from nearby sites below them. Off: only listings of the site you chose.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}