{"id":31942243,"url":"https://github.com/irahorecka/pycraigslist","last_synced_at":"2025-10-14T09:41:35.244Z","repository":{"id":47720681,"uuid":"352892109","full_name":"irahorecka/pycraigslist","owner":"irahorecka","description":"Craigslist API wrapper","archived":false,"fork":false,"pushed_at":"2025-01-26T21:38:15.000Z","size":228,"stargazers_count":49,"open_issues_count":2,"forks_count":16,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-29T05:02:08.993Z","etag":null,"topics":["api","craigslist","python","webscraping"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/irahorecka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-30T06:20:11.000Z","updated_at":"2025-07-19T00:27:31.000Z","dependencies_parsed_at":"2024-02-25T06:52:48.684Z","dependency_job_id":"529298e1-e3cf-4aee-87fd-b8b92082c135","html_url":"https://github.com/irahorecka/pycraigslist","commit_stats":{"total_commits":125,"total_committers":5,"mean_commits":25.0,"dds":0.07199999999999995,"last_synced_commit":"f0bb13cd49ef562308d4df067455abb6aa6bebfd"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/irahorecka/pycraigslist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irahorecka%2Fpycraigslist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irahorecka%2Fpycraigslist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irahorecka%2Fpycraigslist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irahorecka%2Fpycraigslist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/irahorecka","download_url":"https://codeload.github.com/irahorecka/pycraigslist/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irahorecka%2Fpycraigslist/sbom","scorecard":{"id":494166,"data":{"date":"2025-08-11","repo":{"name":"github.com/irahorecka/pycraigslist","commit":"f20c07dc06564d1e078a1f1a74002f060ee4e920"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-48 / GHSA-fj7x-q9j7-g6q6","Warn: Project is vulnerable to: PYSEC-2022-183 / GHSA-h8pj-cxx2-jfg2","Warn: Project is vulnerable to: GHSA-55x5-fj6c-h6m8","Warn: Project is vulnerable to: PYSEC-2014-9 / GHSA-57qw-cc2g-pv5p","Warn: Project is vulnerable to: PYSEC-2021-19 / GHSA-jq4v-f5q6-mjqq","Warn: Project is vulnerable to: GHSA-pgww-xf46-h92r","Warn: Project is vulnerable to: PYSEC-2022-230 / GHSA-wrxv-2j5q-m38w","Warn: Project is vulnerable to: PYSEC-2018-12 / GHSA-xp26-p53h-6h2p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T20:00:58.663Z","repository_id":47720681,"created_at":"2025-08-19T20:00:58.663Z","updated_at":"2025-08-19T20:00:58.663Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018623,"owners_count":26086404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","craigslist","python","webscraping"],"created_at":"2025-10-14T09:41:32.162Z","updated_at":"2025-10-14T09:41:35.236Z","avatar_url":"https://github.com/irahorecka.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pycraigslist\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Craigslist.svg/2560px-Craigslist.svg.png\" width=\"50%\"/\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n[Craigslist](https://www.craigslist.org/about/sites) API wrapper\n\n[![pypiv](https://img.shields.io/pypi/v/pycraigslist.svg)](https://pypi.python.org/pypi/pycraigslist)\n[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)\n[![Licence](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/irahorecka/pycraigslist/main/LICENSE)\n\n## Disclaimer\n\n-   I do not work or have an affiliation with Craigslist.\n-   This library is intended for educational purposes.\n\n## Dealing with Cloudflare Restrictions\n\n\u003e [!WARNING]\n\u003e **Cloudflare anti-bot protection blocks direct API access.**\n\nIf you encounter issues retrieving posts from Craigslist due to Cloudflare’s anti-scraping measures, consider using [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr). This open-source proxy solution bypasses Cloudflare’s protections.  \n\nTo get started:  \n1. Follow the [installation guide](https://github.com/FlareSolverr/FlareSolverr#Installation) to spin up the Docker container.  \n2. Route your API requests through FlareSolverr to retrieve the desired HTML content.  \n\n## Installation\n\n    pip install pycraigslist\n\n## Quick start\n\nFind cars \u0026 trucks for sale with keyword \\\"Mazda Miata\\\" in the East Bay\nArea, California:\n\n``` python\nimport pycraigslist\n\nmiatas = pycraigslist.forsale.cta(site=\"sfbay\", area=\"eby\", query=\"Mazda Miata\")\nfor miata in miatas.search():\n    print(miata)\n\n\u003e\u003e\u003e {'country': 'US',\n    'region': 'CA',\n    'site': 'sfbay',\n    'area': 'eby',\n    'category': 'cto',\n    'id': '7291715564',\n    'repost_of': '',\n    'last_updated': '2021-03-15 09:06',\n    'title': '1990 Mazda Miata',\n    'neighborhood': 'oakland lake merritt / grand',\n    'price': '$5,000',\n    'url': 'https://sfbay.craigslist.org/eby/cto/d/oakland-1990-mazda-miata/7291715564.html'}\n    # ...\n```\n\n## Background\n\nSearch for anything on Craigslist with Python!\n\n### pycraigslist classes\n\n-   `pycraigslist.community`             (craigslist.org \\\u003e community)\n-   `pycraigslist.events`                   (craigslist.org \\\u003e event\n    calendar)\n-   `pycraigslist.forsale`                 (craigslist.org \\\u003e for sale)\n-   `pycraigslist.gigs`                       (craigslist.org \\\u003e gigs)\n-   `pycraigslist.housing`                 (craigslist.org \\\u003e housing)\n-   `pycraigslist.jobs`                       (craigslist.org \\\u003e jobs)\n-   `pycraigslist.resumes`                 (craigslist.org \\\u003e resumes)\n-   `pycraigslist.services`               (craigslist.org \\\u003e services)\n\nSearch for posts in parent classes for a broader query. For example,\nfinding paid gigs in Portland, Oregon:\n\n``` python\nimport pycraigslist\n\npaid_gigs = pycraigslist.gigs(site=\"portland\", is_paid=True)\nfor gig in paid_gigs.search():\n    print(gig)\n\n\u003e\u003e\u003e {'country': 'US',\n    'region': 'OR',\n    'site': 'portland',\n    'area': 'mlt',\n    'category': 'lbg',\n    'id': '7295392821',\n    'repost_of': '7292985211',\n    'last_updated': '2021-03-22 13:00',\n    'title': 'Packing and moving',\n    'neighborhood': 'SE Portland',\n    'price': '',\n    'url': 'https://portland.craigslist.org/mlt/lbg/d/portland-packing-and-moving/7295392821.html'}\n    # ...\n```\n\n### pycraigslist subclasses\n\nMost pycraigslist classes have subclasses to allow for a targeted query.\nFor example:\n\n-   `pycraigslist.forsale.bia`         (craigslist.org \\\u003e for sale \\\u003e\n    bikes)\n-   `pycraigslist.forsale.cta`         (craigslist.org \\\u003e for sale \\\u003e\n    cars \u0026 trucks)\n-   `pycraigslist.housing.apa`         (craigslist.org \\\u003e housing \\\u003e\n    apartments / housing for rent)\n-   `pycraigslist.housing.roo`         (craigslist.org \\\u003e housing \\\u003e\n    apartments / rooms \u0026 shares)\n\nUse class method `.get_categories()` to search for subclasses. The\nresulting keys are the subclass names.\n\n``` python\nimport pycraigslist\n\nprint(pycraigslist.housing.get_categories())\n\n\u003e\u003e\u003e {'apa': 'apartments / housing for rent',\n    'swp': 'housing swap',\n    'off': 'office \u0026 commercial',\n    'prk': 'parking \u0026 storage',\n    'rea': 'real estate',\n    'reb': 'real estate - by dealer',\n    'reo': 'real estate - by owner',\n    'roo': 'rooms \u0026 shares',\n    'sub': 'sublets \u0026 temporary',\n    'vac': 'vacation rentals',\n    'hou': 'wanted: apts',\n    'rew': 'wanted: real estate',\n    'sha': 'wanted: room/share',\n    'sbw': 'wanted: sublet/temp'}\n```\n\nE.g., use `pycraigslist.housing.vac` to search for vacation rentals.\n\n### Finding and using filters\n\nApply search filters to narrow your query. Use `.get_filters()` to find\nvalid filters for a class or subclass instance.\n\nSearch filters are sensitive to the language of the region. E.g., get\nfilters for cars \u0026 trucks for sale in Tokyo, Japan:\n\n``` python\nimport pycraigslist\n\ntokyo_autos = pycraigslist.forsale.cta(site=\"tokyo\")\nprint(tokyo_autos.get_filters())\n\n\u003e\u003e\u003e {'query': '...', 'search_titles': 'True/False', 'has_image': 'True/False',\n    'posted_today': 'True/False', 'bundle_duplicates': 'True/False',\n    'search_distance': '...', 'zip_code': '...', 'min_price': '...', 'max_price': '...',\n    'make_model': '...', 'min_year': '...', 'max_year': '...', 'min_miles': '...',\n    'max_miles': '...', 'min_engine_displacement': '...', 'max_engine_displacement': '...',\n    'condition': ['新品', 'ほぼ新品', '美品', '良品', '使用に問題なし', 'サルベージ'],\n    'auto_cylinders': ['3気筒', '4気筒', '5気筒', '6気筒', '8気筒', '10気筒', '12気筒', 'その他'],\n    'auto_drivetrain': ['前輪', '後輪', '4WD'],\n    'auto_fuel_type': ['ガソリン', 'ディーゼル', 'ハイブリッド', '電気', 'その他'],\n    'auto_paint': ['ブラック', 'ブルー', 'ブラウン', 'グリーン', 'グレー', 'オレンジ', 'パープル',\n                   'レッド', 'シルバー', 'ホワイト', 'イエロー', 'カスタム'],\n    'auto_size': ['コンパクト', 'フルサイズ', '中型', 'サブコンパクト'],\n    'auto_title_status': ['クリーン', 'サルベージ', '再生', '部品のみ', '先取特権', '不明'],\n    'auto_transmission': ['MT', 'AT', 'その他'],\n    'auto_bodytype': ['バス', 'コンバーチブル', 'クーペ', 'ハッチバック', 'ミニバン', 'オフロード',\n                      'ピックアップ', 'セダン', 'トラック', 'SUV', 'ワゴン', 'バン', 'その他'],\n    'language': ['afrikaans', 'català', 'dansk', 'deutsch', 'english', 'español', 'suomi',\n                 'français', 'italiano', 'nederlands', 'norsk', 'português', 'svenska',\n                 'filipino', 'türkçe', '中文', 'العربية', '日本語', '한국말', 'русский',\n                 'tiếng việt']}\n```\n\nE.g., use the filter parameter \\\"クリーン\\\" to find cars \u0026 trucks with\nclean titles:\n\n``` python\nimport pycraigslist\n\ntokyo_autos = pycraigslist.forsale.cta(site=\"tokyo\", auto_title_status=\"クリーン\")\nfor auto in tokyo_autos.search():\n    print(auto)\n\n\u003e\u003e\u003e {'country': 'JP',\n    'region': '',\n    'site': 'tokyo',\n    'area': '',\n    'category': 'cto',\n    'id': '7301105503',\n    'repost_of': '',\n    'last_updated': '2021-04-03 14:04',\n    'title': 'Suzuki Jimny 660 XG 4WD Keyless Entry Aluminum Wheel Non-Smoking Car',\n    'neighborhood': 'Chiba Ken, Noda shi, Funakata 1630-1',\n    'price': '¥650,000',\n    'url': 'https://tokyo.craigslist.org/cto/d/suzuki-jimny-660-xg-4wd-keyless-entry/7301105503.html'}\n    # ...\n```\n\nWhen applying many filters, pass a dictionary of filters into the\n`filters` keyword parameter. Note: keyword argument filters will\noverride `filters` if there are conflicting keys. For example:\n\n``` python\nimport pycraigslist\n\nbike_filters = {\n    \"bicycle_frame_material\": \"steel\",\n    # Array of filter values are accepted\n    \"bicycle_wheel_size\": [\"650C\", \"700C\"],\n    \"bicycle_type\": \"road\",\n}\n# This would search for titanium road bikes with size 650C or 700C wheels\ntitanium_bikes = pycraigslist.forsale.bia(\n    site=\"sfbay\", area=\"sfc\", bicycle_frame_material=\"titanium\", filters=bike_filters\n)\n```\n\n## Searching for posts\n\n### General search\n\nTo search for Craigslist posts, use `.search()`. `.search()` will return\na dictionary of post attributes (type `str`) and will search for every\npost by default. Use the `limit` keyword parameter to add a stop limit\nto a query. For example, use `limit=50` to get 50 posts. There is a\nmaximum of 3000 posts per query.\n\nE.g., find the first 20 posts for farming and gardening services in\nDenver, Colorado:\n\n``` python\nimport pycraigslist\n\ngardening_services = pycraigslist.services.fgs(site=\"denver\")\nfor service in gardening_services.search(limit=20):\n    print(service)\n\n\u003e\u003e\u003e {'country': 'US',\n    'region': 'CO',\n    'site': 'denver',\n    'area': '',\n    'category': 'fgs',\n    'id': '7301324564',\n    'repost_of': '6974119634',\n    'last_updated': '2021-04-03 11:47',\n    'title': '🌲 Tree Removal/Trimming, Stump Grind: LICENSED/INSURED! 720-605-1584',\n    'neighborhood': 'All Areas',\n    'price': '',\n    'url': 'https://denver.craigslist.org/fgs/d/littleton-tree-removal-trimming-stump/7301324564.html'}\n    # ...\n```\n\n### Detailed search\n\nUse `.search_detail()` to get detailed Craigslist posts. The `limit`\nkeyword parameter in `.search` also applies to `.search_detail`. Set\n`include_body=True` to include the post\\'s body in the output. By\ndefault, `include_body=False`. Disclaimer: `.search_detail` is more time\nconsuming than `.search`.\n\nE.g., get detailed posts with the post body for all cars \u0026 trucks for\nsale in Abilene, Texas:\n\n``` python\nimport pycraigslist\n\nall_autos = pycraigslist.forsale.cta(site=\"abilene\")\nfor auto in all_autos.search_detail(include_body=True):\n    print(auto)\n\n\u003e\u003e\u003e {'country': 'US',\n    'region': 'TX',\n    'site': 'abilene',\n    'area': '',\n    'category': 'cto',\n    'id': '7309894792',\n    'repost_of': '',\n    'last_updated': '2021-04-20 12:17',\n    'title': '2009 Mercedes GL-320',\n    'neighborhood': 'Brownwood',\n    'price': '$12,000',\n    'url': 'https://abilene.craigslist.org/cto/d/brownwood-2009-mercedes-gl-320/7309894792.html',\n    'lat': '31.729000',\n    'lon': '-99.019000',\n    'address': '',\n    'misc': ['2009 mercedes-benz gl-class'],\n    'condition': 'excellent',\n    'drive': 'fwd',\n    'fuel': 'diesel',\n    'odometer': '100700',\n    'paint_color': 'black',\n    'title_status': 'clean',\n    'transmission': 'automatic',\n    'body': 'BEAUTIFUL car inside and out!! Diesel with only 100k, mechanic says its in great condition.'}\n    # ...\n```\n\n## Additional attributes\n\n-   `__doc__`: Gets category name.\n-   `url`: Gets full URL.\n-   `count`: Gets number of posts.\n\n``` python\nimport pycraigslist\n\neast_bay_apa = pycraigslist.housing.apa(site=\"sfbay\", area=\"eby\", max_price=800)\n\n# 1\nprint(east_bay_apa.__doc__)\n\u003e\u003e\u003e 'apartments / housing for rent'\n\n# 2\nprint(east_bay_apa.url)\n\u003e\u003e\u003e 'https://sfbay.craigslist.org/search/eby/apa?searchNearby=1\u0026s=0\u0026max_price=800'\n\n# 3\nprint(east_bay_apa.count)\n\u003e\u003e\u003e 56\n```\n\n## Exceptions\n\npycraigslist has the following exceptions:\n\n-   `ConnectionError` : exceeded maximum retries for a query\n-   `HTTPError` : encountered a client or server error\n-   `InvalidFilterValue` : filter is not recognized or has an invalid\n    value\n\nTo use pycraigslist exceptions, import / import from\n`pycraigslist.exceptions`. For example:\n\n``` python\nimport pycraigslist\nfrom pycraigslist.exceptions import ConnectionError, HTTPError, InvalidFilterValue\n\ntry:\n    sf_bikes = pycraigslist.forsale.bia(site=\"sfbay\", area=\"sfc\", min_price=50)\n    for bike in sf_bikes.search():\n        print(bike)\nexcept ConnectionError:\n    print(\"Yikes! Something's up with the network.\")\nexcept HTTPError as e:\n    print(f\"Bad HTTP response encountered: {e.status_code} {e.detail}\")\nexcept InvalidFilterValue as e:\n    print(f\"Craigslist filter validation failed. Filter: '{e.name}', Value: '{e.value}'\")\n```\n\n## Contribute\n\n-   [Issues Tracker](https://github.com/irahorecka/pycraigslist/issues)\n-   [Source\n    Code](https://github.com/irahorecka/pycraigslist/tree/master/pycraigslist)\n\n## Support\n\nIf you are having issues or would like to propose a new feature, please\nuse the [issues\ntracker](https://github.com/irahorecka/pycraigslist/issues).\n\n## License\n\nThis project is licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firahorecka%2Fpycraigslist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firahorecka%2Fpycraigslist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firahorecka%2Fpycraigslist/lists"}