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_keyPath 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.
string
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.string
Same enum and derivation rules as
emailConsent. SMS is an opt-in regime.boolean
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