Pricing Curve Routes
The pricing curve registry route group is exposed under:
/api/v1/pricing/curves/
These routes list CurveTable registry rows through msm_pricing.api.Curve.
They do not return timestamped DiscountCurvesStorage observations or
compressed curve payloads.
List Curves
GET /api/v1/pricing/curves/?limit=25&offset=0&search=SOFR&curve_type=discount&index_uid=...&source=example
Query parameters:
limit: maximum rows to return, default25, max500offset: zero-based row offset, default0search: optional contains search onunique_identifiercurve_type: optional exact curve type filterindex_uid: optional exact index uid filtersource: optional exact source filter
Response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uid": "curve-uid",
"unique_identifier": "USD-SOFR-3M-DISCOUNT",
"display_name": "USD SOFR 3M Discount Curve",
"curve_type": "discount",
"index_uid": "index-uid",
"interpolation_method": "log_linear_discount",
"compounding": "compounded_annual",
"source": "example",
"metadata_json": {}
}
]
}
The response uses the shared v1 limit-offset envelope:
{
"count": 0,
"next": null,
"previous": null,
"results": []
}
Curve Summary
GET /api/v1/pricing/curves/{uid}/summary/
Gets the reusable detail summary card payload for one pricing curve registry
row by uid.
Response model: FrontEndDetailSummary
Response:
{
"entity": {
"id": "curve-uid",
"type": "pricing_curve",
"title": "USD SOFR 3M Discount Curve"
},
"badges": [
{
"key": "curve_type",
"label": "discount",
"tone": "info"
}
],
"inline_fields": [
{
"key": "uid",
"label": "UID",
"value": "curve-uid",
"kind": "code",
"icon": null
},
{
"key": "unique_identifier",
"label": "Identifier",
"value": "USD-SOFR-3M-DISCOUNT",
"kind": "code",
"icon": null
},
{
"key": "index_uid",
"label": "Index UID",
"value": "index-uid",
"kind": "code",
"icon": null
}
],
"highlight_fields": [
{
"key": "display_name",
"label": "Display Name",
"value": "USD SOFR 3M Discount Curve",
"kind": "text",
"icon": "database"
},
{
"key": "curve_type",
"label": "Curve Type",
"value": "discount",
"kind": "code",
"icon": "line-chart"
}
],
"stats": [],
"label_management": null,
"summary_warning": null,
"extensions": {
"curve": {
"uid": "curve-uid",
"unique_identifier": "USD-SOFR-3M-DISCOUNT",
"display_name": "USD SOFR 3M Discount Curve",
"curve_type": "discount",
"index_uid": "index-uid",
"interpolation_method": "log_linear_discount",
"compounding": "compounded_annual",
"source": "example",
"metadata_json": {}
},
"metadata_json": {}
}
}
Returns 404 when the curve uid does not exist.
Discount Curve Nodes
GET /api/v1/pricing/curves/{uid}/discount-curve/?market_data_set=eod&valuation_date=2026-06-01T00:00:00Z
Reads discount-curve nodes for one curve through MSDataInterface.
Query parameters:
market_data_set: required pricing market-data set selector. Accepts a set uid or set key.valuation_date: optional ISO datetime. When omitted, the endpoint returns the latest available discount-curve observation for the curve.
Response model: DiscountCurveResponse
Response:
{
"curve_uid": "curve-uid",
"curve_identifier": "USD-SOFR-3M-DISCOUNT",
"curve": {
"uid": "curve-uid",
"unique_identifier": "USD-SOFR-3M-DISCOUNT",
"display_name": "USD SOFR 3M Discount Curve",
"curve_type": "discount",
"index_uid": "index-uid",
"interpolation_method": "log_linear_discount",
"compounding": "compounded_annual",
"source": "example",
"metadata_json": {}
},
"market_data_set": {
"uid": "market-data-set-uid",
"set_key": "eod",
"display_name": "End of day"
},
"binding": {
"uid": "binding-uid",
"concept_key": "discount_curves",
"data_node_uid": "discount-curves-data-node-uid",
"storage_table_identifier": "DiscountCurvesStorage"
},
"valuation_date": "2026-06-01T00:00:00Z",
"effective_date": "2026-06-01T00:00:00Z",
"request_mode": "historical",
"nodes": [
{
"days_to_maturity": 28,
"zero": 0.11
},
{
"days_to_maturity": 91,
"zero": 0.105
}
]
}
When valuation_date is omitted:
{
"valuation_date": null,
"effective_date": "2026-06-02T00:00:00Z",
"request_mode": "latest",
"nodes": []
}
The endpoint returns 404 when the curve, market-data set, discount-curve
binding, or requested observation does not exist.