Providing you have suitable access control permissions, you can upload a ‘quote’ representing a single value at a single point in time to the LUSID Quote Store, for example an Apple stock price or a USD/GBP spot rate.
Note: Choices you make when uploading market data impact the composition of the recipe you must create in order to use this data in a valuation.
- Method 1: Using the LUSID API
- Method 2: Using the LUSID web app
- Method 3: Using Luminesce
Using the LUSID API
You can load up to 2000 quotes in a single request:
- Obtain an API access token.
- Call the UpsertQuotes API, encapsulating all the quotes in the request in a single
scope
(namespace). See how to match this in a recipe. - For each quote in the request, specify:
- An ephemeral ID (to track errors in the response).
- A
provider
representing a financial data vendor. Valid providers are currentlyBloomberg
,DataScope
(for Refinitiv),SIX
,FactSet
,TraderMade
,Edi
,Rimes
,Lusid
andClient
; if your data vendor isn't listed, represent it usingClient
. See how to match this in a recipe. - Optionally, a
priceSource
indicating a sub-supplier to the financial data vendor (above), for example Tradeweb or RRPS for Refinitiv DataScope. If specified, see how to match this in a recipe. - An
instrumentIdType
andinstrumentId
that together constitute an instrument identifier linking the quote to an instrument mastered in LUSID. See how to match this in a recipe.Market data category instrumentIdType
fieldinstrumentId
field syntax and example valueMarket price Your choice of LusidInstrumentId
,Figi
,RIC
,QuotePermId
,Isin
,Sedol
,Cusip
,ClientInternal
There is no syntax; the value must be appropriate for the identifier type, for example LUID_00003D58
forLusidInstrumentId
.FX spot rate CurrencyPair
Syntax: <DomCcy>/<FgnCcy>
Example:USD/GBP
- A
quoteType
, for examplePrice
orRate
. See how to match this in a recipe. - A
field
appropriate for theprovider
. See how to match this in a recipe.provider
fieldfield
valuesLusid
Any string Bloomberg
bid
,mid
,ask
,open
,close
,last
SIX
bid
,mid
,ask
,open
,close
,last
,referencePrice
,highPrice
,lowPrice
,maxRedemptionPrice
,maxSubscriptionPrice
,openPrice
,bestBidPrice
,lastBidPrice
,bestAskPrice
,lastAskPrice
DataScope
bid
,mid
,ask
Client
Any string Edi
bid
,mid
,ask
,open
,close
,last
TraderMade
bid
,mid
,ask
,open
,close
,high
,low
FactSet
bid
,mid
,ask
,open
,close
Rimes
bid
,mid
,ask
,open
,close
,last
- An
effectiveAt
date from which the quote is valid. This could be a full date and time (in UTC), or a date and cut label. - A
metricValue
constituting the actual price or rate, with avalue
and aunit
that is either a currency (price) or a currency pair (rate).
Consider the following example of a market price and a FX spot rate uploaded together to a Growth
quote scope (highlighted in red in the URL):
curl -X POST "https://<your-domain>.lusid.com/api/api/quotes/Growth"
-H "Authorization: Bearer <your-API-access-token>"
-H "Content-Type: application/json-patch+json"
-d '{
"Quote-0001": {
"quoteId": {
"quoteSeriesId": {
"provider": "Lusid",
"instrumentIdType": "LusidInstrumentId",
"instrumentId": "LUID_00003D58",
"quoteType": "Price",
"field": "mid"
},
"effectiveAt": "2023-02-07T00:00:00Z"
},
"metricValue": {
"value": 100, "unit": "USD"
}
},
"Quote-0002": {
"quoteId": {
"quoteSeriesId": {
"provider": "Lusid",
"instrumentIdType": "CurrencyPair",
"instrumentId": "USD/GBP",
"quoteType": "Rate",
"field": "mid"
},
"effectiveAt": "2023-02-07T00:00:00Z"
},
"metricValue": {
"value": 0.8, "unit": "USD/GBP"
}
}
}'
Using the LUSID web app
Coming soon.