Commodity Intraday Rates API - Prices Through the Day, Minute by Minute
Retrieve intraday commodity rates for any UTC Day, at the interval you choose, from every minute up to once a day. Follow how the prices of commodities like gold, oil, and natural gas moved hour by hour, check them at a set time of day, or collect a full day of one-minute prices for analysis. Each point is the price recorded at that exact moment and comes keyed by its UTC timestamp, so the response goes straight into a chart, a spreadsheet, or a model.
It's built for developers and analysts who need more than a daily close, like teams adding intraday charts to a trading app, reviewing how a market reacted to breaking news, or testing a strategy on minute-level data. Start with 10,000 free credits, no credit card required.
Features
Intervals From One Minute to One Day
Set interval to the spacing you need between points. It runs from 1m and 5m for a close look at a busy hour, through 15m and 1h for a readable daily chart, up to 1d. Commodities that update every 10 minutes take intervals in multiples of 10 minutes, such as 10m, 30m, and 1h.
Use it to fetch only the detail your chart needs. A full day at 1h is 24 points in one request, while the same day at 1m is 1,440 points spread over 15 requests.
Point-in-Time Prices
Each point is the single price recorded at that exact time, not a summary of the period around it. The 14:05 point is the price at 14:05 UTC, nothing earlier or later.
Use it when a report or a pricing rule needs the price at a fixed time, like 16:00 UTC every day.
Any UTC Day, Including Today
Pick the day with date. Past days return the full day. For today, the points run up to the current UTC minute, so you can poll through the day and add the new points as they arrive.
Use it to review a day after the fact, or to keep an intraday chart current while the market is open.
Start the Window Where You Need It
startTime sets the first point of the window as a 24-hour UTC time. It defaults to 00:00 and has to fall on a mark of your interval, so 14:30 works for 5m or 30m, and 14:00 works for 1h.
Use it to jump straight to the hours you care about, like the two hours around a market open, without paging through the night before.
Paging for Full Days of Detail
A response holds up to 100 points. When the day has more, the response includes nextStartTime. Send that value as startTime to get the next 100, and stop when it comes back null. From 15m upward, a whole day fits in one response.
Use it to collect a complete day of one-minute prices for analysis or storage, page by page.
Chart-Ready Timestamps
Prices are keyed by ISO 8601 UTC timestamps in ascending order and rounded to two decimals. Each response also tells you the count of points, the interval it used, and the unit and currency of the prices in metadata. Pass metadata=false if you already store units and want a smaller payload.
Use it to plot the response directly, with no sorting or date parsing on your side.
Built for These Use Cases
Intraday charts in trading and market apps
Show how gold, crude oil, copper, or natural gas moved through the day at whatever detail your chart needs. Poll today's date to keep the chart moving while the market trades, or load a past day for a fixed view.
A price taken at the same time every day
Some reports and internal pricing rules use a commodity price from a set time of day. Request that single mark each day with startTime, and every report uses a price taken at the same moment.
Reviewing a market move after it happened
When oil jumps on a news headline, the daily close hides the timing. Pull one-minute prices for the hour around the event to see when the move started, how far it went, and how quickly it settled.
Strategy research that needs more than daily data
Backtests and models built on daily closes miss everything that happens inside the day. Page through full days of one-minute or five-minute prices to test ideas on intraday behavior.
Showing customers how prices moved today
Jewelry stores, metals dealers, and fuel price sites can show customers how gold, silver, or oil has moved since the start of the day, next to the current price.
API Endpoint
How-To-Guides
Get Hourly Gold Prices for Part of a Day
Send one symbol, an interval, and a date. Add startTime to begin the window later in the day.
curl -X 'GET' \
'https://api.apifreaks.com/v2.0/commodity/rates/intraday?apiKey=API-KEY&symbols=XAU&interval=1h&date=2026-10-14&startTime=18:00'
# Response
{
"success": true,
"symbol": "XAU",
"date": "2026-10-14",
"interval": "1h",
"startTime": "18:00",
"count": 6,
"nextStartTime": null,
"rates": {
"2026-10-14T18:00:00Z": 4084.75,
"2026-10-14T19:00:00Z": 4097.03,
"2026-10-14T20:00:00Z": 4101.92,
"2026-10-14T21:00:00Z": 4105.72,
"2026-10-14T22:00:00Z": 4105.72,
"2026-10-14T23:00:00Z": 4106.41
},
"metadata": {
"XAU": {
"unit": "T.oz",
"quote": "USD"
}
}
}
The window reached the end of the day after six points, so nextStartTime is null and there's nothing left to fetch.
Collect a Full Day of One-Minute Prices
A day has 1,440 one-minute marks, so it comes back over several pages. Start without startTime to begin at 00:00.
curl -X 'GET' \
'https://api.apifreaks.com/v2.0/commodity/rates/intraday?apiKey=API-KEY&symbols=WTIOIL-FUT&interval=1m&date=2026-10-14'
# Response
{
"success": true,
"symbol": "WTIOIL-FUT",
"date": "2026-10-14",
"interval": "1m",
"startTime": "00:00",
"count": 100,
"nextStartTime": "01:40",
"rates": {
"2026-10-14T00:00:00Z": 94.69,
"2026-10-14T00:01:00Z": 94.81,
"2026-10-14T00:02:00Z": 94.82,
"2026-10-14T00:03:00Z": 94.82,
"2026-10-14T00:04:00Z": 94.79,
...,
"2026-10-14T01:35:00Z": 95.23,
"2026-10-14T01:36:00Z": 95.21,
"2026-10-14T01:37:00Z": 95.25,
"2026-10-14T01:38:00Z": 95.25,
"2026-10-14T01:39:00Z": 95.29
},
"metadata": {
"WTIOIL-FUT": {
"unit": "Bbl",
"quote": "USD"
}
}
}
The first response covers 00:00 to 01:39 UTC and returns "nextStartTime": "01:40". Send that value as startTime for the next page.
curl -X 'GET' \
'https://api.apifreaks.com/v2.0/commodity/rates/intraday?apiKey=API-KEY&symbols=WTIOIL-FUT&interval=1m&date=2026-10-14&startTime=01:40'
# Response
{
"success": true,
"symbol": "WTIOIL-FUT",
"date": "2026-10-14",
"interval": "1m",
"startTime": "01:40",
"count": 100,
"nextStartTime": "03:20",
"rates": {
"2026-10-14T01:40:00Z": 95.31,
"2026-10-14T01:41:00Z": 95.3,
"2026-10-14T01:42:00Z": 95.29,
"2026-10-14T01:43:00Z": 95.35,
"2026-10-14T01:44:00Z": 95.31,
...,
"2026-10-14T03:15:00Z": 94.83,
"2026-10-14T03:16:00Z": 94.94,
"2026-10-14T03:17:00Z": 94.83,
"2026-10-14T03:18:00Z": 94.83,
"2026-10-14T03:19:00Z": 94.84
},
"metadata": {
"WTIOIL-FUT": {
"unit": "Bbl",
"quote": "USD"
}
}
}
Keep going until nextStartTime is null. A full day at 1m takes 15 requests. At 15m or longer, the whole day arrives in one response.
Frequently Asked Questions
XAU), silver (XAG), WTI crude oil futures (WTIOIL-FUT), copper (XCU-SPOT), and natural gas futures (NG-FUT). You can check any symbol's updateInterval with the Commodity Symbols endpoint. Commodities published hourly, daily, or less often return a 400.1m is 15 requests, or 750 credits. At 5m it's 3 requests, and at 15m or longer it's one.count field always tells you how many points the response actually holds.metadata shows next to the unit. To show today's prices in another currency, convert them with the APIFreaks Currency Converter API. For a past day, get that day's exchange rate from the APIFreaks Currency Time Series API.date is a UTC day, startTime is a UTC time, and every timestamp in rates ends in Z. Future dates return a 400.Pricing
To use the Commodity Intraday Rates API, API credits are required. We only charge for successful queries, defined by a 2xx status code. If a request results in a 4xx or 5xx status code, no credits will be deducted, and any credits already charged will be refunded.
For each successful request, 50 credits will be charged, however many points the response returns.
Utilize the Credits Usage API to efficiently monitor your recent consumption of both one-off and subscription credits. This API provides a streamlined way to track and manage your credit usage, ensuring you stay informed about your remaining balance and can optimize your resource allocation effectively.