- Server Side APIs (
/v2/private/...) — for trusted, server-to-server integrations. These return richer data and support write operations such as offline donations and webhook management. Never call them from a browser. - Client Side APIs (
/v2/client/...) — read-mostly endpoints (plus donation processing) that are safe to call from public-facing pages, such as widgets and custom donation flows.
Base URLs
Use the base URL that matches the region your account is hosted in:| Environment | Base URL |
|---|---|
| Production (US) | https://api.crowdchange.co |
| Production (CA) | https://api.crowdchange.ca |
| Development | https://api.crowdchange.dev |
Authentication
Every request must include your API key in theAuthorization header. The Bearer prefix is optional.
403 Forbidden. Keep your key secret and use it only from trusted server environments.
User authentication
A subset of Server Side endpoints act on behalf of an individual user (for example, managing the campaigns, teams, or personal pages a user owns). These require an additional user token on top of your API key.- Obtain a token by calling Sign In with the user’s credentials.
- Send the returned token with each user-specific request, either in the
auth-tokenheader or as atokenrequest parameter.
HTTP Methods
The API follows standard REST conventions:| Method | Usage |
|---|---|
GET | Retrieve a resource or a list of resources. |
POST | Create a resource, or run a search or an action. |
PUT | Replace an existing resource with the supplied representation. |
Dates and Times
All date and time values follow the ISO 8601 standard and are stored and returned in UTC. Date-time values are formatted asYYYY-MM-DD hh:mm:ss.
Status Codes
The API uses conventional HTTP status codes to indicate the result of a request:| Code | Meaning |
|---|---|
200 OK | The request succeeded. |
400 Bad Request | The request was malformed or could not be processed. |
401 Unauthorized | Authentication is missing or invalid. |
403 Forbidden | Authentication succeeded, but you do not have access to the resource. |
404 Not Found | The requested resource does not exist. |
405 Method Not Allowed | The HTTP method is not supported for this endpoint. |
422 Unprocessable Entity | The request body failed validation. |
429 Too Many Requests | You have exceeded the rate limit; retry later. |
Errors
When validation fails (422), the response lists each invalid field and its messages:
status and a message: