List contacts
Lists LinkedIn contacts
curl --request GET \
--url https://api.talktohumans.app/v1/contacts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.talktohumans.app/v1/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.talktohumans.app/v1/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.talktohumans.app/v1/contacts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Authorizations
Pass API key as Authorization: Bearer <api_key>.
Query Parameters
LinkedIn account IDs returned by GET /v1/accounts.
Repeat the query parameter for multiple accounts. The backend also accepts comma-separated values.
If an explicit account target is not accessible to this credential, the API returns 403 account_shared_access_required.
^[1-9][0-9]*$Filter by contact ID, including email and phone lookup results.
^[1-9][0-9]*$Search by name, headline, company, role, LinkedIn handle, or profile URL.
Filter by current or past company name.
Filter by headline text.
Search broadly across profile details, tags, notes, locations, work history, education, and company data.
Filter by location text.
Filter by company size or employee count.
Filter by tag name.
Filter by LinkedIn relationship state. Defaults to any.
any, connected, not_connected, unknown Filter by invitation state. Only pending is currently supported.
pending Return contacts who participate in the given TalkToHumans conversation.
Filter by a saved contact view. Accepts the view id or an unambiguous public_id from GET /v1/views.
Uses the view's account and filters. An explicit account_id scope must include that account.
Results keep the endpoint's normal ordering.
Page size. Defaults to 10. Values above 25 are clamped to 25.
1 <= x <= 25Opaque cursor from the previous response's pagination.next_cursor.
Response
Contacts matching the filters.
Show child attributes
Show child attributes
curl --request GET \
--url https://api.talktohumans.app/v1/contacts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.talktohumans.app/v1/contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.talktohumans.app/v1/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.talktohumans.app/v1/contacts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}