Skip to content

Assets

Route group for the asset registry and asset categories. Asset routes cover identity lists, the Command Center monitor frame, detail and summary composition, current pricing details, and identity delete. Asset category routes cover category lists, detail composition, and membership-aware create, update, and delete operations.

OpenAPI documentation preserves the same domain boundary as the package model: the canonical Asset schema is documented from AssetTable, while AssetDetailResponse.current_snapshot describes the latest timestamped display facts and details carries resolved type- or provider-specific records. The API does not flatten those separate models into Asset.

Assets

  • GET /api/v1/asset/
  • supports search, limit, offset
  • supports categories__uid for nested category asset tables
  • returns command-center.resource_collection@v1
  • exposes GET /api/v1/asset/discovery/
  • returns the library msm.api.assets.Asset contract: uid, unique_identifier, and asset_type
  • GET /api/v1/asset/by-uids/?uid__in=<uid>&uid__in=<uid>
  • batch lookup by uid (ADR 0047); uid__in is repeated or comma-separated, at most 500
  • returns the matching Asset identity rows in request order inside a ResourceCollection; unknown uids are omitted
  • not a browsable collection: no limit, offset, search or discovery route
  • include=<sidecar MetaTable uid> (repeated or comma-separated, at most 10) attaches provider sidecar rows under includes[<uid>] on every item (null when the sidecar has no row). A sidecar is a provider table with a single-column foreign key to this resource's uid, proven from the MetaTables catalog; each sidecar is read once for all returned uids. The Markets workload needs data_viewer on the sidecar (409 otherwise, 404 for a uid that is not a visible MetaTable, 400 for a table that is not a sidecar of this resource). Plain columns come back as stored; Markets never decrypts a provider column, never selects a column the catalog marks as application-encrypted and drops any encryption-envelope value, so include never returns ciphertext. includes is {} when nothing is included
  • GET /api/v1/asset/monitor/frame/
  • supports search, limit, offset, optional asset_type, and repeated unique_identifiers
  • returns a Command Center TabularFrameResponse
  • exposes the core.tabular_frame@v1 contract for main-sequence-markets__asset-screener
  • publishes AssetTable.unique_identifier as the ms-markets stable asset key without adding a synthetic Symbol column
  • returns the columns uid, unique_identifier, and asset_type
  • GET /api/v1/asset/{uid}/
  • resolves the asset by uid
  • returns AssetDetailResponse with top-level uid, unique_identifier, asset_type, and current_snapshot
  • current_snapshot is the latest AssetSnapshotsStorage row for the asset unique_identifier / snapshot asset_identifier
  • does not use numeric asset IDs for asset identity
  • GET /api/v1/asset/{uid}/summary/
  • returns a reusable FrontEndDetailSummary response for detail-page summary cards
  • resolves the asset by uid
  • includes asset identity, badges, inline fields, highlight fields, label management placeholders, and page-specific extensions
  • GET /api/v1/asset/{uid}/get_pricing_details/
  • returns the current pricing details row for one asset
  • response mirrors msm_pricing.api.AssetCurrentPricingDetails
  • reads AssetCurrentPricingDetailsTable, not the timestamped AssetPricingDetail TimeIndexTableUpdater
  • returns 404 when no current pricing details row exists for the asset
  • DELETE /api/v1/asset/{uid}/
  • deletes one asset identity row by uid
  • returns 200 with null on success
  • returns 404 when the asset uid does not exist
  • related rows are governed by backend table constraints

Asset Categories

  • GET /api/v1/asset-category/
  • returns the library msm.api.assets.AssetCategory contract
  • returns command-center.resource_collection@v1
  • exposes GET /api/v1/asset-category/discovery/, including the authorized bulk-delete action
  • GET /api/v1/asset-category/{uid}/
  • returns AssetCategoryDetailResponse with category display fields, membership-backed number_of_assets, and an assets_list configuration whose default filter is categories__uid=<category_uid>
  • POST /api/v1/asset-category/
  • creates a category
  • derives unique_identifier from display_name when omitted
  • replaces memberships when assets are supplied
  • returns the created library msm.api.assets.AssetCategory row
  • PATCH /api/v1/asset-category/{uid}/
  • updates category metadata
  • replaces memberships when assets are supplied
  • returns the updated library msm.api.assets.AssetCategory row
  • DELETE /api/v1/asset-category/{uid}/
  • deletes a single category
  • returns null on success
  • POST /api/v1/asset-category/bulk-delete/
  • accepts the discovered command-center.bulk_action_execution@v1 request
  • deletes an explicit UUID selection after re-running preflight