Browse all documentation

Physical commodity series API

Find Palmoil FFB series by area

Endpoint and request

REST endpoint
GET /v1/commodities/physical/{commodity}/{country}
Contract request
curl --request GET \
  --url "https://api.narwhalapi.com/v1/commodities/physical/OIL-PALM-FFB/IDN?area=ID-RI&currency=IDR" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"

MCP uses commodities_discover_physical_series. REST and MCP share the same schema, account quota, rights check, and problem shape.

Parameters

NameRequiredTypeMeaning
commodityYespath · catalogue codeStable commodity code. The Palmoil slice uses OIL-PALM-FFB.
countryYespath · ISO 3166-1 alpha-3Country that owns the physical market. The first researched country is IDN.
areaNoquery · ISO 3166-2 or Narwhal areaAdministrative or source-defined market area, such as ID-RI for Riau.
currencyNoquery · ISO 4217Filter series by their published monetary currency.

Response

Contract example
{
  "commodity": "OIL-PALM-FFB",
  "country": "IDN",
  "series": [
    {
      "series_id": "id-ri-oil-palm-ffb-smallholder-purchase-agreement",
      "commodity": "OIL-PALM-FFB",
      "country": "IDN",
      "area": "ID-RI",
      "producer_type": "smallholder",
      "producer_arrangement": "purchase_agreement",
      "price_basis": "official_purchase_schedule",
      "currency": "IDR",
      "unit": "kilogram",
      "coverage_start": "2026-08-19",
      "coverage_end": "2026-09-01",
      "latest_released_on": "2026-08-26",
      "schedule_count": 2
    }
  ]
}
FieldTypeRequiredMeaning
commodity / countrystringsYesThe requested physical-market scope.
seriesarrayYesComplete approved series ordered by stable series_id.
series_idstringYesStable identity used by the history operation.
area / producer_type / producer_arrangementstrings or nullYesThe exact market and producer scope.
coverage_start / coverage_enddatesYesFirst and last effective dates in the approved series.
latest_released_on / schedule_countdate and integerYesLatest official release date and number of approved schedules.

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.
  • 404 physical_series_not_found — no complete approved data matches the request.
  • 429 rate_limit_exceeded or quota_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 complete approved series appear. The first selected country is Indonesia.

Public access is not open yet.