Skip to main content
The Get Contact endpoint retrieves a single contact record by its unique identifier. The contact must belong to your merchant account — attempting to fetch a contact owned by another merchant returns 403 Forbidden. Use List Contacts to discover contact IDs.

Endpoint

Authentication

string
required
Bearer token using your API key. Format: Bearer cs_live_your_key

Path parameters

string
required
The unique identifier of the contact (UUID format).

Response

On success the endpoint returns a single Contact object directly (not wrapped in an array).
string
Unique identifier for the contact.
string
Contact’s first name.
string
Contact’s last name.
string
Full name derived from firstName and lastName.
string
Organization or company name, if provided.
object[]
List of email address objects.
object[]
List of phone number objects.
object[]
List of address objects.
number
Lifetime number of transactions associated with this contact.
number
Lifetime total transaction value in dollars.
SUBSCRIBED, UNSUBSCRIBED, NEVER_SUBSCRIBED or UNKNOWN. Always present — derived server-side with suppression rules applied, so a contact the platform will not send to never reads as subscribed.
Same enum and derivation rules as emailConsent. SMS is an opt-in regime.
Master consent flag, derived alongside the channel enums.
string
Read-only. Computed giving status — e.g. new_donor, repeat_donor, active_recurring, churned_recurring.
boolean
Read-only. Whether the contact has an active recurring subscription.
boolean
Read-only. Gave last year but not this year.
string
Read-only. ISO timestamp of the first donation.
string
Read-only. ISO timestamp of the most recent donation.
string[]
Read-only via this API — tags are managed in the CharityStack dashboard.
boolean
Read-only. The contact chose to donate anonymously.
The analytics fields above (donor_status, has_active_subscription, is_lybunt, first_donation_at, last_donation_at, tags, anonymousDonation) are computed by CharityStack. Sending any of them to Update Contact or Create Contact returns 400 validation_failed — they can never be edited through the public API.
string
ISO 8601 timestamp of when the contact was created.
string
ISO 8601 timestamp of the most recent update.

Status codes

Example

cURL
200 response