Fibric. Docs fibric.io →
Reference preview
!
Reference preview

These docs describe the target Fibric platform contract and proposed developer experience. Public Fibric CLI, API endpoints, and SDK packages are not yet available. All present-tense API, CLI, SDK, tenancy, security, retention, retry, and pricing language below is normative target language, not a statement that the surface is callable or commercially available today. Commands, package names, URLs, responses, limits, and timelines are reference examples unless a page explicitly identifies a deployed BearScope path.

Reference

API versioning

This page proposes a two-axis versioning contract for a future Fibric API. No public v1.0 service or compatibility commitment exists today; the paths, revision headers, and support windows below are target examples.

Shared conventions are defined in the API overview. Changes ship with notes in the changelog.

The path-pinned major version

Every request names its major version in the path:

bash
curl https://api.fibric.io/v1/receipts \
  -H "Authorization: Bearer $FIBRIC_KEY"

The target versioning policy aims for additive changes within a major version. No public compatibility promise exists today.

A future support window, sunset notice, and migration policy would be published with an available service and confirmed contractually; this reference makes no twelve-month commitment.

The Fibric-Version revision header

Some changes are additive by the letter of the rule but still change what a default does: a new default page limit, a new default field in a summary object, a stricter default validation. These ship as dated revisions. Pin one with the Fibric-Version header:

bash · pinning a revision
curl https://api.fibric.io/v1/plans \
  -H "Authorization: Bearer $FIBRIC_KEY" \
  -H "Fibric-Version: 2026-06-01"

Semantics:

What counts as breaking

ChangeClassShips as
New endpoint, new optional parameter, new response fieldAdditiveAny time, noted in the changelog.
New enum member in a response fieldAdditiveAny time. Parse enums leniently; treat unknown members as a default case.
New error code within an existing statusAdditiveAny time. Branch on codes you know; fall back on type.
Changed default behavior with the same surfaceRevision-gatedA dated Fibric-Version revision.
Removed or renamed field, changed type, new required parameter, removed endpoint, changed status code for an existing caseBreakingA new major version, at a new path.
i
Write forward-compatible clients

Two habits absorb every additive change: ignore JSON fields you do not recognize, and treat unrecognized enum members and error codes as a default case rather than a crash. Clients built this way only ever need attention at a major-version boundary.

The v1.0 stable contract

The version pill on every page of this reference reads v1.0.0 · stable, and it means something specific. The surface documented here is what production tenants run against. The object model, the envelope-to-receipt chain, is frozen for the 1.x line. Within that contract:

In practice: pin Fibric-Version, read the changelog when it announces a change to an endpoint you use, and expect no surprises on the core objects.

Deprecation policy

When an endpoint, parameter, or field is scheduled for removal in the next major, it is marked deprecated first, and the deprecation is observable in three places:

  1. The changelog. Every deprecation is announced in the changelog with the replacement, the reasoning, and the earliest version that removes it.
  2. This reference. The endpoint or field's documentation is annotated with the same information.
  3. The response. Calls that touch a deprecated element carry a Deprecation response header and a Sunset header with the earliest removal date, per the corresponding IETF drafts, plus a Link header pointing at the changelog entry.
http · deprecation headers on a response
HTTP/1.1 200 OK
Fibric-Version: 2026-06-01
Deprecation: true
Sunset: Sat, 01 Jan 2028 00:00:00 GMT
Link: <https://www.fibric.io/docs/changelog>; rel="deprecation"

Nothing deprecated is ever removed within its major version. Deprecation changes documentation and headers, not behavior.

Discovering versions at runtime

Inspect the response headers on any authenticated request to see the revision that served you:

bash
curl -sI https://api.fibric.io/v1/operators \
  -H "Authorization: Bearer $FIBRIC_KEY" | grep -i '^fibric-version'
# Fibric-Version: 2026-06-01

SDKs pin a revision per SDK release and surface it in their configuration; see SDKs. The CLI reports its pinned revision in fibric --version; see the CLI reference.

Upgrade checklist

When a new revision or major version is announced:

  1. Read the changelog entry. It names every changed behavior and the affected endpoints.
  2. For a revision: set Fibric-Version to the new date in a staging environment, run your integration tests, then move the pin in production.
  3. For a major: the twelve-month overlap means both paths serve simultaneously. Migrate route by route; there is no flag day.
  4. Watch for Deprecation headers in your response logs as an early-warning signal that you depend on something scheduled to go.

Errors

StatusCodeWhen
400invalid_parameterFibric-Version is not a date or names no published revision. The message lists valid revisions.
404not_foundThe path names a major version that does not exist, for example /v2 before v2 ships.

Neither is retryable unchanged; see retryability in Errors.