Skip to main content
The Get Contact endpoint retrieves a single contact by its unique identifier. The contact must belong to your organization — fetching one owned by another organization returns 403 Forbidden. Use List Contacts to discover contact IDs. The fields below are the complete public contact object. CharityStack stores additional internal fields on a contact for its own bookkeeping; those are deliberately not part of this API and will never appear in a response. New fields may be added here over time, so parse defensively and ignore anything you do not recognize.

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
The contact’s primary email address, for convenience. emails is authoritative.
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.
boolean
Read-only. Whether the contact has an active recurring subscription.
string
Read-only. ISO timestamp of the first donation. Absent if they have never donated.
string
Read-only. ISO timestamp of the most recent donation.
string
ISO 8601 timestamp of when the contact was created. Absent for contacts created before CharityStack began recording this, which is most historical contacts — treat it as optional.
string
ISO 8601 timestamp of the most recent update. Always present.
The giving fields (totalTransactionValue, totalTransactionCount, hasActiveSubscription, firstDonationAt, lastDonationAt) 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.

Status codes

Example

cURL
200 response