Skip to main content
GET
/
openapi
/
v1
/
commodities
/
movers
Top movers
curl --request GET \
  --url https://api.hayinsights.com/openapi/v1/commodities/movers \
  --header 'X-API-Key: <api-key>'
{
  "success": true,
  "statusCode": 200,
  "data": {
    "period": "mtd",
    "gainers": [
      {
        "id": "coffee-robusta",
        "name": "Coffee Robusta",
        "changePct": 7.35
      },
      {
        "id": "coffee-arabica",
        "name": "Coffee Arabica",
        "changePct": 4.28
      }
    ],
    "losers": [
      {
        "id": "wti-crude",
        "name": "WTI Crude Oil",
        "changePct": -18.93
      },
      {
        "id": "baltic-dry",
        "name": "Baltic Dry Index (BDI)",
        "changePct": -17.47
      }
    ]
  },
  "meta": {
    "timestamp": "2026-06-19T08:50:00.846Z"
  }
}

Authorizations

X-API-Key
string
header
required

Your HayInsights API key (prefixed apk_). Create and manage keys in the HayInsights dashboard (Account → API keys).

Send it in the X-API-Key header on every request to /openapi/v1/*. Which data domains you may access and your request quota are both governed by the subscription plan attached to the key — see the Plans & features and Rate limits guides.

Query Parameters

period
enum<string>
default:mtd

Period the movers are computed over.

ValueDescription
mtdMonth-to-date
Available options:
mtd
limit
integer
default:3

Number of gainers and losers to return (1–10).

Required range: 1 <= x <= 10

Response

Top gaining and losing commodities.

Standard success envelope shared by every endpoint. Each operation's response wrapper extends this (via allOf) and adds a typed data property.

success
boolean
required

Always true for a successful response.

Example:

true

statusCode
integer
required

Mirrors the HTTP status code.

Example:

200

data
object
required

Top gaining and losing commodities over a period.

meta
object

Response metadata. Always present; timestamp is the server time the response was generated.