Pricing Market Data Routes
The pricing market-data route group is exposed under:
/api/v1/pricing/market_data/
The FastAPI layer is a resolver only. Row contracts and CRUD operations come
from msm_pricing.api.
Discoverability
GET /api/v1/pricing/market_data/
Response:
{
"resource": "pricing_market_data",
"description": "Manage pricing market-data sets and concept bindings.",
"resources": [
{
"key": "sets",
"model": "PricingMarketDataSet",
"list_url": "/api/v1/pricing/market_data/sets/",
"create_url": "/api/v1/pricing/market_data/sets/",
"upsert_url": "/api/v1/pricing/market_data/sets/upsert/"
},
{
"key": "bindings",
"model": "PricingMarketDataSetBinding",
"list_url": "/api/v1/pricing/market_data/bindings/",
"create_url": "/api/v1/pricing/market_data/bindings/",
"upsert_url": "/api/v1/pricing/market_data/bindings/upsert/"
}
]
}
Data Sets
GET /api/v1/pricing/market_data/sets/?limit=25&offset=0&status=ACTIVE&set_key=default
Response uses command-center.resource_collection@v1; discovery is available
at /api/v1/pricing/market_data/sets/discovery/:
{
"items": [
{
"uid": "7f958bbf-44cc-4cb9-ad19-b41b5aa28d60",
"set_key": "default",
"display_name": "Default pricing market data",
"description": null,
"status": "ACTIVE",
"metadata_json": null
}
],
"pageInfo": {
"pageIndex": 0,
"pageSize": 25,
"totalItems": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
}
GET /api/v1/pricing/market_data/sets/{uid}/
GET /api/v1/pricing/market_data/sets/by-key/{set_key}/
Response:
{
"uid": "7f958bbf-44cc-4cb9-ad19-b41b5aa28d60",
"set_key": "default",
"display_name": "Default pricing market data",
"description": null,
"status": "ACTIVE",
"metadata_json": null
}
POST /api/v1/pricing/market_data/sets/
POST /api/v1/pricing/market_data/sets/upsert/
PATCH /api/v1/pricing/market_data/sets/{uid}/
Request bodies use the corresponding msm_pricing.api contracts:
PricingMarketDataSetCreatePricingMarketDataSetUpsertPricingMarketDataSetUpdate
Responses return PricingMarketDataSet.
DELETE /api/v1/pricing/market_data/sets/{uid}/
Response:
{
"detail": "Deleted pricing market-data set.",
"uid": "7f958bbf-44cc-4cb9-ad19-b41b5aa28d60",
"deleted_count": 1
}
Deleting a set relies on backend cascade behavior for related binding rows.
Bindings
GET /api/v1/pricing/market_data/bindings/?limit=25&offset=0&market_data_set_uid=...&concept_key=discount_curves
GET /api/v1/pricing/market_data/sets/{market_data_set_uid}/bindings/?limit=25&offset=0
Response:
{
"items": [
{
"uid": "6b8fd8e4-6748-423c-b9fb-fad522d6f150",
"market_data_set_uid": "7f958bbf-44cc-4cb9-ad19-b41b5aa28d60",
"concept_key": "discount_curves",
"data_node_uid": "5f4d0bb8-36f0-44fc-a9fc-f42dd3ce7f2d",
"storage_table_identifier": "DiscountCurvesStorage",
"source": "example",
"metadata_json": null
}
],
"pageInfo": {
"pageIndex": 0,
"pageSize": 25,
"totalItems": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
}
The global and set-scoped binding lists declare
command-center.resource_collection@v1 and expose sibling /discovery/
operations.
GET /api/v1/pricing/market_data/bindings/{uid}/
Response:
{
"uid": "6b8fd8e4-6748-423c-b9fb-fad522d6f150",
"market_data_set_uid": "7f958bbf-44cc-4cb9-ad19-b41b5aa28d60",
"concept_key": "discount_curves",
"data_node_uid": "5f4d0bb8-36f0-44fc-a9fc-f42dd3ce7f2d",
"storage_table_identifier": "DiscountCurvesStorage",
"source": "example",
"metadata_json": null
}
GET /api/v1/pricing/market_data/bindings/resolve/?market_data_set=default&concept_key=discount_curves
Response:
{
"market_data_set": "default",
"concept_key": "discount_curves",
"data_node_uid": "5f4d0bb8-36f0-44fc-a9fc-f42dd3ce7f2d"
}
POST /api/v1/pricing/market_data/bindings/
POST /api/v1/pricing/market_data/bindings/upsert/
PATCH /api/v1/pricing/market_data/bindings/{uid}/
Request bodies use the corresponding msm_pricing.api contracts:
PricingMarketDataSetBindingCreatePricingMarketDataSetBindingUpsertPricingMarketDataSetBindingUpdate
Responses return PricingMarketDataSetBinding.
DELETE /api/v1/pricing/market_data/bindings/{uid}/
Response:
{
"detail": "Deleted pricing market-data binding.",
"uid": "6b8fd8e4-6748-423c-b9fb-fad522d6f150",
"deleted_count": 1
}
Collection contract
All list endpoints in this route group use
command-center.resource_collection@v1:
{
"items": [],
"pageInfo": {
"pageIndex": 0,
"pageSize": 25,
"totalItems": 123,
"hasNextPage": true,
"hasPreviousPage": false
}
}
totalItems is the exact number of rows matching the filters. limit and
offset are request query parameters and are represented canonically by
pageSize and pageIndex.