How do I load market prices into the Quote Store?

Prev Next

You can load a quote representing a stock market price for a particular instrument on a given day, for example $287.46 for APPL on 6 May 2026.

Note the following:

  • Market prices are required items of market data when valuing most supported instruments.

  • Choices you make when uploading market data impact the composition of the recipe you must create in order to use that data.

See also: FX spot rates | Inflation fixings | Interest rate fixings

Methods

Call the UpsertQuotes API to load up to 2000 quotes in a single request. You must:

  • Encapsulate all the quotes in a single scope (namespace) in the URL.

  • For each quote, specify an ephemeral ID (to track errors in the response).

curl -X POST "https://<your-domain>.lusid.com/api/api/quotes/MyAPPLPrices"
  -H "Authorization: Bearer <your-API-access-token>"
  -H "Content-Type: application/json-patch+json"
  -d '{
  "Quote-0001": {
    "quoteId": {
      "quoteSeriesId": {
        "provider": "Bloomberg",
        "instrumentIdType": "LusidInstrumentId",
        "instrumentId": "LUID_00003D58",
        "quoteType": "Price",
        "field": "mid"
      },
      "effectiveAt": "2026-05-06T00:00:00Z"
    },
    "metricValue": {
      "value": 287.46, "unit": "USD"
    }
  },
  "Quote-0002": {
    "quoteId": {
      "quoteSeriesId": {
        "provider": "Bloomberg",
        "instrumentIdType": "LusidInstrumentId",
        "instrumentId": "LUID_00003D58",
        "quoteType": "Price",
        "field": "mid"
      },
      "effectiveAt": "2026-05-05T00:00:00Z"
    },
    "metricValue": {
      "value": 276.93, "unit": "USD"
    }
  }
}'

Navigate to Data Management > Quotes and click the Create quote button:

Write a Luminesce SQL query using the Lusid.Instrument.Quote.Writer provider and execute it using a tool such as the LUSID web app:

Data fields

This section supplements the API documentation and on-screen help text in the LUSID web app.

Mandatory field or parameter

Allowed values

Must be matched in recipe?

scope

Any, for example MyAPPLPrices

dataScope field

provider

Any valid

supplier field

field

Any valid for provider

field field

instrumentIdType

Your choice of LusidInstrumentId, Figi, RIC, QuotePermId, Isin, Sedol, Cusip, ClientInternal

key field, for example Quote.LusidInstrumentId.LUID_00003D58 or Quote.RIC.*

instrumentId

Must match a value suitable for the chosen instrument identifier, for example LUID_00003D58 for LusidInstrumentId

quoteType

Price for a clean price, or DirtyPrice

quoteType field

effectiveAt

A UTC datetime, or date and cut label

but must be within quoteInterval

metricValue.value

The quoted price, for example 287.46

metricValue.unit

The quoted currency, for example USD

The following fields are optional:

  • A priceSource indicating a sub-supplier to the provider, for example Tradeweb or RRPS for Refinitiv DataScope. Match this using the priceSource field in a recipe. Note that if omitted, your recipe must also omit its priceSource field.

  • A lineage providing additional information.

  • A scaleFactor to scale down the price, for example a bond price that is expressed as a percentage of par. Note it may be more efficient to scale down at the instrument level instead. More information.

Subsequent updates

You can change the metricValue of an existing quote. Any other update constitutes a new quote in the time series.