Get Contact
curl --request GET \
--url https://pub-api.conversion.ai/api/v2/contacts \
--header 'X-API-Key: <api-key>'import requests
url = "https://pub-api.conversion.ai/api/v2/contacts"
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://pub-api.conversion.ai/api/v2/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://pub-api.conversion.ai/api/v2/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 => [
"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://pub-api.conversion.ai/api/v2/contacts"
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://pub-api.conversion.ai/api/v2/contacts")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pub-api.conversion.ai/api/v2/contacts")
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{
"data": {
"contact": {
"cnvContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"email": "jane@example.com",
"userId": "user_12345",
"subscriptionStatus": "SUBSCRIBED",
"fields": {
"first_name": "Jane",
"last_name": "Smith",
"job_title": "VP of Marketing"
},
"createdAt": "2026-01-10T08:00:00Z",
"updatedAt": "2026-02-03T14:22:05Z"
}
}
}Contacts
Get Contact
Fetch a single contact by email or cnvContactId. Provide exactly one identifier; cnvContactId takes precedence when both are provided.
When looking up by email, the most recently updated contact with that email address is returned.
Request access. This endpoint is not enabled by default, contact the Conversion team to request access. Calls from accounts without it return
403 export_not_enabled.
GET
/
v2
/
contacts
Get Contact
curl --request GET \
--url https://pub-api.conversion.ai/api/v2/contacts \
--header 'X-API-Key: <api-key>'import requests
url = "https://pub-api.conversion.ai/api/v2/contacts"
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://pub-api.conversion.ai/api/v2/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://pub-api.conversion.ai/api/v2/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 => [
"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://pub-api.conversion.ai/api/v2/contacts"
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://pub-api.conversion.ai/api/v2/contacts")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pub-api.conversion.ai/api/v2/contacts")
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{
"data": {
"contact": {
"cnvContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"email": "jane@example.com",
"userId": "user_12345",
"subscriptionStatus": "SUBSCRIBED",
"fields": {
"first_name": "Jane",
"last_name": "Smith",
"job_title": "VP of Marketing"
},
"createdAt": "2026-01-10T08:00:00Z",
"updatedAt": "2026-02-03T14:22:05Z"
}
}
}Authorizations
Your Conversion API key. Found in Settings > Integrations in the dashboard. Format: sk_live_<key_id>_<secret>.
Query Parameters
The contact's email address. When multiple contacts share the same email, the most recently updated contact is returned.
The Conversion contact ID.
Response
Contact retrieved successfully.
Show child attributes
Show child attributes
Was this page helpful?