---
title: Live Commodity Prices API - Real Time Market Insights
version: 2.0.0
description: Real-time prices for 245+ commodities in a single request, updated on a rolling ~1 minute cadence. Optionally convert prices into a target quote currency. Unresolved symbols degrade to a 206 partial response instead of failing the whole request.
openapi: 3.1.1
servers:
  - https://api.apifreaks.com/v2.0
paths: 1
operations: 1
schemas: 5
---

## Table of Contents

- [Live Commodity Prices API - Real Time Market Insights v2.0.0](#live-commodity-prices-api-real-time-market-insights-v200)
  - [Authentication](#authentication)
  - [Commodity APIs](#commodity-apis)
    - [getLatestCommodityPrices](#getlatestcommodityprices)
      - [Parameters](#parameters)
      - [Responses](#responses)
  - [Schemas](#schemas)
    - [LiveCommodityPricesResponse](#livecommoditypricesresponse)
    - [CommodityRates](#commodityrates)
    - [CommodityMetadata](#commoditymetadata)
    - [ErrorResponse](#errorresponse)
    - [CommodityNotFoundError](#commoditynotfounderror)



# Live Commodity Prices API - Real Time Market Insights v2.0.0

Real-time prices for 245+ commodities in a single request, updated on a rolling ~1 minute cadence. Optionally convert prices into a target quote currency. Unresolved symbols degrade to a 206 partial response instead of failing the whole request.

Base URLs:

* [https://api.apifreaks.com/v2.0](https://api.apifreaks.com/v2.0)

## Authentication

* API Key (ApiKeyAuthHeader)
    - Parameter Name: **X-apiKey**, in: header. Pass your API key via the X-apiKey request header.

* API Key (ApiKeyAuthQuery)
    - Parameter Name: **apiKey**, in: query. Pass your API key via the apiKey query parameter.

## Commodity APIs

### getLatestCommodityPrices

`GET /commodity/rates/latest`

*Get latest commodity prices*

Returns the current live price for the requested commodity symbols.

#### Parameters

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|format|query|string|false|Response format. Currently only `json` is supported.|
|symbols|query|string|true|Comma-separated list of commodity symbols (e.g., `XAU`, `WTIOIL-SPOT`).|
|quote|query|string|false|Target currency for the exchange rate. Defaults to the market currency of each commodity.|

##### Enumerated Values

|Parameter|Value|
|---|---|
|format|json|

> Example responses

> Successful operation

```json
{
  "success": true,
  "timestamp": 1789375397,
  "rates": {
    "XAU": 4313.04,
    "WTIOIL-SPOT": 100
  },
  "metadata": {
    "XAU": {
      "unit": "T.oz",
      "quote": "USD"
    },
    "WTIOIL-SPOT": {
      "unit": "Bbl",
      "quote": "USD"
    }
  }
}
```

```json
{
  "success": true,
  "timestamp": 1789375426,
  "rates": {
    "XAU": 3739.023
  },
  "metadata": {
    "XAU": {
      "unit": "T.oz",
      "quote": "EUR"
    }
  }
}
```

> Partial Content — Some requested symbols could not be resolved

```json
{
  "success": true,
  "timestamp": 1789376193,
  "rates": {
    "XAU": 4311.88
  },
  "metadata": {
    "XAU": {
      "unit": "T.oz",
      "quote": "USD"
    }
  },
  "unresolved": {
    "FAKESYM": {
      "message": "We don't support this symbol, please visit our symbols page to see supported symbols."
    }
  }
}
```

```json
{
  "success": true,
  "timestamp": 1789376644,
  "rates": {
    "XAU": 4306.06
  },
  "metadata": {
    "XAU": {
      "unit": "T.oz",
      "quote": "USD"
    }
  },
  "unresolved": {
    "ZW": {
      "message": "Did you mean ZW-SPOT (Wheat Spot) or ZW-FUT (Wheat Futures)?",
      "suggestions": [
        "ZW-SPOT",
        "ZW-FUT"
      ]
    }
  }
}
```

> Bad Request — Missing or invalid query parameters

```json
{
  "error": "Invalid Param Exception",
  "message": "please pass correct parameters",
  "path": "/v2.0/commodity/rates/latest",
  "status": 400,
  "timestamp": "2026-09-14T08:43:43.964Z"
}
```

> Payment Required — Maximum symbols per request exceeded

```json
{
  "timestamp": "2026-09-14T08:43:44.957Z",
  "path": "/rates/latestRates",
  "code": 402,
  "error": "PAYMENT_REQUIRED",
  "message": "Maximum symbols per request exceeded"
}
```

> Not found - Symbol or quote currency not available

```json
{
  "timestamp": "2026-09-14T08:43:44.957Z",
  "path": "/rates/latestRates",
  "code": 404,
  "error": "SYMBOL_NOT_FOUND",
  "message": "The symbol is not supported, please visit the documentation for a list of supported symbols",
  "unresolved": {
    "FAKESYM": {
      "message": "We don't support this symbol, please visit our symbols page to see supported symbols."
    }
  }
}
```

```json
{
  "timestamp": "2026-09-14T09:04:04.878Z",
  "path": "/rates/latestRates",
  "code": 404,
  "error": "SYMBOL_NOT_FOUND",
  "message": "The symbol is not supported, please visit the documentation for a list of supported symbols",
  "unresolved": {
    "ZW": {
      "message": "Did you mean ZW-SPOT (Wheat Spot) or ZW-FUT (Wheat Futures)?",
      "suggestions": [
        "ZW-SPOT",
        "ZW-FUT"
      ]
    }
  }
}
```

```json
{
  "timestamp": "2026-09-14T08:43:45.461Z",
  "path": "/rates/latestRates",
  "code": 404,
  "error": "QUOTE_NOT_FOUND",
  "message": "The quote currency is invalid, please visit the documentation for a list of valid quote currencies"
}
```

#### Responses

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successful operation|[LiveCommodityPricesResponse](#livecommoditypricesresponse)|
|206|[Partial Content](https://tools.ietf.org/html/rfc7233#section-4.1)|Partial Content — Some requested symbols could not be resolved|[LiveCommodityPricesResponse](#livecommoditypricesresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request — Missing or invalid query parameters|[ErrorResponse](#errorresponse)|
|402|[Payment Required](https://tools.ietf.org/html/rfc7231#section-6.5.2)|Payment Required — Maximum symbols per request exceeded|[CommodityNotFoundError](#commoditynotfounderror)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not found - Symbol or quote currency not available|[CommodityNotFoundError](#commoditynotfounderror)|

#### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|206|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|400|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|402|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|404|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|

To perform this operation, you must be authenticated by means of one of the following methods:
ApiKeyAuthHeader, ApiKeyAuthQuery

## Schemas

### LiveCommodityPricesResponse

Live commodity prices response containing success status, timestamp, rates, and metadata.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|success|boolean|true|none|`true` for successful requests.|
|timestamp|integer|true|none|Unix timestamp (seconds) indicating when the response was generated.|
|rates|[CommodityRates](#commodityrates)|true|none|Map of requested commodity symbols to their current live price. Each key is a commodity symbol (e.g. XAU); the value is the current price.|
|metadata|[CommodityMetadata](#commoditymetadata)|true|none|Map of requested commodity symbols to their unit and quote currency metadata. Each key is a commodity symbol (e.g. XAU).|
|unresolved|object|false|none|Present only on a 206 Partial Content response, when some requested symbols could not be resolved. Map of each unresolved symbol to a detail message and optional close-match suggestions.|
|» **additionalProperties**|object|false|none|none|
|»» message|string|false|none|Detail message explaining why this symbol was not resolved.|
|»» suggestions|[string]|false|none|Optional list of supported symbols that closely match the unresolved symbol.|
|warning|string|false|none|Present only when currency conversion for the requested `quote` is temporarily unavailable; rates are returned in each commodity's default currency instead.|

### CommodityRates

Map of requested commodity symbols to their current live price. Each key is a commodity symbol (e.g. XAU); the value is the current price.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|CommodityPrice|number|false|none|Current live price for this commodity symbol.|

### CommodityMetadata

Map of requested commodity symbols to their unit and quote currency metadata. Each key is a commodity symbol (e.g. XAU).

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|CommodityMetadataItem|object|false|none|Unit and currency metadata for a single commodity.|
|» unit|string|true|none|Unit of measurement for the commodity (e.g., Bbl, T.oz).|
|» quote|string|true|none|Quote currency used for this commodity's price.|

### ErrorResponse

Standard error envelope returned by the API on failed requests.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error|string|false|none|Short error category or exception type.|
|message|string|true|none|Human-readable error message describing the failure.|
|path|string|false|none|API endpoint path that produced the error.|
|status|integer|false|none|HTTP status code returned with the error.|
|timestamp|string(date-time)|false|none|Timestamp when the error occurred (ISO 8601).|

### CommodityNotFoundError

Error envelope returned by the commodity pricing service specifically for unresolvable symbol/quote errors. Uses `code` instead of `status` and an ISO 8601 `timestamp`, unlike the standard ErrorResponse.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|timestamp|string(date-time)|false|none|Timestamp when the error occurred (ISO 8601).|
|path|string|false|none|Internal service path that produced the error.|
|code|integer|true|none|HTTP status code returned with the error.|
|error|string|true|none|Specific error type (e.g., SYMBOL_NOT_FOUND, QUOTE_NOT_FOUND).|
|message|string|true|none|Human-readable error message describing the failure.|
|unresolved|object|false|none|Present only on SYMBOL_NOT_FOUND errors. Map of each unresolved symbol to a detail message and optional close-match suggestions.|
|» **additionalProperties**|object|false|none|none|
|»» message|string|false|none|Detail message explaining why this symbol was not resolved.|
|»» suggestions|[string]|false|none|Optional list of supported symbols that closely match the unresolved symbol.|
