Skip to main content

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 number
  • totalPages — total number of pages
  • perPage — 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,occurrences on 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,donorEmailMessage on 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.

Check-in and check-out (POST /registrations/{id}/check_in and /check_out) have their own limit of 600 per minute — a shared budget sized for several ticket scanners working one venue.

Read, write, upload, and check-in 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 token
  • 403 — Your OAuth token is missing a scope this endpoint requires (Insufficient scope). Returned only for scope gaps — never for cross-owner access (that's 404). 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 returns 403 for cross-owner access.
  • 409 — Conflict. For writes, includes idempotency_in_progress — another request with the same Idempotency-Key is still being processed (see Idempotency).
  • 422 — Request was understood but failed validation. Examples: a destructive write that omits a required side-effect flag, or idempotency_key_mismatch when an Idempotency-Key was reused with a different request body.
  • 429 — Rate limited
  • 503 — Service unavailable. For writes, includes idempotency_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-Key header 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 Accepted vs. 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