Palmoil physical series API
Find admitted Palmoil physical series by product and country
Endpoint and request
REST endpoint
GET /v1/commodities/palmoil/physicalContract request
curl --request GET \
--url "https://api.narwhalapi.com/v1/commodities/palmoil/physical?product=ffb&country=IDN&area=ID-RI&limit=100" \
--header "Authorization: Bearer $NARWHAL_API_KEY"MCP uses commodities_list_palmoil_physical_series. REST and MCP share the same schema, account quota, rights check, and problem shape.
Parameters
| Name | Required | Type | Meaning |
|---|---|---|---|
product | No | query · ffb or cpo | Filter by the physical product. |
country | No | query · ISO 3166-1 alpha-3 | Filter by country, such as IDN. |
area / grade / brand | No | query · discovery filters | Filter typed metadata without adding URL levels. |
limit / cursor | No | query · 1–500 and opaque cursor | Paginate stable discovery results. |
Response
Contract example
{
"series": [
{
"series_id": "id-ri-oil-palm-ffb-smallholder-purchase-agreement",
"commodity": "palmoil",
"product": "ffb",
"country": "IDN",
"area": "ID-RI",
"producer_type": "smallholder",
"producer_arrangement": "purchase_agreement",
"price_type": "official_purchase_schedule",
"currency": "IDR",
"unit": "kilogram",
"coverage_start": "2026-08-19",
"coverage_end": "2026-09-01",
"frequency": "weekly"
}
]
}| Field | Type | Required | Meaning |
|---|---|---|---|
series | array | Yes | Complete approved series ordered by stable series_id. |
series_id | string | Yes | Stable identity used by the history operation. |
area / producer_type / producer_arrangement | strings or null | Yes | The exact market and producer scope. |
product / country / area / grade / brand | strings or null | Yes | Typed physical-market metadata. |
frequency / coverage_start / coverage_end | string and dates | Yes | Cadence and accepted history bounds. |
Errors and quota
400 invalid_query— a code, area, date range, limit, or selector is invalid.401 invalid_api_key— the Bearer key is missing or rejected.429 rate_limit_exceededorquota_exhausted— the shared allowance is exhausted.503 physical_price_unavailable— a complete publication cannot safely satisfy the Interface.
Rejected requests and server errors do not consume monthly quota.
Coverage
Only admitted series appear. Malaysia is not currently admitted.
Available with a Narwhal API key.