Get manual tasks
Use this endpoint to retrieve a list of all manual tasks in the authorized account.
Request
Endpoint
GET https://api.woodpecker.co/rest/v2/manual_tasks
Headers
x-api-key: {YOUR_API_KEY}
For details on how to authenticate your requests, please see the authentication guide.
Parameters
Parameter | Required | Description |
---|---|---|
limit | No | Number of retrieved results. Default: 500, max: 500 |
Request sample
GET manual tasks
- cURL
- Java
- Node.js
curl --request GET \
--url "https://api.woodpecker.co/rest/v2/manual_tasks?limit=100" \
--header "x-api-key: {YOUR_API_KEY}"
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class WoodpeckerApiClient {
public static void getManualTasks(String apiKey, int limit) throws Exception {
String url = "https://api.woodpecker.co/rest/v2/manual_tasks?limit=" + limit;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.header("x-api-key", apiKey)
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Response status: " + response.statusCode());
System.out.println("Response body: " + response.body());
}
}
const axios = require("axios");
async function getManualTasks(apiKey, limit = 100) {
try {
const url = `https://api.woodpecker.co/rest/v2/manual_tasks?limit=${limit}`;
const response = await axios({
method: "get",
url: url,
headers: {
"x-api-key": apiKey,
},
});
console.log("Response status:", response.status);
console.log("Response data:", response.data);
return response.data;
} catch (error) {
console.error("Error:", error.response ? error.response.data : error.message);
throw error;
}
}
module.exports = { getManualTasks };
Response
Response examples
- 200
- 200 (no tasks)
- 400
- 401
- 404
- 500
[
{
"prospect": {
"id": 123456789,
"email": "erlich@bachman.com",
"first_name": "Erlich",
"last_name": "Bachman",
"company": null,
"website": "https://www.bachmanity.com/",
"linkedin_url": "https://www.linkedin.com/in/erlich-bachman/",
"tags": "#VISIONARY",
"title": "VC Angel",
"phone": "",
"address": "221 Newell Rd",
"city": "Palo Alto",
"country": "USA",
"snippet1": "Pied Piper board member",
"snippet2": "A personalized sentence <br/> in two lines",
"snippet3": "",
"snippet4": "",
"snippet5": "",
"snippet6": "",
"snippet7": "",
"snippet8": "",
"snippet9": "",
"snippet10": "",
"snippet11": "",
"snippet12": "",
"snippet13": "",
"snippet14": "",
"snippet15": "",
"snippet_labels": {
"My snippet label": "Pied Piper board member"
},
"industry": "Software as a Service",
"state": "",
"last_contacted": 1735056455867,
"status": "ACTIVE",
"in_campaign": 2,
"emails_sent": 3,
"imported": "mydatabase.csv",
"interested": null
},
"campaign": {
"campaign_id": 987654,
"campaign_name": "Campaign with tasks",
"sent_from_emails": ["jared@piedpiper.com"]
},
"task": {
"type": "GENERIC",
"name": "Reminder",
"message": "Send a postcard",
"due_date": "2025-05-06T12:59:30.814+0200"
}
}
]
Body schema
Field | Type | Description |
---|---|---|
prospect | object | Contains prospect data |
└─ id | integer | Unique identifier for the prospect |
└─ email | string | Prospect's email address |
└─ first_name | string | Prospect's first name |
└─ last_name | string | Prospect's last name |
└─ company | null | deprecated |
└─ website | string | Prospect's website URL |
└─ linkedin_url | string | Prospect's LinkedIn profile URL |
└─ tags | string | Tags associated with the prospect. Tags start with a # and are separated with a space |
└─ title | string | Prospect's job title |
└─ phone | string | Prospect's phone number |
└─ address | string | Prospect's address |
└─ city | string | Prospect's city |
└─ country | string | Prospect's country |
└─ snippet | string | Prospect custom snippets. There are 15 snippet fields (snippet1 to snippet15 ) |
└─ snippet_labels | object | Custom snippet labels |
└─└─ label_name | string | Key - value pairs representing a snippet label and its value |
└─ industry | string | Prospect's industry |
└─ state | string | Prospect's state or region |
└─ last_contacted | integer | Timestamp (ms) of the last contact date |
└─ status | string | Prospect global status |
└─ in_campaign | integer | Number of campaigns the prospect is in |
└─ emails_sent | integer | Number of emails sent to the prospect |
└─ imported | string | Name of the import file |
└─ interested | string/null | Prospect's interest status |
campaign | object | Contains campaign data |
└─ campaign_id | integer | Unique identifier for the campaign |
└─ campaign_name | string | Name of the campaign |
└─ sent_from_emails | array[string] | List of sender email addresses |
task | object | Contains task data |
└─ type | string | Task type. Available types: GENERIC , CALL , SMS , LINKEDIN |
└─ name | string | Task name |
└─ message | string | Task message or description |
└─ due_date | string | Task due date in ISO 8601 format |
{
"message": "There are no manual tasks created in your campaigns."
}
Invalid request parameters or malformed request syntax.
{
"title": "Bad Request",
"status": 400,
"detail": "Value of limit is incorrect.",
"timestamp": "2025-02-20 10:01:16"
}
Body schema
Field | Type | Description |
---|---|---|
title | string | A short title describing the error |
status | integer | The HTTP status code |
detail | string | A detailed message explaining the error |
timestamp | string | The timestamp when the error occurred, YYYY-MM-DD HH:MM:SS UTC |
An issue with authorization. Please review the authorization guide
{
"title": "Unauthorized",
"status": 401,
"detail": "Invalid api key",
"timestamp": "2025-03-05 17:57:00"
}
Body schema
Field | Type | Description |
---|---|---|
title | string | A short title describing the error |
status | integer | The HTTP status code |
detail | string | A detailed message explaining the error |
timestamp | string | The timestamp when the error occurred, YYYY-MM-DD HH:MM:SS UTC |
Please review the request URL.
{
"title": "Not Found",
"status": 404,
"detail": "Requested resource does not exist",
"timestamp": "2025-03-05 17:57:00"
}
Body schema
Field | Type | Description |
---|---|---|
title | string | A short title describing the error |
status | integer | The HTTP status code |
detail | string | A detailed message explaining the error |
timestamp | string | The timestamp when the error occurred, YYYY-MM-DD HH:MM:SS UTC |
Unknown error, please try again later
{
"title": "Internal server error",
"status": 500,
"detail": "An unexpected error has occurred. Please try again later.",
"timestamp": "2025-03-05 17:57:00"
}
Body schema
Field | Type | Description |
---|---|---|
title | string | A short title describing the error |
status | integer | The HTTP status code |
detail | string | A detailed message explaining the error |
timestamp | string | The timestamp when the error occurred, YYYY-MM-DD HH:MM:SS UTC |