curl --request GET \
--url https://app.tryspecter.com/api/v1/lists/people/{listId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.tryspecter.com/api/v1/lists/people/{listId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://app.tryspecter.com/api/v1/lists/people/{listId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.tryspecter.com/api/v1/lists/people/{listId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.tryspecter.com/api/v1/lists/people/{listId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.tryspecter.com/api/v1/lists/people/{listId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tryspecter.com/api/v1/lists/people/{listId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "dbc97c77-8928-434b-9d62-1b596719ec23",
"name": "My Watchlist",
"is_global": false,
"shared_with": [
"user_xxx"
],
"people": [
{
"person_id": "per_2f3c7fe468ec9fc2181bec8b",
"created_at": "2026-07-17T16:22:17.608512Z"
}
],
"created_at": "2026-07-17T16:22:17.608512Z",
"updated_at": "2026-07-17T16:22:17.608512Z"
}{
"errorCode": "INVALID_LIST_UUID",
"message": "List id must be a valid UUID."
}{
"errorCode": "API_KEY_MISSING",
"message": "No API Key was presented on the header X-API-KEY"
}{
"errorCode": "<string>",
"message": "<string>"
}{
"errorCode": "<string>",
"message": "<string>"
}Get people list
Returns information about a people list created or shared with the API, including the people it contains.
What you need
You need a people list ID. Get one from Get all people lists.
Behaviour
listIdmust be a UUID, otherwise400.- Returns
404if the list doesn’t exist or isn’t visible to the API.
What you do next
- Get full people data. Pull profiles via Get people list results.
- Open a single person. Pass a
person_idto Get person by ID.
curl --request GET \
--url https://app.tryspecter.com/api/v1/lists/people/{listId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.tryspecter.com/api/v1/lists/people/{listId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://app.tryspecter.com/api/v1/lists/people/{listId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.tryspecter.com/api/v1/lists/people/{listId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.tryspecter.com/api/v1/lists/people/{listId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.tryspecter.com/api/v1/lists/people/{listId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tryspecter.com/api/v1/lists/people/{listId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "dbc97c77-8928-434b-9d62-1b596719ec23",
"name": "My Watchlist",
"is_global": false,
"shared_with": [
"user_xxx"
],
"people": [
{
"person_id": "per_2f3c7fe468ec9fc2181bec8b",
"created_at": "2026-07-17T16:22:17.608512Z"
}
],
"created_at": "2026-07-17T16:22:17.608512Z",
"updated_at": "2026-07-17T16:22:17.608512Z"
}{
"errorCode": "INVALID_LIST_UUID",
"message": "List id must be a valid UUID."
}{
"errorCode": "API_KEY_MISSING",
"message": "No API Key was presented on the header X-API-KEY"
}{
"errorCode": "<string>",
"message": "<string>"
}{
"errorCode": "<string>",
"message": "<string>"
}Authorizations
Path Parameters
The ID of the list being requested.
Response
The list including people ids
List Id
"dbc97c77-8928-434b-9d62-1b596719ec23"
Name of the list
"My Watchlist"
true when the list is a global list curated by Specter and available to all users. false for lists owned by your organization.
false
The Specter user IDs this list is shared with, or an empty array when it is not shared. Resolve an ID to a person with Get organization members.
["user_xxx"]
The people included in this list
Show child attributes
Show child attributes
Date list was created
"2026-07-17T16:22:17.608512Z"
Date the list was last updated
"2026-07-17T16:22:17.608512Z"
Was this page helpful?