vortexasdk.endpoints.anywhere_freight_pricing_price_timeseries

Try me out in your browser:

Binder

AnywhereFreightPricingPriceTimeseries

AnywhereFreightPricingPriceTimeseries(self)

Anywhere Freight Pricing Price Timeseries endpoint.

Please note, a subscription to our Anywhere Freight Pricing module is required to access Anywhere Freight Pricing.

search

AnywhereFreightPricingPriceTimeseries.search(
    routes:
    typing.List[vortexasdk.endpoints.anywhere_freight_pricing_types.AfpRoute],
    time_min: datetime,
    time_max: datetime,
    frequency:
    typing_extensions.Literal['day', 'week', 'doe_week', 'month', 'quarter', 'year'] = 'month',
    unit:
    typing_extensions.Literal['usd_per_tonne', 'usd_per_barrel'] = 'usd_per_tonne'
)

Get historical pricing over time for multiple routes.

Given a set of details about multiple routes (origin, destination, product and vessel class), a time period, unit and a frequency, this returns historical pricing and voyage pricing over time per route bucketed by the chosen frequency. Price is defined as the overall cost including voyage cost, port costs and canal costs where applicable, given in the selected unit. Voyage price is the price of just the voyage, given in the selected unit. Lumpsum is the overall cost total of the voyage.

Arguments

routes: A list of route dictionaries. Each route must contain:
    - `origin` (str, required): Geographical ID of the origin port.
    - `destination` (str, required): Geographical ID of the destination port.
    - `product` (str, required): One of `'clean'`, `'dirty'`, `'crude'`.
    - `vessel_class` (str, required): One of `'oil_coastal'`, `'oil_specialised'`,
      `'oil_handysize_mr1'`, `'oil_handymax_mr2'`, `'oil_panamax_lr1'`,
      `'oil_aframax_lr2'`, `'oil_suezmax_lr3'`, `'oil_vlcc'`.
    - `avoid_zone` (list, optional): Routing zones to avoid. Options:
      `'Panama Canal'`, `'Suez Canal'`.
    - `suggested_tonnage` (float, optional): Suggested tonnage for the route.

time_min: The UTC start date of the time filter.

time_max: The UTC end date of the time filter.

frequency: Frequency denoting the granularity of the time series.
    Must be one of: `'day'`, `'week'`, `'doe_week'`, `'month'`, `'quarter'`, `'year'`.
    Defaults to `'month'`.

unit: The unit for pricing. Must be one of: `'usd_per_tonne'`, `'usd_per_barrel'`.
    Defaults to `'usd_per_tonne'`.

Returns

AnywhereFreightPricingResult

Example

Get daily pricing for a Handymax MR2 clean route from Rotterdam to New York.

>>> from vortexasdk import AnywhereFreightPricingPriceTimeseries
>>> from datetime import datetime
>>> routes = [
...     {
...         "origin": "68faf65af1345067f11dc6723b8da32f00e304a6f33c000118fccd81947deb4e",
...         "destination": "ea4921c8ad4fddb5fe3e7a4f834c1aa5863e43283c73da5f02d93bbc5dba72eb",
...         "product": "clean",
...         "vessel_class": "oil_handymax_mr2",
...     }
... ]
>>> result = AnywhereFreightPricingPriceTimeseries().search(
...     routes=routes,
...     time_min=datetime(2026, 2, 20),
...     time_max=datetime(2026, 5, 20),
...     frequency="day",
...     unit="usd_per_tonne",
... )
>>> df = result.to_df()

Returns a DataFrame with columns:

origin destination vessel_class product date price price_lower price_upper voyage_price
0 68faf65a... ea4921c8... oil_handymax_mr2 clean 2026-02-20 15.50 14.00 17.00 16.223888
1 68faf65a... ea4921c8... oil_handymax_mr2 clean 2026-02-21 16.20 14.80 17.60 16.223888