Leads

List leads

Search a campaign's leads within a date window.

Results are newest first and paged with a cursor: pass the response's search_after value to fetch the next page, and stop when it comes back null.

Filter by a supplier or a buyer, and narrow either to what happened to the lead there with supplier_outcome / buyer_outcome - the same words the response's supplier.outcome and buyers[].outcome use. A buyer filter excludes test leads.

Each lead carries its supplier and buyers with a nested client (keyed company), and each buyer an outcome and whether the lead was attempted there. Use select to return only the lead_data you need, and where to narrow by lead data - fields and the exact values they must have.

get/v2/leads

Request

  • Base URL: https://api.leadprosper.io/public
  • URL: https://api.leadprosper.io/public/v2/leads
  • Auth: one of:
    • HTTP bearer
    • API key in query parameter api_token

Query parameters

campaigninteger required

Campaign id.

start_datestring required

Start of the window, YYYY-MM-DD or YYYY-MM-DD HH:MM:SS.

end_datestring required

End of the window, inclusive.

timezonestring

IANA timezone the window is read in. Defaults to UTC.

status'accepted' | 'duplicated' | 'error'

Only leads with this outcome.

supplierinteger

Only leads from this supplier.

supplier_outcome'accepted' | 'dupe' | 'dupe/dupe_checker' | 'dupe/duplicate_request' | 'dupe/duplicate_data' | 'dupe/cross_campaign' | 'invalid_data' | 'invalid_data/field' | 'invalid_data/field/required' | 'invalid_data/field/format' | 'invalid_data/data_append' | 'invalid_data/data_append/required_field' | 'invalid_data/ping_post' | 'invalid_data/ping_post/ping_id_reused' | 'invalid_data/ping_post/invalid_lp_consent_bids' | 'invalid_data/ping_post/test_mode_mismatch' | 'refused' | 'refused/cap' | 'refused/cap/pings' | 'refused/filter' | 'refused/validation' | 'refused/validation/missing_field' | 'refused/validation/provider_unavailable' | 'refused/internal_error' | 'refused/internal_error/dupe_checker' | 'unsold' | 'no_eligible_buyers'

Narrow the supplier filter to what happened to the lead at that supplier, in the same words a lead's supplier.outcome reports. An outcome is a path: a family covers every reason under it, family/group narrows it, family/group/sub_group picks one. accepted, unsold and no_eligible_buyers are the lead's own verdict: unsold means at least one buyer was sent the lead and none took it, no_eligible_buyers that every buyer was ruled out (cap, filter, paused) before any was sent. A sub_group the response reads from the message or a lead field - a cap kind, a filter's field, a validation provider - is not filterable. Requires supplier.

buyerinteger

Only leads that reached this buyer. Excludes test leads, so it cannot be combined with test=true.

buyer_outcome'accepted' | 'outbid' | 'pinged' | 'not_attempted' | 'not_attempted/dupe' | 'not_attempted/dupe/dupe_checker' | 'not_attempted/paused' | 'not_attempted/misconfigured' | 'not_attempted/misconfigured/invalid' | 'not_attempted/misconfigured/no_email' | 'not_attempted/misconfigured/incomplete' | 'not_attempted/misconfigured/changed' | 'not_attempted/cap' | 'not_attempted/cap/pings' | 'not_attempted/filter' | 'not_attempted/skipped' | 'not_attempted/skipped/missing_from_ping' | 'not_attempted/skipped/excluded_by_lp_bids' | 'not_attempted/skipped/excluded_by_lp_consent_bids' | 'not_attempted/skipped/repost' | 'not_attempted/skipped/ping_failed' | 'declined' | 'declined/connection_failed' | 'declined/connection_failed/ping' | 'declined/connection_failed/post' | 'declined/connection_failed/email' | 'declined/connection_failed/google_sheets' | 'declined/buyer_rejected' | 'declined/buyer_rejected/ping' | 'declined/buyer_rejected/post' | 'declined/buyer_rejected/ping_no_bid' | 'declined/buyer_rejected/ping_invalid_bids' | 'declined/dupe' | 'declined/dupe/buyer_response' | 'declined/conditions_unmet' | 'declined/conditions_unmet/ping_post_rules' | 'declined/conditions_unmet/supplier_min_bid' | 'declined/conditions_unmet/supplier_margin' | 'not_attempted/conditions_unmet' | 'not_attempted/conditions_unmet/supplier_margin' | 'not_attempted/conditions_unmet/min_sell_price' | 'declined/conditions_unmet/min_sell_price' | 'declined/outbid' | 'declined/outbid/lp_max_bids' | 'declined/misconfigured' | 'declined/misconfigured/response_parser'

Narrow the buyer filter to what happened to the lead at that buyer, in the same words a lead's buyers[].outcome reports. accepted, outbid and pinged are single outcomes; otherwise an outcome is a path: the family not_attempted or declined covers every reason under it, family/group narrows it (declined/buyer_rejected, not_attempted/cap), and family/group/sub_group picks one (declined/buyer_rejected/post, not_attempted/skipped/repost). A sub_group the response reads from the message - a cap kind, a filter's field - is not filterable. Requires buyer.

selectstring

Return only these lead_data fields, comma-separated - e.g. email,state. Everything else about a lead is always returned. Omit for all fields.

limitinteger

Leads per page, up to 500. Default 100. Page with search_after rather than raising this.

match'all' | 'any'
conditionsobject required

Narrow by lead data, as the application's field filter does. conditions maps a lead_data field to the one exact value it must have. Use * to match the value against the system fields (name, email, phone, address, ip, sub ids, etc.). match says how the fields combine: all (every field must match, the default) or any (at least one). Matching is exact and case-insensitive. Sent as bracketed query parameters, e.g. where[match]=any&where[conditions][state]=CA&where[conditions][email]=ann@example.com.

testboolean

Only test leads, or only live ones.

returnboolean

Only returned leads, or only unreturned ones.

repostboolean

Only reposted leads, or only original ones.

search_afterinteger

The search_after value from the previous page.

Response

Success

search_afterstring

Changes

No recorded changes to this operation across all 1 revision of this API.