Viewcy API
Viewcy API (v2025_06) — API for third-party integrations.
Base URL
All API requests should be made to:
https://api.viewcy.com/2025_06
Authentication
Authenticate by passing your API token as a Bearer token in the Authorization header:
Authorization: Bearer YOUR_API_TOKEN
You can generate API tokens from your Viewcy account settings in the Developer Zone section. Both User and School accounts have a Developer Zone, and a token always acts as its owner.
See Authentication & token model for the full contract — what a token represents, how it scopes access, and why operating on accounts you don't own will require OAuth.
Pagination
List endpoints return paginated results. The response includes:
page— current page numbertotalPages— total number of pagesperPage— items per page (default: 25)totalCount— total number of items
Use the page and perPage query parameters to navigate through results.
Expanding and including fields
Two query parameters reshape what a response contains:
expand— replace a referenced resource's id/url with the full nested object. For example,?expand=location,occurrenceson an event inlines those resources instead of linking to them.include— add extra flat fields that are off by default because they're large or rarely needed. For example,?include=guestEmailMessage,donorEmailMessageon an event.
Both accept a comma-separated list. Each endpoint's reference page lists the values it supports.
Rate Limits
Read operations are rate limited to 60 per minute.
Write operations are rate limited to 20 per minute.
File uploads (POST /uploads) have their own limit of 30 per 10 minutes.
Read, write, and upload limits are tracked in independent buckets — write traffic never eats into your read budget, and vice versa. A request that exceeds its bucket returns 429.
Please contact Viewcy if your integration requires higher limits.
Error Responses
The API uses standard HTTP status codes:
401— Authentication required or invalid token403— Your OAuth token is missing a scope this endpoint requires (Insufficient scope). Returned only for scope gaps — never for cross-owner access (that's404). Personal access tokens are never scope-limited.404— Resource not found, or the resource exists but isn't owned by your token's account. The API does not distinguish these cases — it never returns403for cross-owner access.409— Conflict. For writes, includesidempotency_in_progress— another request with the sameIdempotency-Keyis still being processed (see Idempotency).422— Request was understood but failed validation. Examples: a destructive write that omits a required side-effect flag, oridempotency_key_mismatchwhen anIdempotency-Keywas reused with a different request body.429— Rate limited503— Service unavailable. For writes, includesidempotency_unavailable— the idempotency cache could not be reached and the write was not executed.
Error responses follow this format:
{
"object": "error",
"status": 401,
"message": "Authentication required"
}
Validation failures (422) add a per-field errors array:
{
"object": "error",
"status": 422,
"message": "Validation failed",
"errors": [
{ "field": "name", "message": "can't be blank" }
]
}
See Creating and updating resources for the full write contract.
Writes, async operations, and idempotency
Write endpoints — especially destructive ones like refunds and cancellations — share a few extra rules that apply uniformly across the API:
- Idempotency — set an
Idempotency-Keyheader on every write so retries are safe. Replays return the original response within a 24-hour window. - Async, destructive, and idempotent operations — when responses are
202 Acceptedvs.200 OK, and why side-effect flags must be set explicitly on every request.
OpenAPI Specification
The full OpenAPI spec is available at:
https://developer.viewcy.com/openapi/2025_06_viewcy_api.yaml
API Versioning and Development
The API is in development. We will be adding new endpoints over time.
The API is versioned, any breaking changes in the API will be released as a new version.
Get help
If you have any questions reach us at developer-support@viewcy.com