Craigslist
Craigslist: Search
Search from Craigslist. Costs 1 credit per successful call.
GET
https://api.perceptlayer.com
/
v1
/
craigslist
/
search
Search
curl --request GET \
--url https://api.perceptlayer.com/v1/craigslist/search \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.perceptlayer.com/v1/craigslist/search"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.perceptlayer.com/v1/craigslist/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.perceptlayer.com/v1/craigslist/search';
const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.perceptlayer.com/v1/craigslist/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.perceptlayer.com/v1/craigslist/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.perceptlayer.com/v1/craigslist/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.perceptlayer.com/v1/craigslist/search")
.header("X-API-Key", "<api-key>")
.asString();{
"endpoint": "craigslist.search",
"params": {
"site": "portland",
"category": "bia",
"query": "bike",
"min_price": "50",
"max_price": "300"
},
"response": {
"success": true,
"data": {
"total": 821,
"page": 1,
"per_page": 360,
"has_more": true,
"results": [
{
"position": 1,
"id": "wnD16b4hEY7DaHprfGYGAg",
"posting_id": 7988730852,
"title": "21\" Specialized Sirrus A1 commuter",
"url": "https://www.craigslist.org/view/wnD16b4hEY7DaHprfGYGAg",
"price": 250,
"currency": "USD",
"images": [
"https://images.craigslist.org/00s0s_f9B6cl8tXrr_0Cz0t2_600x450.jpg"
],
"slug": "portland-21-specialized-sirrus-a1",
"location": {
"name": "multnomah county",
"site": "portland",
"subarea": "mlt",
"latitude": 45.56,
"longitude": -122.6001
},
"bumped_at": "2026-10-23T20:30:33Z"
},
{
"position": 2,
"id": "sZBbfWfnthmpp4JiN6rnJR",
"posting_id": 7988729730,
"title": "Gary Fisher Kaitai",
"url": "https://www.craigslist.org/view/sZBbfWfnthmpp4JiN6rnJR",
"price": 75,
"currency": "USD",
"images": [
"https://images.craigslist.org/00K0K_aTSCGt9mLcx_0CI0t2_600x450.jpg",
"https://images.craigslist.org/01313_hHDPtQgA0rZ_0t20CI_600x450.jpg"
],
"slug": "gresham-gary-fisher-kaitai",
"location": {
"name": "Gresham",
"site": "portland",
"subarea": "mlt",
"latitude": 45.4817,
"longitude": -122.4156
},
"bumped_at": "2026-10-23T20:28:35Z"
},
{
"position": 3,
"id": "wFoRdyJrF3bGF7bm7kPifQ",
"posting_id": 7939313997,
"title": "I found the fork --Chromed, chrome moly BMX bicycle made by Giant.",
"url": "https://www.craigslist.org/view/wFoRdyJrF3bGF7bm7kPifQ",
"price": 50,
"currency": "USD",
"images": [
"https://images.craigslist.org/00S0S_fh4ZaAMrhdk_0jm0hW_600x450.jpg",
"https://images.craigslist.org/00g0g_kizSYRq0Bst_0CI0t2_600x450.jpg",
"https://images.craigslist.org/00q0q_9FAlsMLRaBu_0g80eX_600x450.jpg"
],
"slug": "la-center-found-the-fork-chromed-chrome",
"location": {
"name": "La Center",
"site": "portland",
"subarea": "clk",
"latitude": 45.8899,
"longitude": -122.6309
},
"bumped_at": "2026-10-23T20:28:59Z"
}
]
},
"meta": {
"endpoint_family": "search",
"billable": true
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}1 credit per successful call; failed calls are free. See the Craigslist API overview for every Craigslist endpoint.
Authorizations
Query Parameters
Maximum string length:
200Available options:
date, dateoldest, rel, priceasc, pricedsc Was this page helpful?
⌘I
Search
curl --request GET \
--url https://api.perceptlayer.com/v1/craigslist/search \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.perceptlayer.com/v1/craigslist/search"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.perceptlayer.com/v1/craigslist/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.perceptlayer.com/v1/craigslist/search';
const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.perceptlayer.com/v1/craigslist/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.perceptlayer.com/v1/craigslist/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.perceptlayer.com/v1/craigslist/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.perceptlayer.com/v1/craigslist/search")
.header("X-API-Key", "<api-key>")
.asString();{
"endpoint": "craigslist.search",
"params": {
"site": "portland",
"category": "bia",
"query": "bike",
"min_price": "50",
"max_price": "300"
},
"response": {
"success": true,
"data": {
"total": 821,
"page": 1,
"per_page": 360,
"has_more": true,
"results": [
{
"position": 1,
"id": "wnD16b4hEY7DaHprfGYGAg",
"posting_id": 7988730852,
"title": "21\" Specialized Sirrus A1 commuter",
"url": "https://www.craigslist.org/view/wnD16b4hEY7DaHprfGYGAg",
"price": 250,
"currency": "USD",
"images": [
"https://images.craigslist.org/00s0s_f9B6cl8tXrr_0Cz0t2_600x450.jpg"
],
"slug": "portland-21-specialized-sirrus-a1",
"location": {
"name": "multnomah county",
"site": "portland",
"subarea": "mlt",
"latitude": 45.56,
"longitude": -122.6001
},
"bumped_at": "2026-10-23T20:30:33Z"
},
{
"position": 2,
"id": "sZBbfWfnthmpp4JiN6rnJR",
"posting_id": 7988729730,
"title": "Gary Fisher Kaitai",
"url": "https://www.craigslist.org/view/sZBbfWfnthmpp4JiN6rnJR",
"price": 75,
"currency": "USD",
"images": [
"https://images.craigslist.org/00K0K_aTSCGt9mLcx_0CI0t2_600x450.jpg",
"https://images.craigslist.org/01313_hHDPtQgA0rZ_0t20CI_600x450.jpg"
],
"slug": "gresham-gary-fisher-kaitai",
"location": {
"name": "Gresham",
"site": "portland",
"subarea": "mlt",
"latitude": 45.4817,
"longitude": -122.4156
},
"bumped_at": "2026-10-23T20:28:35Z"
},
{
"position": 3,
"id": "wFoRdyJrF3bGF7bm7kPifQ",
"posting_id": 7939313997,
"title": "I found the fork --Chromed, chrome moly BMX bicycle made by Giant.",
"url": "https://www.craigslist.org/view/wFoRdyJrF3bGF7bm7kPifQ",
"price": 50,
"currency": "USD",
"images": [
"https://images.craigslist.org/00S0S_fh4ZaAMrhdk_0jm0hW_600x450.jpg",
"https://images.craigslist.org/00g0g_kizSYRq0Bst_0CI0t2_600x450.jpg",
"https://images.craigslist.org/00q0q_9FAlsMLRaBu_0g80eX_600x450.jpg"
],
"slug": "la-center-found-the-fork-chromed-chrome",
"location": {
"name": "La Center",
"site": "portland",
"subarea": "clk",
"latitude": 45.8899,
"longitude": -122.6309
},
"bumped_at": "2026-10-23T20:28:59Z"
}
]
},
"meta": {
"endpoint_family": "search",
"billable": true
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
}
}