GET/v1/health
Liveness probe. Always public, never rate-limited by identity.
Public and authenticated HTTP surface, generated from the same contracts the API validates
against. Machine-readable version at /v1/openapi.json.
The internal service-token boundary (/v1/internal/**) and the MCP editorial
boundary are not part of this document.
Base URL: https://api.valyzer.com
/v1/healthLiveness probe. Always public, never rate-limited by identity.
/v1/openapi.jsonThis document, generated from `@valyzer/contracts`.
/v1/docsA self-contained HTML page (no external scripts or stylesheets) rendering this spec.
/v1/eventsCursor-paginated, bitemporal event feed. Only `published` events are ever returned; `asOf`/`knownAt` select the valid-time and recorded-time cut, defaulting to now/latest.
/v1/events/:idFull projection: entities, claims, relationships, impacts, evidence. `locale=en` drops Spanish-only evidence (WORLD_NEWS §7).
/v1/events/:id/historyThe recorded-time revision timeline of a published event, without workspace or reviewer identity.
/v1/events/:id/evolutionPaginated timeline of publications, corrections, claim resolutions and impact reviews at a reproducible bitemporal cut. Compares explicit version ids; restricted comparisons are marked unavailable instead of leaking editorial snapshots.
/v1/events/:id/evolution/:changeId/changesReturns additional changes when an evolution entry exceeds the initial page size.
/v1/events/:id/correctionsReviewer/admin only, restricted to the configured editorial workspace. Closes the current event version's recorded interval and appends its successor atomically; preserves valid time. A patch with no effective change is rejected with 409.
/v1/editorial/conflictsAdmin-only in the configured editorial workspace. Creates an auditable conflict between two stored claim versions and records an opening decision.
/v1/editorial/conflictsAdmin-only paginated list of open or resolved conflicts in the editorial workspace.
/v1/editorial/conflicts/:idAdmin-only detail view with both claim sides, authorized evidence, and paginated decisions.
/v1/editorial/conflicts/:id/resolveAdmin-only resolution with optimistic concurrency on revision and premise versions.
/v1/editorial/entities/merge-previewAdmin-only read of expected versions, affected counts, incompatibilities, and a preview token.
/v1/editorial/entities/mergeAdmin-only merge with preview token validation and auditable equivalence redirect.
/v1/editorial/entity-decisions/:id/revertAdmin-only compensating decision that closes the equivalence redirect.
/v1/editorial/entities/:id/decisionsAdmin-only paginated history of merge decisions for an entity with revert eligibility.
/v1/editorial/predicate-proposalsAdmin-only vocabulary proposal with authorized examples. Does not relax runtime catalog validation.
/v1/editorial/predicate-proposalsAdmin-only paginated list filtered by status (default proposed).
/v1/editorial/predicate-proposals/:idAdmin-only detail with up to 20 examples and paginated decisions.
/v1/editorial/predicate-proposals/:id/decideAdmin-only decision with coverage threshold on accept (3 documents, 2 roots).
/v1/editorial/predicate-proposals/:id/mark-implementedAdmin-only closure once the deployed catalog contains an exact matching entry.
/v1/editorial/impacts/review-queueAdmin-only paginated queue of impacts marked needs_review or legacy_untracked.
/v1/editorial/impacts/:id/reviewAdmin-only attach, reaffirm, or withdraw with optimistic concurrency on impact and premise versions.
/v1/editorial/world/territorial-assertionsEditorial staging for territorial assertions; does not auto-publish.
/v1/editorial/world/metric-observationsEditorial staging for metric observations; does not auto-publish.
/v1/reviewsAuthenticated, reviewer/admin of the requested workspace.
/v1/ingestionsAuthenticated, reviewer/admin of the requested workspace.
/v1/source-catalogAuthenticated. Dataset-scoped rights and document assessments for one workspace.
/v1/source-catalog/approvalsAuthenticated mutation over the source catalogue.
/v1/events/:id/reviewsAuthenticated. Publish, reject, or request changes for a pending event analysis. Publishing with known quality flags requires `confirmQualityRisks: true`.
/v1/impacts/:id/explanationReturns the authorized premise chain for an impact at the requested temporal cut.
/v1/entitiesCursor-paginated entity list with kind and free-text filters. `statePredicate` (a catalog predicate of form `state`, e.g. `sanctions.designation`) restricts to subjects of a currently public State at the requested asOf/knownAt — '¿quién está designado a T?' (docs/data/STATE_FORM.md §7); `stateValue` narrows to one coexisting value (a regime's entity uuid, or literal text).
/v1/entities/:idFull projection: relationships and linked events.
/v1/companies/:id/exposureImpacts targeting this company (fact, mechanism, direction, confidence, and evidence per claim) plus its relationships to other entities. 404 if the id is not a company.
/v1/sectors/:id/exposureSame shape as company exposure, scoped to a sector entity. 404 if the id is not a sector.
/v1/commodities/:id/riskSame shape as company exposure, scoped to a commodity entity -- the wedge's first link (`sanction -> commodity`, `docs/product/MOAT_STRATEGY.md` §4). 404 if the id is not a commodity.
/v1/impactCursor-paginated feed of every public impact, each enriched with its claim, event, and target entity. Filterable by entity id and direction.
/v1/changesWhat changed in what we knew between two recorded-time instants -- not what happened (`/v1/events`). `since` is required; `until` defaults to request time and is always echoed back in `meta.until` rather than left implicit.
/v1/map/eventsThe same event filters as `/v1/events`, scoped to a `west,south,east,north` viewport.
/v1/world/featuresComposite layer (`events`, `situations`, `countries`) for one viewport and zoom level. Area layers answer on valid time (`asOf`) so the map can reconstruct a past date.
/v1/world/annualWithout `layer`, returns the catalogue of published annual series. With `layer`, returns the full `from..to` window in one payload so the client can scrub years without one request per year. Optional `knownAt` selects the recorded-time cut; absent, the series is current knowledge.
/v1/world/exposurePublic choropleth layer; `data` is null when no score has ever been calculated.
/v1/world/tensionPublic. The current reading plus annual history; 100 is the documented great-power total-war reference. `data` is null when nothing has been computed yet.
/v1/world/tension/pairsPublic. `from` is the emitter side of the published relation edges behind the score, `to` the counterpart. `data` is null when no score has been computed for the pair — never a synthetic zero.
/v1/world/connectionsAuthenticated. Returns the entity's relationships as connection edges.
/v1/world/countries/:iso2Public country projection: gauges, problems, resource trends, optional geometry.
/v1/world/situations/:slugPublic situation (armed conflict, sanctions regime, ...) projection. Some fields (or the whole record, for pilot situations awaiting backfill) require authentication.
/v1/world/exportAuthenticated. `scope=country&id=ISO2`, as JSON or CSV.
/v1/world/layersDAT-02 layer definitions and catalogue snapshot.
/v1/world/viewportNET-02 viewport query with layerStates and pagination.
/v1/world/searchFull-text search over published geographies, assets, and entities.
/v1/world/changesGrouped world changes by decision within a bounded time window.
/v1/world/clusters/:key/membersExpand a viewport cluster key into its authorized member features.
/v1/world/geographies/:idGeography unit with ancestors, paginated children, and geometry version.
/v1/world/observationsDAT-03 observations projected from statistical and object sources.
/v1/world/objects/:kind/:idDetail for event, asset, connection, or entity world objects.
/v1/world/objects/:kind/:id/observationsMetric observations attached to a specific world object.
/v1/world/objects/:kind/:id/explanationsPaginated public impact explanation summaries for a world object.
/v1/world/relationsActor relations and connected nodes up to depth 2.
/v1/world/actors/:idPublished actor projection with typed relations.
/v1/world/territorial-assertionsPublished territorial assertions with temporal filters.
/v1/world/pathsBounded multi-hop path search over published network edges.
/v1/world/metricsPublished world metric definitions and comparability metadata.
/v1/world/raster-sampleNearest-cell raster value for a layer revision and period.
/v1/world/intersectionsSpatial coincidence query with explicit non-causation disclaimer.
/v1/observatories/:topicSource-gated statistical projection for PR-010/011. Returns a stable definition, bitemporal observations, an opaque cursor tied to filters and `knownAt`, and explicit coverage. Definitions may be `unavailable` while source mapping or rights approval is pending; unavailable responses never include factual observations.
/v1/meAuthenticated. Profile preferences plus resolved workspace roles.
/v1/admin/load-diaryAdmin-only operational read (docs/product/ADMIN.md §3): daily flows of the freeze → assess → load → publish → retract cycle over the public-projection corpus, plus the current public corpus counts. Days are Europe/Madrid calendar days.
/v1/admin/invisibilityAdmin-only operational read (docs/product/ADMIN.md §4): current graph versions that fail their `publication_boundary_*` predicate at `now()`, each with the first failing gate from the closed `InvisibilityReason` enum.
/v1/client/workspacesOnly enabled client workspaces the caller currently belongs to, with the effective client capability. No editorial-role inheritance.
/v1/client/workspaces/:workspaceId/profileCurrent declared profile version plus operator-held identity resolution state. Absent data means unknown, never zero exposure.
/v1/client/workspaces/:workspaceId/profileRequires the profile-manager capability. Close-and-insert with `expectedVersion` optimistic concurrency; identity resolution stays operator-only.
/v1/client/workspaces/:workspaceId/dependenciesCurrent versions of the private dependency context declared by the organization.
/v1/client/workspaces/:workspaceId/dependenciesRequires the profile-manager capability. `expectedVersion` must be null for a new declaration.
/v1/client/workspaces/:workspaceId/dependencies/:idRequires the profile-manager capability. Close-and-insert against `expectedVersion`; the subject of a declaration is immutable.
/v1/client/workspaces/:workspaceId/perimeterCurrent perimeter versions including pending resolutions. `original_text` is immutable and preserved verbatim.
/v1/client/workspaces/:workspaceId/perimeterRequires the profile-manager capability. New items enter as `pending`; clients never resolve identities themselves.
/v1/client/workspaces/:workspaceId/perimeter/:id/removeRequires the profile-manager capability. Closes the current version and inserts a `removed` one; nothing is deleted.
/v1/client/workspaces/:workspaceId/preferencesPersonal preferences of the caller in this workspace; never another member's.
/v1/client/workspaces/:workspaceId/preferencesPersonal filtering only; preferences never change the shared profile or the base ranking. The IANA timezone is confirmed, not deduced.
/v1/client/workspaces/:workspaceId/todayDeterministic, explainable selection over eligible published data. Responses declare the cut, rule and profile versions, pending counts and honest coverage; a cursor pins pagination to a persisted snapshot.
/v1/client/workspaces/:workspaceId/topics/:idRe-evaluates eligibility before answering; opening a topic never marks it reviewed.
/v1/client/workspaces/:workspaceId/topics/:id/reviewsPer-user check bound to an exact material version; idempotent per idempotency key. Does not change the shared status.
/v1/client/workspaces/:workspaceId/topics/:id/actionsRequires the collaborator capability. Follow/unfollow/dismiss/close/reopen/assign with expected shared-state version; dismissal requires a reason. Append-only history.
/v1/client/workspaces/:workspaceId/membersMembership and client capabilities are operator-managed; there is no self-elevation.
/v1/client/workspaces/:workspaceId/sectorsOnly currently published sector/industry entities; free text stays pending classification.
/v1/client/workspaces/:workspaceId/reportsOnly delivered frozen report versions; drafts and reviews are never listed.
/v1/client/workspaces/:workspaceId/reports/:idHash-verified reopening of the frozen bundle; the report is never recalculated and opening it marks nothing reviewed. Storage keys are never exposed.