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 the shared limit-offset pagination envelope:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uid": "7f958bbf-44cc-4cb9-ad19-b41b5aa28d60",
"set_key": "default",
"display_name": "Default pricing market data",
"description": null,
"status": "ACTIVE",
"metadata_json": null
}
]
}
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:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"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/{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
}
Pagination
All list endpoints in this route group use the shared FastAPI v1
PaginatedResponse[T] contract:
{
"count": 123,
"next": "http://testserver/api/v1/pricing/market_data/sets/?limit=25&offset=25",
"previous": null,
"results": []
}
count is the total number of rows matching the exact filters. limit and
offset are request query parameters and are not included in the response body.