GET /health) must include a valid API key in the Authorization header. This page explains the header format, key structure, permission scopes, rate limiting, and how to obtain or replace a key.
Bearer token format
Pass your API key as a Bearer token in theAuthorization header:
API key format
Production API keys use thecs_live_ prefix followed by a secure random string:
Key visibility and rotation
Your full API key is shown only once — immediately after it is created. After that, only a preview of the key is available for identification purposes. Only one active API key is allowed per merchant account at a time. Issuing a new key immediately revokes all previously active keys for your account.Permissions
Each API key is issued with a specific set of permissions that control which endpoints you can call. Your administrator configures these when the key is provisioned.| Permission | What it grants |
|---|---|
donations:read | Read payment records |
subscriptions:read | Read subscription records |
subscriptions:write | Update subscription status or amount, and create hosted payment method update links |
contacts:read | Read donor contact records |
contacts:write | Create and update contacts |
forms:read | Read donation form configurations |
forms:write | Create, update, and delete forms |
webhooks:read | Read webhook configurations |
webhooks:write | Create, update, and delete webhooks |
analytics:read | Read API metrics and webhook delivery logs |
403 Forbidden.
Rate limiting
The API allows up to 1,000 requests per hour per API key, measured over a rolling one-hour window. Every response includes the following headers so you can monitor your usage:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed per hour |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the current window resets |
429 Too Many Requests. Wait until the timestamp in X-RateLimit-Reset before retrying.
Error responses
401 Unauthorized
The API returns401 Unauthorized when the API key is missing or invalid:
- The
Authorizationheader is missing from the request - The key value is malformed or contains extra whitespace
- The key has been revoked (a new key was issued for your account)
Bearer cs_live_your_key_here.
403 Forbidden
If your key lacks the permission required for the endpoint you called, the API returns403 Forbidden. Contact your administrator to reprovision your key with the appropriate permissions.
Obtaining an API key
API keys are provisioned by your CharityStack account administrator. Contact your administrator and specify which permissions your integration requires. Refer to the permissions table above to identify the scopes you need.There is no self-service key management dashboard. Key provisioning is handled administratively. If you need a new key or updated permissions, reach out to your administrator.
Next steps
Quickstart
Walk through making your first authenticated API request step by step.
API Reference
Explore every available endpoint and the permissions each one requires.