Source Artifact summary
| Artifact | Role |
|---|
packages/exchange-api/public/swagger.json | Exchange REST source artifact |
packages/stats/public/swagger.json | Stats REST source artifact |
packages/api-docs/merged/unified-swagger.json | Unified public REST source artifact |
docs/api-specs/public-rest-unified.json | Derived Mintlify render artifact built from the unified source artifact plus vendored schema definitions |
Manual overlay boundary
The public REST family also documents the private request-submission posture around GET /v2/encryption-key and POST /v2/request. Those paths are intentionally covered by authored support pages, but they are not endpoints in docs/api-specs/public-rest-unified.json.
Ownership chain
| Layer | Ownership |
|---|
| Package-owned Swagger artifacts | Authoritative contract source for the public REST family |
| Unified Swagger | Repo-owned merge layer for the public REST surface |
docs/api-specs/public-rest-unified.json | Derived docs-local render input for Mintlify; not the primary source of truth |
| Generated REST pages | Public rendering layer that depends on the derived docs-local bundle |
Ownership rule
The package-owned Swagger artifacts remain the source of truth for the public REST family. docs/api-specs/public-rest-unified.json exists only to normalize the historical external schema references into one Mintlify-compatible OpenAPI bundle. Regenerate it with node scripts/build-mintlify-public-rest-openapi.mjs when the unified public Swagger changes.
Regeneration and verification
| Step | Command |
|---|
| Rebuild the docs-local render bundle | node scripts/build-mintlify-public-rest-openapi.mjs |
| Confirm the bundle is current | node scripts/build-mintlify-public-rest-openapi.mjs --check |
Publication rule
This source-artifact chain applies to the active public REST family only. Restricted and product-specific source artifacts elsewhere in the repo do not become public generated-contract inputs by analogy.Last modified on April 13, 2026