BricqsBricqs
Documentation

Versioning & Deprecations

The rules the surface evolves by, and the live list of everything currently deprecated, frozen, or defined-but-not-yet-emitted.

Versioning rules

  • REST: versioned by URL prefix (/api/v1). Breaking changes to a shipped route mean a new route or namespace, never a silent in-place change. The contract is exactly the generated OpenAPI artifacts.
  • Webhook events: progression events carry .v1; a payload-breaking change ships as .v2 alongside .v1 during the deprecation window. Legacy activity events (activity.completed, ...) are unversioned and FROZEN: no shape changes, ever.
  • Errors: the envelope carries version 1. New codes may be ADDED at any time (tolerate unknown codes); existing codes and types are never renamed or repurposed.
  • SDKs: semver. Removing or reshaping an export is a major bump.
  • Process (pre-GA): every removal is recorded in the changelog with its replacement. Post-GA this hardens to a 90-day announced window with Deprecation/Sunset headers.

Currently deprecated or deferred

ItemStatusWhat to do
GET /gamify/participants/{id} (full profile)Deprecated in favor of the canonical state readUse GET /gamify/state/{id}?include=...
reward.expired.v1, game.completed (webhook events)Deferred: subscribable, schema-published, no emitter yet (catalog status deferred)Do not block an integration waiting on them
engagement:completed client message / onComplete propDeclared but not emitted by the runtimeDerive completion from activity:completed; see Client Events
Legacy activity webhook events (unversioned)Frozen (no shape changes; no .v1 rename planned)Safe to consume as-is
Legacy hook useEngagementDeprecated; removal scheduled in a future SDK majorUse useEngagementData
Removed 2026-07: legacy /points/*, /rewards/claimed, /ingest/events* routesGone (404)Replacements listed in the changelog