API Versioning
ProBeya’s API versioning strategy: URL path versioning, additive changes, and Sunset headers.
Versioning Strategy
ProBeya uses URL path versioning to maintain backward compatibility while evolving the API. Each major API version is identified by a path prefix.
https://{org}.probeya.com/api/v1/ingest/batch
https://{org}.probeya.com/api/v2/ingest/batch (future)
Current Versions
| Version | Status | Base Path | Released | Notes |
|---|---|---|---|---|
| v1 | Stable | /api/v1/ | 2026-03-19 | Current production version |
Change Policy
Additive (Non-Breaking) Changes
These changes are applied to the current version without bumping the version number:
- Adding new API endpoints or tRPC procedures
- Adding new optional fields to request bodies
- Adding new fields to response objects
- Adding new webhook event types
- Adding new API key scopes
- Adding new enum values to existing string union types
- Relaxing validation constraints (e.g., increasing a field length limit)
- Adding new optional query parameters to existing endpoints
Clients should be written to ignore unknown fields in responses to remain forward-compatible.
Breaking Changes
These changes require a new API version:
- Removing or renaming an existing field
- Changing the type of an existing field
- Making a previously optional field required
- Changing the semantics of an existing endpoint
- Removing an endpoint or tRPC procedure
- Changing authentication or authorization behavior
- Tightening validation constraints
- Changing error response shapes or codes for existing error conditions
- Reordering or renaming enum values that clients may have persisted
Version Lifecycle
Each API version progresses through three phases:
Active
The version is fully supported and receives all additive changes. This is the recommended version for all new integrations. Bug fixes and security patches are applied immediately.
Deprecated
The version continues to function but is no longer recommended for new integrations. During the deprecation period:
- The
SunsetHTTP header is included in all responses - The
Deprecation: trueheader is included in all responses - A
Linkheader points to the successor version’s migration guide - No new features are added; only security fixes are applied
- The deprecation period lasts a minimum of 6 months
Retired
After the sunset date, the version is removed. All requests return 410 Gone with a JSON body containing migration instructions and a link to the successor version.
Sunset Header
When a version is deprecated, ProBeya includes the Sunset HTTP header in all responses from that version:
HTTP/1.1 200 OK
Sunset: Sat, 01 Oct 2026 00:00:00 GMT
Deprecation: true
Link: <https://docs.probeya.com/api-reference/migration-v2>; rel="successor-version"
Timeline
| Phase | Duration | Description |
|---|---|---|
| Active | Ongoing | Fully supported, receives additive changes |
| Deprecated | 6 months minimum | Sunset header added, no new features, security fixes only |
| Retired | After sunset date | Returns 410 Gone with migration instructions |
Compatibility Matrix
The following table tracks which features are available in each API version:
| Feature | v1 |
|---|---|
| Core CRUD (workspaces, projects, boards, items) | Yes |
| Batch KPI ingestion | Yes |
| Webhook management | Yes |
| API key authentication | Yes |
| AI Insights (anomaly detection, trend prediction) | Yes |
| Time tracking (timers, manual entries, timesheets) | Yes |
| Branding management | Yes |
| Embed token management | Yes |
| Custom domain management | Yes |
| Benchmarking (cross-site KPI comparison) | Yes |
| PDCA cycle management | Yes |
| Mood tracking | Yes |
| PPM (baselines, capacity plans, hiring plans) | Yes |
| Monte Carlo simulation | Yes |
| OpenAPI specification export | Yes |
Migration Guide
When a new version is released:
- Review the changelog for breaking changes (see API Changelog)
- Update your client to use the new base path (
/api/v2/etc.) - Test in staging against the new version before switching production traffic
- Monitor the Sunset header on the deprecated version for the retirement date
- Update webhook endpoints if payload shapes have changed
- Verify API key scopes — new versions may introduce new scopes for new features
Dual-Version Transition Pattern
During the deprecation period, both the old and new versions run simultaneously. We recommend:
Phase 1: Deploy client with new version support (reads from v2, writes to v1)
Phase 2: Validate v2 responses match expected shapes in staging
Phase 3: Switch writes to v2
Phase 4: Remove v1 code paths after confirming no regressions
This phased approach minimizes risk for production integrations.
tRPC Considerations
ProBeya’s API is built on tRPC, which provides end-to-end type safety. When using the tRPC client:
- TypeScript types are generated from the router — schema changes are caught at compile time.
- Batch requests — multiple procedure calls can be batched in a single HTTP request for efficiency.
- Subscriptions — real-time updates via WebSocket transport follow the same versioning policy.
For REST consumers using the OpenAPI specification, the same versioning rules apply. The OpenAPI spec at /api/v1/openapi.json always reflects the current state of the v1 API surface.
Best Practices for API Consumers
- Pin to a specific version in your integration code (
/api/v1/) - Handle unknown fields gracefully — do not fail on extra response fields
- Monitor Sunset headers — set up alerts when deprecation is detected
- Subscribe to the changelog — stay informed about upcoming changes
- Use API key scopes — request only the permissions your integration needs
- Implement exponential backoff — respect rate limits and retry with increasing delays
- Cache read responses — use ETags and
If-None-Matchheaders where supported - Log API version headers — track which version your integration is using in production
- Test against staging — ProBeya provides a staging environment that mirrors production API versions
Was this page helpful?