Endpoints

Filter & Paginate

Read a completed search's results a page at a time, with optional text search and filters — the same filters as the list page in the app.

curl -G "https://prospectcheap.com/api/yelp/lists/LIST_ID" \
  -H "Authorization: Bearer pc_live_your_key" \
  --data-urlencode "page=1" --data-urlencode "per=100" \
  --data-urlencode 'filters=[{"field":"email","operator":"is_not_empty"},{"field":"rating","operator":"gte","value":"4.5"}]'

Query parameters

ParameterNotes
pagePage number, from 1.
per20, 50 or 100 rows per page. Default 50.
qText search across the main columns (name, email, website, owner…).
filtersA JSON array of conditions (below). Up to 20.
mode"all" (every condition must match, default) or "any".

Conditions

{ "field": "rating", "operator": "gte", "value": "4" }

field is a field name from the source's Data Fields page (for example email, owner_name, trust_score, subscribers, mrr). Name filters work on every list with a person: has_first_name and has_full_name with is_yes / is_no.

OperatorForNeeds value
contains, not_contains, is, is_not, starts_with, ends_withtextyes
gt, gte, lt, lte, is, is_notnumbersyes
is_empty, is_not_emptytext and numbersno
is_yes, is_noyes/no fieldsno

Response

{
  "list": { "id": "a1b2c3d4-…", "status": "completed", "result_count": 28, "credits_charged": 28 },
  "businesses": [
    { "id": "…", "position": 1, "name": "Lone Star Plumbing Co", "owner_name": "Travis Boone",
      "owner_email": "travis@example.com", "email": "service@example.com", "phone": "(512) 555-0142",
      "website": "https://example.com", "rating": 4.9, "review_count": 312, "city": "Austin" }
  ],
  "total": 12
}

total is the number of rows matching your filters; list.result_count is the whole list. Keep requesting the next page until you have total rows.