Expana Data Direct API

Data Model

Contents

Choose from the items below ↓


Standard Query Parameters
Sorting
Filtering

Standard Response Envelope

Categories

Historical Data
Historical Series
Historical Series Data Point
Frequency Conversion
Currency Conversion
Unit Conversion

Forecast Data
Forecast Series
Forecast Series Data Point

⬆

Standard Query Parameters

There is a set of standard query parameters available for each endpoint. The standard query parameters support filtering and sorting of the results, and also support pagination with limit and offset.

Each endpoint can also have additional query parameters specific to it, which are described for each endpoint separately later in this document.

Standardized parameter
Description
limit
Specifies the maximum number of objects to return in a single response
offset
Specifies the starting point (or index) in the dataset for the objects to return
sort[i][by]
Parameter to sort by. Available parameters depend on the endpoint.
sort[i][order]
Use 'asc' for ascending and 'desc' for descending.
filters[i][by]
Parameter to filter by. Available parameters depend on the endpoint.
filters[i][operator]
Operator for the filter. See available operators below.
filters[i][value]
Value to filter by.

⬆

Sorting There can be many sorting conditions applied to one request, provided in a list. Each sorting condition has a by field and an order.

⬆

Filtering There can be many filters applied to one request, provided in a list. Each filter condition has a by field, an operator, and a value.

The supported operators are:

Operator
Description
Filter Example
eq
Equals
filters[0][by]: currencyCode
filters[0][operator]: eq filters[0][value]: USD
ne
Not Equals
filters[0][by]: currencyCode
filters[0][operator]: ne filters[0][value]: USD
gt
Greater Than
filters[0][by]: low
filters[0][operator]: gt filters[0][value]: 100
gte
Greater or Equal to
filters[0][by]: low
filters[0][operator]: gte filters[0][value]: 100
lt
Less Than
filters[0][by]: low
filters[0][operator]: lt filters[0][value]: 100
lte
Less or Equal to
filters[0][by]: low
filters[0][operator]: lte filters[0][value]: 100
beginswith
Text Begins With
filters[0][by]: name
filters[0][operator]: beginswith filters[0][value]: Be
contains
Text Contains
filters[0][by]: name
filters[0][operator]: contains filters[0][value]: Beef
endswith
Text Ends with
filters[0][by]: name
filters[0][operator]: endswith filters[0][value]: EBP

⬆

Standard Response Envelope

The response for each endpoint will follow a standard pattern.

The data section will contain a list of the response objects, for example a list of historical time series or a list of forecast data points (see their definitions later in the document).

The meta section will contain a standard set of metadata about the request and any endpoint specific query parameters used.

Standard metadata
Description
count
The count of all objects found for the request
limit
The pagination limit used for the request (maximum number of objects included in a single response). Default 50, max 5000
offset
The pagination offset used for the request
filters
Filters used for the request
sort
Sort conditions used for the request

⬆

Categories

All Expana data is categorized into 23 main commodity categories. Every historical time series and forecast time series belongs to one main category. Each category has a full name and a short name. You can use the short name to query in the category endpoints.

Category Full Name
Short name
Poultry
Poultry
Red Meat
RedMeat
Seafood
Seafood
Eggs
Eggs
Dairy
Dairy
Grains
Grains
Animal Feed
Feed
Oilseeds, Oils & Fats
Oils
Coffee, Tea & Cocoa
Coffee
Sugar & Sweeteners
Sugar
Food Ingredients
Ingredients
Nuts, Seeds & Dried Fruit
Nuts
Fruit & Juices
Fruit
Vegetables & Pulses
Vegetables
Herbs & Spices
HerbsSpices
Alcoholic Beverages
Beverages
Energy & Transport
Energy
Plastics & Textiles
Plastics
Pulp, Paper & Wood
PaperWood
Metals & Ores
Metals
Industrial Materials
IndustrialMaterials
Economics
Economics
Chemicals
Chemicals

⬆

Historical Data

Expana’s dataset covers 30k+ historical time series. They represent the historical trends of prices, supply, export, import and more for a wide range of commodities.

⬆

Historical Series

Each historical time series is described by the standard set of properties.

Name
Description
Nullable
Type
code
Unique identifier for the series
No
string
name
Name of the series
No
string
description
Description of the series
No
string
categoryShortName
Short name for the main category for the series
No
string
categoryTaxonomy
The main category and sub-categories for this series
No
list
originRegions
The regions of origin for the series
Yes
list
destinationRegions
The destination regions for the series
Yes
list
sourceFrequencies
The frequency of the series at the data source
No
list
currencyCode
Currency code for the series, if applicable
Yes
string
currencyName
Full currency name for the series, if applicable
Yes
string
unit
Unit of measure for the series, if applicable
Yes
string

⬆

Historical Series Data Point

Each historical data point contains several pieces of information described below.

All data points are stored with the potential of having a range. All items have Low, High and Mid available. If a data point is not a range, it will have the same value in Low, High and Mid.

A data point can also include additional information from third party sources like the USDA (United States Department of Agriculture) and for some Expana proprietary series - pounds, trades, loads, and a weighted average.

Name
Description
Nullable
Type
code
Unique identifier for the series
No
string
date
The day which the data point values relate to
No
string
(YYYY-MM-DD)
Description of the series
No
string
frequency
The frequency of the data point
No
string
currencyCode
The currencyCode of the data points for this series
Yes
String
unit
The unit of the data points for this series
Yes
String
low
The lowest value of the quoted range
Yes
float
mid
The average of the high and low of the quoted range.
Yes
float
high
The lowest value of the quoted range
Yes
float
pounds
Pounds shows the amount / volume of product observed
Yes
float
trades
Trades show the number of transactions observed
Yes
float
loads
Loads is the amount of product expressed in truckloads
(40,000-pound lots)
Yes
float
wtdAvg
The weighted average is the value weighted to reflect the volume at which products were observed (transacted). This differs from the simple average in mid, which uses the high and low point of the quote range.
Yes
float

⬆

Frequency Conversion

Each historical series in Expana came from its source (internal PRA or external) with a specific frequency. The vast majority of series have one source frequency, however some sources (e.g. USDA) publish their series in more than one frequency.

You can find the available source frequencies in the sourceFrequencies parameter of every Historical Time Series object.

Expana also supports frequency conversion. You can request the historical data points in any frequency that is less frequent than the source frequencies (e.g. ask for Weekly or Monthly if a series came as Daily from source, or ask for Monthly if it came as Weekly and so on).

This is specific to each historical time series, as each series has a different source frequency.

In general, the available frequencies in Expana are Daily, Weekly, Monthly, Quarterly, Semi-Annually, Yearly.

You can provide your chosen frequency as a query parameter in the Get Historical Series By Code endpoint. Please note: Frequency conversion is only available for this endpoint, as available frequencies are series specific (no conversion to more frequent frequency)

⬆

Currency Conversion

The Data Direct API allows for conversion between all supported currencies for historical data points. See the full list of supported currencies in the appendix.

You can provide your chosen currency as a query parameter in the get historical series by code endpoint. Please note: Currency conversion is only available for this endpoint, as available frequencies are series specific (not all series have a currency)

⬆

Unit Conversion

The Data Direct API allows for conversion between applicable units for historical data points. See the list of units that can be validly converted between each other in the appendix.

You can provide your chosen unit as a query parameter in the get historical series by code endpoint. Please note: Unit conversion is only available for this endpoint, as available units to convert to are series specific. See in the appendix.

If you provide an invalid unit (for example trying to convert kilograms to meters), an appropriate error will be returned.

⬆

Forecast Data

Expana’s dataset covers 1k+ forecast time series, generated by Expana’s expert forecasting team. Note that we don’t support frequency, currency, or unit conversions for forecast series.

⬆

Forecast Series

Each forecast time series in Expana is based on a historical time series, therefore they share many properties, mostly importantly the code.

Name
Description
Nullable
Type
code
Unique identifier for the series
No
string
name
Name of the series
No
string
description
Description of the series
No
string
forecastType
The forecast type (core or algo)
No
string
forecastParent
For algo forecasts, this will be the code of the parent core forecast it is derived from
Yes
String
statisticalSimilarity
For algo forecasts, this specifies the similarity to the parent core forecast
Yes
String
categoryShortName
Short name for the main category for the series
No
string
categories
The main category and sub-categories for this series
No
list
originRegions
The regions of origin for the series
Yes
list
destinationRegions
The destination regions for the series
Yes
list
frequency
The frequency of the forecast (Note: that includes both target and interpolated forecast data points)
No
list
currencyCode
Currency code for the series, if applicable
Yes
string
currencyName
Full currency name for the series, if applicable
Yes
string
unit
Unit of measure for the series, if applicable
Yes
string

⬆

Forecast Series Data Point

Each forecast data point contains several pieces of information described below.

The forecast data points produced by our forecasting team are of type target data points. Additionally, we also run an interpolation algorithm to generate forecast data points between target data points. They are of type interpolated.

Name
Description
Nullable
Type
code
Unique identifier for the series
No
string
date
The day which the data point values relate to as YYYY-MM-DD
No
string
type
The type of the forecast data point, either a target or interpolated.
No
string
realized
True for realized forecast points (date in the past), False for forecast points in the future
No
bool
expected
The expected forecast value
No
float
low
The low value of the forecast, only for target forecast data points
Yes
float
medium
The medium value of the forecast, only for target forecast data points
Yes
float
high
The high value of the forecast, only for target forecast data points
Yes
float
Continue reading