Skip to main content

Get a list of prospects

warning

This is a v1 legacy endpoint. It uses a different path /rest/v1 and may return different error codes and response formats compared to v2. While it remains functional, consider handling errors accordingly.

Retrieve a paginated list of prospects available in your account. Each prospect is returned together with their snippet data, global status, dates like last_contacted date. You can sort the prospects or filter them by specific fields and values.

If you are looking for:

Request

Endpoint

GET https://api.woodpecker.co/rest/v1/prospects

Headers

x-api-key: {YOUR_API_KEY}

For details on how to authenticate your requests, please see the authentication guide.

Parameters

Sorting and pagination

ParameterRequiredTypeDescription
pageNointegerRequested results page (1-based)
per_pageNointegerNumber of records per page. Default: 100, maximum: 1000
sortNostringOrder the results based on the specified column. Default: order by ID ascending

For sorting, use + before the field name for ascending order and - for descending order. To sort by multiple fields, separate them with a comma.

To sort prospects by company name ascending and last_contacted date descending use: sort=+company,-last_contacted

Fields available for sorting
  • id
  • status
  • updated
  • email
  • last_contacted
  • last_replied
  • first_name
  • last_name
  • company
  • organization_id
  • industry
  • website
  • tags
  • title
  • phone
  • address
  • city
  • state
  • country
  • snipet1 - snipet4
  • snippet5 - snippet15
  • last_opened - available only with OPENED activity paramater
  • last_clicked - available only with CLICKED activity paramater
  • sent_mails - available only with OPENED or CLICKED activity paramater

Filtering

You can filter results by using one or more of the following parameters:

ParameterRequiredTypeDescription
idNointegerUnique identifier of a prospect
statusNostringProspect's global status: ACTIVE, BOUNCED, REPLIED, BLACKLIST, INVALID
contactedNobooleanWhether a prospect has ever been contacted
interestedNostringReturns prospects only if they have a specific interest level set in any of the campaigns they are enrolled in. Available values: INTERESTED, MAYBE-LATER, NOT-INTERESTED, NOT-MARKED. A prospect marked INTERESTED in N campaigns will return N prospect objects
activityNostringReturns prospects based on their click and open activity. Available values: OPENED, NOT-OPENED, CLICKED, NOT-CLICKED
diffNostringReturn prospects whose activity timestamp is greater than the provided date. Uses ISO 8601-like format: 2025-01-15T00:00:00%2B0200. Available timestamps: updated, last_opened (only with OPENED activity paramater), last_clicked (only with CLICKED activity paramater)

Request sample

Get a list of prospects

The example below showcases how to fetch last 50 most recently updated prospects with a global status REPLIED.

curl --request GET \
--url "https://api.woodpecker.co/rest/v1/prospects?sort=-updated&status=REPLIED&per_page=50" \
--header "x-api-key: {YOUR_API_KEY}"

Response

Response headers

ParameterTypeDescription
X-Total-CountintegerTotal number of prospects that match the criteria. Do not use together with campaigns_details parameter

Response examples

An array of prospect objects. Some fields will be returned only when the request uses specific paramaters. Such properties are not available in the example below and have a note in the body schema

[
{
"id": 1234567890,
"email": "erlich@bachmanity.com",
"first_name": "Erlich",
"last_name": "Bachman",
"company": "Bachmanity",
"organization_id": 654321789,
"industry": "IT",
"website": "https://bachmanity.com",
"linkedin_url": "https://linkedin.com/erlich-bachman",
"tags": "#VISIONARY",
"title": "CEO",
"phone": "+1 987-654-321",
"address": "700 Welch Road",
"city": "Palo Alto",
"state": "California",
"country": "United States",
"last_contacted": "2025-03-20T14:32:34+0100",
"last replied": "2025-03-21T08:11:35+0100",
"updated": "2025-03-21T08:11:35+0100",
"encrypted": false,
"snipet1": "You are running a successful startup incubator Bachmanity",
"snipet2": "",
"snipet3": "",
"snipet4": "",
"snippet1": "",
"snippet2": "",
"snippet3": "",
"snippet4": "",
"snippet5": "",
"snippet6": "",
"snippet7": "",
"snippet8": "",
"snippet9": "",
"snippet10": "",
"snippet11": "",
"snippet12": "",
"snippet13": "",
"snippet14": "",
"snippet15": "",
"snippet_labels": { "custom_snippet": "You are running a successful startup incubator Bachmanity" },
"status": "REPLIED"
}
]

Body schema

FieldTypeDescription
[].prospectobjectContains prospect data
  └─ idintegerUnique identifier of a prospect
  └─ emailstringProspect's email address
  └─ first_namestringProspect's first name
  └─ last_namestringProspect's last name
  └─ companystringProspect's company name
  └─ organization_idintegerUnique identifier of a prospect's company
  └─ industrystringProspect's industry
  └─ websitestringProspect's website URL
  └─ linkedin_urlstringProspect's LinkedIn profile URL
  └─ tagsstringTags associated with the prospect. Tags start with a # and are separated with a space
  └─ titlestringProspect's job title
  └─ phonestringProspect's phone number
  └─ addressstringProspect's address
  └─ citystringProspect's city
  └─ statestringProspect's state or region
  └─ countrystringProspect's country
  └─ snippet_labelsobjectCustom snippet labels
  └─└─ label_namestringKey - value pairs representing a snippet label and its value
  └─ last_contactedstringDate when the prospect was last contacted (ISO 8601 format)
  └─ last repliedstringDate when the prospect last replied (ISO 8601 format). Note the missing _
  └─ updatedstringDate when the prospect was last updated (ISO 8601 format)
  └─ encryptedbooleanWhether a prospect is encrypted
  └─ snipetstringLegacy. Always equal to the corresponding snippetX values. There are 4 snipet fields (snipet1 to snipet4)
  └─ snippetstringProspect custom snippets. There are 15 snippet fields (snippet1 to snippet15)
  └─ statusstringProspect's global status
  └─ interestedstring/nullAvailable only with interested parameter and when an interest level is defined. Available values: INTERESTED, MAYBE-LATER, NOT-INTERESTED. Please mind _ instead of -
  └─ campaign_idinteger/nullAvailable only with interested parameter. Campaign ID where the prospect has a defined interest level
  └─ sent_mailsinteger/nullAvailable only with activity parameter. Total number of emails sent in all campaigns
  └─ last_openstring/nullAvailable only with OPENED activity parameter. Timestamp when the prospect has last opened an email
  └─ last_clickedstring/nullAvailable only with CLICKED activity parameter. Timestamp when the prospect has last clicked a link in an email
  └─ click_urlstring/nullAvailable only with CLICKED activity parameter. URL of the clicked link. Each clicked link will result in a separate prospect object