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
idNointegerComma-separated list of prospect IDs to retrieve
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. Please mind _ in the response
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 samples​

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​

HeaderTypeDescription
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-404xyz",
"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/nullDeprecated. Available only with interested parameter and when an interest level is defined. Available values: INTERESTED, MAYBE-LATER, NOT-INTERESTED. Please mind _ instead of -
  └─ interest_levelobject/nullProspect's Interest Level information. Available only with interested parameter
    └─└─ levelstringProspect's Interest Level. Available levels: INTERESTED, MAYBE_LATER, NOT_INTERESTED or NOT_MARKED
    └─└─ ai_detectedbooleanIndicates whether the level was set by AI or by the user
  └─ 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