Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Become a customer
  • Contact Us
English (US)
US English (US)
JP Japanese
  • Home
  • Fastmarkets platform help
  • APIs
  • API

Fastmarkets Physical Prices API

Written by Connor Bevans

Updated at June 9th, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Fastmarkets platform help
    Dashboard Excel Add-In Mobile apps APIs
  • Training
  • Logging in
  • Price methodology
  • Fastmarkets MyDesk help
    Getting Started with MyDesk Using MyDesk MyDesk advanced widgets Data available in MyDesk Troubleshooting
  • Administration
    Manage users Billing and invoices Banking and vendor registration
  • Contact us
+ More

Table of Contents

Physical Price API API technical documentation Authenticating Retrieving a single price Example Request (Python): Example Response (JSON): Retrieving multiple prices Example Request (Python): Example Response (JSON): Retrieving a range of prices Example Request (Python): Example Response (JSON): Retrieving average prices Example Request (Python): Example Response (JSON): Optional price data fields Example Request (Python): Retrieving instrument data Example Request (Python): Example Response (JSON): Retrieving reference data Example Response (JSON): Technical API information Further help

Physical Price API

The Physical Prices API provides price values and associated instrument data for Fastmarkets assessed prices. All price values are associated to instruments which uses a symbol as an identifier.

API technical documentation

For more on the specification of this API and to try it out, please refer to the API’s documentation page (Swagger).

Authenticating

All Fastmarkets APIs require a valid Access Token to retrieve permissioned data. To generate an Access Token, please refer to the Fusion Authentication API section above. The token is then added to an Authorization header parameter using the ‘Bearer’ prefix. For example:

Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Retrieving a single price

To return the most recently available assessed price for a specific instrument, the Prices endpoint is used. In this example, the symbol ‘MB-AL-0004’ is used to return the latest available price data for ‘Aluminium P1020A, in-warehouse Rotterdam duty-paid, spot $/tonne’ as of 2nd March 2019.

In the response, low, mid and high price values are returned for the 1st of March 2019, as this was the most recent assessment available for the specified date.

Example Request (Python):

url = "https://api.fastmarkets.com/Physical/v2/Prices"
query = {'symbols':'MB-AL-0004', 'dates':'2019-03-02'}
headers = {
	'Authorization': 'Bearer ' + accessToken.access_token,
	'cache-control': 'no-cache'
	}
req = requests.request("GET", url, headers=headers, data = query)
singlePrice = json.loads(req.content)

 

Example Response (JSON):

{
	"instruments": [
		{
			"firstDate": "1987-04-07T00:00:00+00:00",
			"lastDate": "2019-05-21T15:00:00+00:00",
			"prices": [
				{
					"date": "2019-03-02",
					"assessmentDate": "2019-03-01T16:00:12+00:00",
					"revision": 0,
					"low": 130,
					"mid": 135,
					"high": 140
				}
			],
			"symbol": "MB-AL-0004"
		}
	]
}

 

If no value for the Dates parameter is included in the request, then the most recent price data is returned. A value for the Symbols parameter is always required.

 

Retrieving multiple prices

It is also possible to request prices for multiple instruments and multiple dates in single request using the Prices endpoint.

In the example request below, two different symbols and two different dates have been requested. In the result, there will be two price results for each of the two instruments.

Example Request (Python):

url = "https://api.fastmarkets.com/Physical/v2/Prices"

query = {
	'symbols': ['MB-AL-0004', 'MB-AL-0006'],
	'dates': ['2019-03-02','2019-03-04']
	}
headers = {
	'Authorization': 'Bearer ' + accessToken.access_token,
	'cache-control': 'no-cache'
	}
req = requests.request("GET", url, headers=headers, data = query)

multiplePrices = json.loads(req.content)

 

Example Response (JSON):

{
"instruments": [
{
"firstDate": "1987-04-07T00:00:00+00:00",
"lastDate": "2019-05-21T15:00:00+00:00",
"prices": [
{
"date": "2019-03-02",
"assessmentDate": "2019-03-01T16:00:12+00:00",
"revision": 0,
"low": 130,
"mid": 135,
"high": 140
},
{
"date": "2019-03-04",
"assessmentDate": "2019-03-01T16:00:12+00:00",
"revision": 0,
"low": 130,
"mid": 135,
"high": 140
}

 

Retrieving a range of prices

Using the Prices/History endpoint, it is possible to retrieve a series of prices over a specified period. In this example, a request is made over a seven-day period (between 20th Feb 2019 to 27th Feb 2019). The response returns prices in descending order of date.

Example Request (Python): 

Example Response (JSON):

 

Retrieving average prices

Periodically, average prices for many Fastmarkets instruments are published. These are calculated values based on the underlying assessment prices over a period of a week, month or year.

Both the Prices and Prices History endpoints accept an input parameter called Price Calculation Type. There are several valid values for this parameter, the most common of which are:

  • WeeklyAverage
  • MonthlyAverage
  • YearlyAverage

If no Price Calculation Type is specified, then the actual assessment value is returned.

NB: To find out what Price Calculation Types are available for a given instrument, use the Instrument endpoint (see section: Retrieving instruments data)

Example Request (Python):


 

 

Example Response (JSON):

 

Optional price data fields

When requesting price data, not all available data associated to a price is returned by default. This is by design to help reduce the size of the response if requesting a large quantity of records.

However, this additional data can be returned by using the Fields input parameter. Here is a list of the available optional fields that can be added to the request:

  • appraisalPrice - Value representing whether undergoing an appraisal process at the point of assessment (Boolean)
  • pricingRationale - Description of the rationale behind the assessment made by the Price Reporter (string)
  • assessmentPeriod - Description of the assessment period when returning average price calculations types (string)
  • lowChangeSincePrevious - Difference between low price value of previous assessment and low price value of this assessment (number)
  • midChangeSincePrevious – (As above but for mid price value)
  • highChangeSincePrevious – (As above but for high price value)
  • lowChangeSincePreviousProportion - Difference between low price value of previous assessment and low price value of this assessment as a decimal value. 1 represents a change of 100%, -1 represents a change of -100% (number)
  • midChangeSincePreviousProportion – (As above but for mid price value)
  • highChangeSincePreviousProportion – (As above but for high price value)

 

Example Request (Python): 

 

Retrieving instrument data

All physical prices relate to an associated instrument. The instrument consists of various attributes, all of which are available to view using the Instrument endpoint.

If no input parameters are provided, all instruments that the calling service are entitled to see are returned. The Symbols input parameter can be used return specific instruments (see example).

Example Request (Python):

url = "https://api.fastmarkets.com/Physical/v2/Instruments" query = {'symbols':'MB-STS-0236'} headers = { 'Authorization': 'Bearer ' + accessToken.access_token, 'cache-control': 'no-cache' } req = requests.request("GET", url, headers=headers, data = query) instrumentMetadata = json.loads(req.content)

 

Example Response (JSON):

{ "instruments": [ { "productId": "Broker 304 turnings", "description": "New York 304 turnings, broker buying, US cents per pound", "descriptionShort": "New York 304 turnings, broker buying, US c/lb", "commodityId": "STS", "priceType": "Price", "locationId": "USA-NY", "currencyId": "USd", "unitOfMeasureId": "Pound", "incotermId": "DLVD", "launchDate": "2015-10-20", "frequency": "Weekly", "sourceId": "AMM", "status": "Active", "priceCalculationTypeIds": [ "WeeklyAverage", "MonthlyAverage", "YearlyAverage" ], "symbol": "MB-STS-0236" } ]

 

By default, many of the attributes returned are ID values (for example: Commodity ID and Currency ID). To return the full name of these attributes, they need to be included in the Fields input parameter as they are optional.

These optional fields include:

  • Commodity
  • Location
  • Currency
  • UnitOfMeasure
  • Incoterm
  • Source

 

In this example, a request is made to include Commodity and Currency names in the response:

url = "https://api.fastmarkets.com/Physical/v2/Instruments" query = { 'symbols': 'MB-STS-0236', 'fields': ['Commodity', 'Currency'] } headers = { 'Authorization': 'Bearer ' + accessToken.access_token, 'cache-control': 'no-cache' } req = requests.request("GET", url, headers=headers, data = query) instrumentMetadataOptional = json.loads(req.content)

 

Retrieving reference data

The References endpoint is useful for obtaining details of all valid values for a particular field (such as currency codes) or to obtain the full name a specific reference value.

The following reference data is available using this endpoint:

  • Currency
  • UnitOfMeasure
  • PriceCalculationType
  • Incoterm
  • Commodity
  • Source

 

url = "https://api.fastmarkets.com/Physical/v2/References" query = {'types': 'Currency'} headers = { 'Authorization': 'Bearer ' + accessToken.access_token, 'cache-control': 'no-cache' } req = requests.request("GET", url, headers=headers, data = query) currencyReferenceData = json.loads(req.content)

 

Example Response (JSON):

{ "references": [ { "type": "Currency", "items": [ { "sign": "¥", "id": "CNY", "description": "China Yuan" }, { "sign": "$", "id": "ARS", "description": "Argentine peso" }, . . . ] }

 

Technical API information

To find out more about our APIs please see API technical information 
 

Further help

If you have more questions or need further support please look at all the help content available on our Support Hub. If you can't find what you need and want to contact our support teams then Let’s get you some help. 

 

 

 

physical price api api setup api api technical documentation

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Introduction to Fastmarkets APIs
  • Fastmarkets Authentication API
  • API technical information

Copyright 2025 – Fastmarkets.

Knowledge Base Software powered by Helpjuice

Expand