Skip to main content
GET
/
v3
/
contacts
List all contacts
curl --request GET \
  --url https://api.reply.io/v3/contacts \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.reply.io/v3/contacts"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.reply.io/v3/contacts', 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://api.reply.io/v3/contacts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$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://api.reply.io/v3/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))

}
HttpResponse<String> response = Unirest.get("https://api.reply.io/v3/contacts")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.reply.io/v3/contacts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "items": [
    {
      "id": 12345,
      "email": "john.doe@company.com",
      "firstName": "John",
      "lastName": "Doe",
      "title": "Senior Product Manager",
      "company": "Tech Solutions Inc",
      "domain": "company.com",
      "companySize": "oneThousand",
      "city": "San Francisco",
      "state": "CA",
      "country": "United States",
      "timeZoneId": "America/Los_Angeles",
      "phone": "+1-415-555-0123",
      "phoneStatus": "valid",
      "linkedInUrl": "https://www.linkedin.com/in/johndoe",
      "linkedInSalesNavigatorUrl": "https://www.linkedin.com/sales/profile/123456",
      "linkedInRecruiterUrl": "https://www.linkedin.com/recruiter/profile/789012",
      "industry": "Software & Technology",
      "notes": "Met at SaaS Conference 2024",
      "ownerUserId": 42,
      "accountId": 100,
      "isOptedOut": false,
      "callStatus": "toCall",
      "meetingStatus": "none",
      "addingDate": "2024-03-08T10:00:00+00:00",
      "createdAt": "2024-03-08T10:00:00",
      "lastModifiedAt": "2024-03-10T15:30:00",
      "customFields": [
        {
          "key": "leadSource",
          "value": "Conference"
        },
        {
          "key": "budget",
          "value": "100k-250k"
        }
      ]
    }
  ],
  "hasMore": true
}
{
"title": "Bad Request",
"status": 400,
"detail": "Invalid requested page view.",
"code": "contact.invalidPagination"
}
{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}
{
"title": "Forbidden",
"status": 403,
"detail": "Feature scopes [ViewProspect] are denied for userId 123.",
"code": "contact.forbidden"
}
{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}

Authorizations

Authorization
string
header
required

Authenticate every request with a Bearer token. Pass your Reply API key in the Authorization header:

Authorization: Bearer <your-api-key>

Get your API key from the Reply dashboard: Settings → API Key.

Query Parameters

top
integer

Maximum number of contacts to return (default 25, max 1000)

skip
integer

Number of contacts to skip

email
string

Filter contacts by email address

linkedIn
string

Filter contacts by LinkedIn profile URL

Response

List of contacts retrieved successfully

items
Contact · object[]
hasMore
boolean

Indicates if there are more items to fetch