Get a collection job
Retrieve a collection job by the UUID returned when you collect profiles from posts. Use this endpoint to monitor a known collector directly. To browse recent collectors, use list collection jobs.
Polling this endpoint does not use credits.
Request
Endpoint
GET https://api.woodpecker.co/rest/v2/linkedin/post_profiles_collectors/{uid}
Headers
x-api-key: {YOUR_API_KEY}
For details on how to authenticate your requests, please see the authentication guide.
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
uid | Yes | string | Collector UUID returned by collect profiles from posts |
Request samples
Retrieve a collector
- cURL
- Python
- Java
- Node.js
- PHP
curl --request GET \
--url "https://api.woodpecker.co/rest/v2/linkedin/post_profiles_collectors/e9e6abc4-799e-4c24-b412-7917b1db918c" \
--header "x-api-key: {YOUR_API_KEY}"
import requests
def get_post_profile_collector(collector_uid):
url = f"https://api.woodpecker.co/rest/v2/linkedin/post_profiles_collectors/{collector_uid}"
headers = {
"x-api-key": "{YOUR_API_KEY}"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
raise Exception(f"GET request failed: {response.status_code}, {response.text}")
if __name__ == "__main__":
try:
print(
"GET response:",
get_post_profile_collector("e9e6abc4-799e-4c24-b412-7917b1db918c")
)
except Exception as error:
print("Error:", error)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class WoodpeckerApiClient {
public static void main(String[] args) {
getPostProfileCollector("e9e6abc4-799e-4c24-b412-7917b1db918c");
}
private static void getPostProfileCollector(String collectorUid) {
try {
String url = "https://api.woodpecker.co/rest/v2/linkedin/post_profiles_collectors/"
+ collectorUid;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(url))
.header("x-api-key", "{YOUR_API_KEY}")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 200) {
System.out.println("GET response: " + response.body());
} else {
throw new RuntimeException(
"GET request failed: " + response.statusCode() + ", " + response.body()
);
}
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
const axios = require("axios");
async function getPostProfileCollector(collectorUid) {
const url = `https://api.woodpecker.co/rest/v2/linkedin/post_profiles_collectors/${collectorUid}`;
const headers = {
"x-api-key": "{YOUR_API_KEY}"
};
try {
const response = await axios.get(url, { headers });
console.log("GET response:", response.data);
} catch (error) {
console.error(
"GET request failed:",
error.response ? error.response.status : error.message
);
}
}
getPostProfileCollector("e9e6abc4-799e-4c24-b412-7917b1db918c");
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
$client = new Client([
'base_uri' => 'https://api.woodpecker.co/rest/v2/',
'headers' => [
'x-api-key' => getenv('WOODPECKER_API_KEY'),
],
]);
$collectorUid = 'e9e6abc4-799e-4c24-b412-7917b1db918c';
try {
$response = $client->get('linkedin/post_profiles_collectors/' . $collectorUid);
echo $response->getStatusCode(), "\n";
echo $response->getBody(), "\n";
} catch (RequestException $e) {
echo "Error: ", $e->getMessage(), "\n";
if ($e->hasResponse()) {
echo $e->getResponse()->getBody(), "\n";
}
}
Response
Response examples
- 200
- 400
- 401
- 404
- 500
The requested collector details
{
"uid": "e9e6abc4-799e-4c24-b412-7917b1db918c",
"post_url": "https://www.linkedin.com/posts/linkedin_post_url",
"target_list_uid": "5f17c0d2-5100-4bb9-a312-fd17f27f94c1",
"status": "SUCCESS",
"collect_from": "REACTIONS",
"collected_profiles_count": 27,
"created": "2026-08-05T10:15:30+02:00"
}
If a collection is interrupted and saves partial results, you can submit the post for collection again. The new job starts from the beginning, so credits are charged again for every profile it collects, including profiles saved by the previous job
Body schema
| Field | Type | Description |
|---|---|---|
uid | string | Collector UUID |
post_url | string | LinkedIn post processed by the collector |
target_list_uid | string | UUID of the List receiving collected data |
status | string | Collector status:
|
collect_from | string | Collection source: REACTIONS or COMMENTS |
collected_profiles_count | integer | Number of collected profiles saved to the target List |
created | string | Collector creation time in ISO 8601 format, including an offset |
uid is not a valid UUID
{
"type": "validation_error",
"code": "invalid_fields",
"message": "Invalid field(s)",
"requestId": "4a3cc945-f502-4f83-b0ee-5d7fd1f38548",
"fields": [
{
"field": "uid",
"issue": "must_be_valid_uuid",
"value": "not-a-uuid"
}
]
}
Body schema
| Field | Type | Description |
|---|---|---|
type | string | Error type: validation_error |
code | string | Error code: invalid_fields |
message | string | Human-readable error summary |
requestId | string/null | Request identifier, or null when unavailable |
fields | array[object] | Invalid path parameters |
└─ field | string | Invalid field: uid |
└─ issue | string | Validation issue: must_be_valid_uuid |
└─ value | string | Rejected path value |
An issue with authorization. Please review the authorization guide
{
"title": "Unauthorized",
"status": 401,
"detail": "Invalid api key",
"timestamp": "2026-08-05 10:00: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 |
No collector with this UUID exists for the authenticated Woodpecker account
Status: 404
Body: none
Unexpected error, please try again later
{
"type": "internal_error",
"code": "internal_server_error",
"message": "An unexpected error occurred on the server.",
"requestId": "4a3cc945-f502-4f83-b0ee-5d7fd1f38548"
}
Body schema
| Field | Type | Description |
|---|---|---|
type | string | Error type: internal_error |
code | string | Error code: internal_server_error |
message | string | Human-readable error summary |
requestId | string/null | Request identifier, or null when unavailable |