Skip to main content
GET
/
api
/
v1
/
contact-lists
/
{listId}
/
contacts
/
{id}
Get Contact
curl --request GET \
  --url https://api.example.com/api/v1/contact-lists/{listId}/contacts/{id}
import requests

url = "https://api.example.com/api/v1/contact-lists/{listId}/contacts/{id}"

response = requests.get(url)

print(response.text)
const options = {method: 'GET'};

fetch('https://api.example.com/api/v1/contact-lists/{listId}/contacts/{id}', 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.example.com/api/v1/contact-lists/{listId}/contacts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);

$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.example.com/api/v1/contact-lists/{listId}/contacts/{id}"

req, _ := http.NewRequest("GET", url, nil)

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.example.com/api/v1/contact-lists/{listId}/contacts/{id}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/api/v1/contact-lists/{listId}/contacts/{id}")

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

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "email": "<string>",
  "firstName": "<string>",
  "lastName": "<string>",
  "phoneNumber": "<string>",
  "customFields": {},
  "status": "<string>",
  "source": "<string>",
  "createdAt": "<string>",
  "updatedAt": "<string>",
  "subscribedAt": "<string>",
  "unsubscribedAt": "<string>",
  "consentType": "<string>",
  "consentSource": "<string>",
  "consentTimestamp": "<string>",
  "consentIpAddress": "<string>"
}
Get detailed information about a specific contact by its ID.

Path Parameters

listId
string
required
The unique list ID (e.g., lst_abc123).
id
string
required
The unique contact ID (e.g., cnt_abc123).

Examples

import { MailBreeze } from "mailbreeze";

const mailbreeze = new MailBreeze({ apiKey: "sk_live_xxx" });
const contacts = mailbreeze.contacts("lst_abc123");

const contact = await contacts.get("cnt_abc123");

console.log(contact.email);        // "john@example.com"
console.log(contact.status);       // "active"
console.log(contact.customFields); // { plan: "pro", company: "Acme" }
from mailbreeze import MailBreeze

client = MailBreeze(api_key="sk_live_xxx")
contacts = client.contacts("lst_abc123")

contact = await contacts.get("cnt_abc123")

print(contact.email)         # "john@example.com"
print(contact.status)        # "active"
print(contact.custom_fields) # {"plan": "pro", "company": "Acme"}
client := mailbreeze.NewClient("sk_live_xxx")
contacts := client.Contacts("lst_abc123")

contact, err := contacts.Get(ctx, "cnt_abc123")
if err != nil {
    log.Fatal(err)
}

fmt.Println(contact.Email)        // "john@example.com"
fmt.Println(contact.Status)       // "active"
fmt.Println(contact.CustomFields) // map[plan:pro company:Acme]
$mailbreeze = new MailBreeze('sk_live_xxx');

$response = $mailbreeze->contacts->get('lst_abc123', 'cnt_abc123');
$contact = $response['data'];

echo $contact['email'];        // "john@example.com"
echo $contact['status'];       // "active"
print_r($contact['customFields']); // ["plan" => "pro", "company" => "Acme"]
let client = Client::new("sk_live_xxx");
let contacts = client.contacts("lst_abc123");

let contact = contacts.get("cnt_abc123").await?;

println!("{}", contact.email);  // "john@example.com"
println!("{}", contact.status); // "active"
curl "https://api.mailbreeze.com/api/v1/contact-lists/694fc1669e63563857ae8d72/contacts/8f1701be-0d2a-4519-999c-0574a3d68668" \
  -H "Authorization: Bearer sk_live_xxx"

Response

id
string
Unique contact ID.
email
string
Contact’s email address.
firstName
string
Contact’s first name.
lastName
string
Contact’s last name.
phoneNumber
string
Contact’s phone number.
customFields
object
Custom field values.
status
string
Contact status: active, unsubscribed, bounced, complained, or suppressed.
source
string
Acquisition source.
createdAt
string
ISO 8601 timestamp when created.
updatedAt
string
ISO 8601 timestamp when last updated.
subscribedAt
string
ISO 8601 timestamp when subscribed.
unsubscribedAt
string
ISO 8601 timestamp when unsubscribed (if applicable).
Type of consent: explicit, implicit, or legitimate_interest.
Where consent was collected.
ISO 8601 timestamp when consent was given.
IP address from which consent was given.
Example Response
{
  "success": true,
  "data": {
    "id": "8f1701be-0d2a-4519-999c-0574a3d68668",
    "domainId": "6911cf4253eb3ff3b4de6215",
    "contactListId": "694fc1669e63563857ae8d72",
    "email": "user@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "customFields": {},
    "status": "active",
    "source": "console",
    "subscriptionToken": "b839501cb01ca878a01bd2d8d947ad3350b53afbf5370d3b3e1999c958ce309a",
    "createdAt": "2025-12-27T12:36:25.458Z",
    "updatedAt": "2025-12-27T12:36:26.851Z"
  },
  "meta": {
    "timestamp": "2025-12-27T13:45:00.000Z",
    "requestId": "abc123-def456",
    "path": "/api/v1/contact-lists/694fc1669e63563857ae8d72/contacts/8f1701be-0d2a-4519-999c-0574a3d68668"
  }
}

Errors

CodeHTTP StatusDescription
CONTACT_NOT_FOUND404Contact with this ID doesn’t exist
LIST_NOT_FOUND404List with this ID doesn’t exist