Commodity Price API

Real-Time Commodity Price API: Gold, Oil & 102 Markets

This commodities API returns live spot prices for gold, oil, metals, agriculture and more: 102 commodities in one consistent JSON schema. Every response includes the current price plus daily, weekly, monthly, year-to-date and yearly change, ready to drop into trading tools, dashboards and research pipelines.

Get Your API Key Discover Docs

← All financial data endpoints

Why Use FinanceFlowAPI’s Commodity Price API?

Tracking commodity prices usually means integrating a different exchange feed or data vendor for metals, energy and agriculture separately, each with its own format. The Commodity Price API, a commodity data API for metals, energy and agriculture, normalizes 102 commodities across every major category into one schema and one authentication method, so you can add a new market to your product without a new integration.

  • One JSON schema for every commodity: no per-source parsing.
  • 102 commodities verified live against production, from gold and crude oil to freight indices.
  • A dedicated catalog endpoint to discover the exact commodity names available, instead of guessing spellings.
  • Same account, API key and billing as the rest of FinanceFlowAPI: Bonds, Currency, Economic Calendar and Economic Indicators data.

Key Capabilities

  • Current price plus five change metrics. Every response includes daily_change, weekly_change_percent, monthly_change_percent, ytd_change_percent and yearly_change_percent alongside the current price, so you get trend context without a second call.
  • Query by exact commodity name. Request precisely the market you need, e.g. gold, crude oil, brent.
  • Built-in discovery. commodity-catalog lists every commodity name available, so you never have to guess spelling.
  • Broad category coverage: precious metals, energy, industrial metals & materials, agriculture and commodity indices in one API.

Gold, Oil & Other Popular Commodity Prices via API

Gold and crude oil are two of the most frequently requested markets on the Commodity Price API, and both use the exact same commodity-spot endpoint as every other commodity, just change the name parameter:

  • Gold price API: GET /commodity-spot?api_key=YOUR_API_KEY&name=gold
  • Oil price API: crude oil (WTI) via name=crude oil, or Brent via name=brent
  • Silver price API: name=silver
  • Natural gas price API: name=natural gas

Each of these returns the same response shape as any other commodity: current price, and daily/weekly/monthly/YTD/yearly change. See Response Schema below for the full field list.

Data Coverage & Trust

MetricValue
Commodities covered102 (verified live via commodity-catalog, 2026-11-11)
CategoriesPrecious metals, energy, industrial metals & materials, agriculture, commodity & freight indices
Response formatJSON
Historical / time-series dataNot on this endpoint. commodity-spot returns only the current price plus period-over-period % changes, no date-range query. A separate commodity-history endpoint exists in the API for that (see Limitations)
AuthenticationAPI key, passed as an api_key query parameter
Rate limitPer-minute request limit, varies by subscription plan. See Pricing & Access below
Update frequencyNear real-time, updated approximately every minute per the site’s API documentation

Data Methodology

Commodity Price API data is aggregated from market and exchange data sources and normalized into one consistent schema (commodity_name, current_price, and five change fields) for every supported commodity, so your integration doesn’t need a different parser per source. Sourced from aggregated third-party market and statistical data providers; the specific vendor and full per-commodity methodology are not published.

Request Example

GET https://financeflowapi.com/api/v1/commodity-spot?api_key=YOUR_API_KEY&name=gold

Response Example

{
  "success": true,
  "code": 200,
  "message": "OK",
  "meta": {
    "timestamp": 1787480152,
    "request_id": "6a8ac858320ea"
  },
  "data": {
    "commodity_name": "gold",
    "current_price": 4607.35,
    "daily_change": "91.57",
    "daily_change_percent": "2.03%",
    "weekly_change_percent": "5.30%",
    "monthly_change_percent": "11.54%",
    "ytd_change_percent": "6.66%",
    "yearly_change_percent": "36.59%",
    "last_updated": "2026-08-21"
  }
}

API Parameters

commodity-spot returns the current price for one commodity:

ParameterRequiredDescription
api_keyYesYour FinanceFlowAPI key
nameYesCommodity name exactly as returned by commodity-catalog, e.g. gold, crude oil, brent

commodity-catalog lists the available commodity names:

ParameterRequiredDescription
api_keyYesYour FinanceFlowAPI key

Response Schema

The data object for commodity-spot:

FieldTypeDescription
commodity_namestringCommodity name, matches catalog spelling
current_pricenumberLatest price
daily_changestring (numeric)Absolute price change vs. the previous day
daily_change_percentstringPercent change vs. the previous day
weekly_change_percentstringPercent change vs. one week ago
monthly_change_percentstringPercent change vs. one month ago
ytd_change_percentstringPercent change since the start of the year
yearly_change_percentstringPercent change vs. one year ago
last_updatedstringDate the price was last updated, YYYY-MM-DD

Each item in data for commodity-catalog:

FieldTypeDescription
namestringCommodity name

HTTP Status & Errors

HTTP codeMeaningWhen it happens
200OKRequest succeeded, data returned
400Bad requestname missing
403Invalid API key or subscription expiredapi_key missing, invalid, or your subscription has expired
404Data not foundUnknown or misspelled commodity name. Unlike some other FinanceFlowAPI endpoints, an unmatched name returns a 404 here, not an empty result
429Rate limit exceededYou exceeded the per-minute request limit for your subscription plan
500Internal errorUnexpected server-side failure (rare)

Code Examples

curl "https://financeflowapi.com/api/v1/commodity-spot?api_key=YOUR_API_KEY&name=gold"
import requests

url = "https://financeflowapi.com/api/v1/commodity-spot"
params = {
    "api_key": "YOUR_API_KEY",
    "name": "gold"
}

response = requests.get(url, params=params)
data = response.json()
print(data)
const params = new URLSearchParams({
  api_key: "YOUR_API_KEY",
  name: "gold"
});

fetch(`https://financeflowapi.com/api/v1/commodity-spot?${params}`)
  .then(res => res.json())
  .then(data => console.log(data));
<?php
$params = http_build_query([
    'api_key' => 'YOUR_API_KEY',
    'name'    => 'gold',
]);

$response = file_get_contents("https://financeflowapi.com/api/v1/commodity-spot?{$params}");
$data = json_decode($response, true);

print_r($data);
package main

import (
    "encoding/json"
    "fmt"
    "io"
    "net/http"
    "net/url"
)

func main() {
    params := url.Values{}
    params.Add("api_key", "YOUR_API_KEY")
    params.Add("name", "gold")

    resp, err := http.Get("https://financeflowapi.com/api/v1/commodity-spot?" + params.Encode())
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)

    var data map[string]interface{}
    json.Unmarshal(body, &data)

    fmt.Println(data)
}

Use Cases

  • Trading platforms. Power buy/sell signals and pricing widgets with live gold, oil and metals data.
  • Portfolio & risk dashboards. Track commodity exposure alongside Bonds API and equities data.
  • Inflation & macro research. Correlate commodity price moves with Economic Indicators API data like CPI and PPI.
  • Price alert bots. Trigger notifications when a commodity’s daily_change_percent crosses a threshold.

Who Is This API For?

  • Algorithmic and discretionary traders who need live pricing for gold, oil and other markets
  • Fintech apps and dashboards that need commodity price context alongside other asset classes
  • Publishers and content platforms that need sourced commodity price data
  • Procurement and hedging tools monitoring input costs for manufacturing and agriculture businesses

Market Data API

Test Plan

$5.00/month

Historical data, days: 60

Requests limit: 200

Requests Speed limit(per minute): 20

Standard Subscription

$25.00/month

Historical data, years: 5

Requests limit: 10000

Requests Speed limit(per minute): 60

Premium Subscription

$50.00/month

Historical data, years: 20+

Requests limit: 100000

Requests Speed limit(per minute): 120

Limitations

  • No historical time-series on this endpoint. commodity-spot returns only the current price plus period-over-period % changes, not a date-range history. A separate commodity-history endpoint exists in the API (see the full API documentation) but is not yet covered by its own dedicated landing page.
  • name must match the catalog spelling exactly; there is no free-text or fuzzy search.
  • Endpoint access and your per-minute rate limit depend on your subscription plan.

FAQ

What is a Commodity Price API?

A Commodity Price API gives you programmatic access to live prices for raw materials and market indices (metals, energy, agriculture and more) in one machine-readable format instead of integrating a different exchange feed per market.

How do I get the gold price via API?

Call commodity-spot with name=gold and your API key. The response includes the current price plus daily, weekly, monthly, year-to-date and yearly change.

How do I get the oil price via API?

Use the same commodity-spot endpoint with name=crude oil for WTI or name=brent for Brent crude.

Which commodities are supported?

102 commodities, verified live against our production API, spanning precious metals, energy, industrial metals & materials, agriculture and commodity/freight indices. Use commodity-catalog to see the full list.

Do you provide historical commodity data?

Not through this endpoint. commodity-spot only returns the current price and period-over-period changes. A separate commodity-history endpoint exists in the API for date-range queries; see the full API documentation.

How do I get started?

Create a FinanceFlowAPI account and choose a plan. See Pricing & Access above for current plans and limits.

Full API documentation →