{"openapi":"3.1.0","info":{"title":"Feedsoft AI API","version":"1.0.0","description":"Free feed-ingredient market terminal: corn, soybean meal, wheat, DDGS, fats, livestock and energy prices, Feedsoft benchmarks and country indexes, USDA fundamentals and the events that move them.\n\nRead-only API for Business plans. Authenticate with an API key from https://feedsoft.ai/account/api in an `Authorization: Bearer fsk_…` header.\nLimits per organization: 50,000 calls a month and 60 a minute; history up to 3 years. Only Feedsoft-derived and openly licensed series are served.\nThe same key works with the MCP server at https://feedsoft.ai/api/mcp (Streamable HTTP; each tool call counts as one call).\nTerms: internal use only, no resale or redistribution, no model training, attribute \"Feedsoft AI (feedsoft.ai)\", cache at most 24 hours. Not investment advice."},"servers":[{"url":"https://feedsoft.ai/"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"API key (fsk_…)"}}},"tags":[{"name":"Markets"},{"name":"Indexes"},{"name":"Feed cost"},{"name":"Forecasts"},{"name":"Ingredients"},{"name":"Events"},{"name":"Offers"}],"paths":{"/api/v1/benchmarks":{"get":{"summary":"Benchmarks","description":"Latest Feedsoft benchmark per commodity in a market: price, changes, 52-week range, sparkline.","tags":["Markets"],"parameters":[{"name":"ccy","in":"query","description":"Display currency for prices (converted at the Fed H.10 rate on each date)","schema":{"type":"string","enum":["USD","EUR","BRL","CNY","MXN","CAD","JPY","KRW","GBP","AUD","MYR","THB","INR","ZAR"],"default":"USD"}},{"name":"market","in":"query","description":"Feedsoft market (country ISO2) or GLOBAL","schema":{"type":"string","enum":["GLOBAL","US","BR","CN","EU","MX","AR","CA","CO","PE","JP","KR","TH","VN","ID","PH","IN","TR","EG","ZA"],"default":"GLOBAL"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/benchmarks/{symbol}":{"get":{"summary":"Benchmark history","description":"A commodity's benchmark bars in a market, index history, summary stats, significant moves and events.","tags":["Markets"],"parameters":[{"name":"symbol","in":"path","required":true,"description":"Commodity symbol, e.g. CORN, SBM, WHEAT","schema":{"type":"string","enum":["CORN","SOY","WHEAT","KWHEAT","OATS","SORGHUM","BARLEY","RICE","SBM","SBO","FISHMEAL","PALMOIL","DDGS","CANMEAL","SUNMEAL","CSM","MBM","LCATTLE","FCATTLE","HOGS","CHICKEN","MILK","WTI","BRENT","NATGAS","DIESEL","DXY","BARGE","OCEANFRT","EURUSD","USDBRL","USDCNY","USDMXN","USDCAD","USDJPY","USDKRW","GBPUSD","AUDUSD","USDMYR","USDTHB","USDINR","USDZAR","USDARS","USDCOP","USDPEN","USDVND","USDIDR","USDPHP","USDTRY","USDEGP","UREA","DAP","TSP","PHOSROCK","POTASH","LYSINE","METH"]}},{"name":"range","in":"query","description":"History window (at most 3 years)","schema":{"type":"string","enum":["1M","3M","6M","1Y","3Y"],"default":"1Y"}},{"name":"market","in":"query","description":"Feedsoft market (country ISO2) or GLOBAL","schema":{"type":"string","enum":["GLOBAL","US","BR","CN","EU","MX","AR","CA","CO","PE","JP","KR","TH","VN","ID","PH","IN","TR","EG","ZA"],"default":"GLOBAL"}},{"name":"ccy","in":"query","description":"Display currency for prices (converted at the Fed H.10 rate on each date)","schema":{"type":"string","enum":["USD","EUR","BRL","CNY","MXN","CAD","JPY","KRW","GBP","AUD","MYR","THB","INR","ZAR"],"default":"USD"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/benchmarks/{symbol}/markets":{"get":{"summary":"Country benchmarks","description":"Every Feedsoft country benchmark for a commodity on one index scale, with latest prices.","tags":["Markets"],"parameters":[{"name":"symbol","in":"path","required":true,"description":"Commodity symbol, e.g. CORN, SBM, WHEAT","schema":{"type":"string","enum":["CORN","SOY","WHEAT","KWHEAT","OATS","SORGHUM","BARLEY","RICE","SBM","SBO","FISHMEAL","PALMOIL","DDGS","CANMEAL","SUNMEAL","CSM","MBM","LCATTLE","FCATTLE","HOGS","CHICKEN","MILK","WTI","BRENT","NATGAS","DIESEL","DXY","BARGE","OCEANFRT","EURUSD","USDBRL","USDCNY","USDMXN","USDCAD","USDJPY","USDKRW","GBPUSD","AUDUSD","USDMYR","USDTHB","USDINR","USDZAR","USDARS","USDCOP","USDPEN","USDVND","USDIDR","USDPHP","USDTRY","USDEGP","UREA","DAP","TSP","PHOSROCK","POTASH","LYSINE","METH"]}},{"name":"range","in":"query","description":"History window (at most 3 years)","schema":{"type":"string","enum":["1M","3M","6M","1Y","3Y"],"default":"1Y"}},{"name":"ccy","in":"query","description":"Display currency for prices (converted at the Fed H.10 rate on each date)","schema":{"type":"string","enum":["USD","EUR","BRL","CNY","MXN","CAD","JPY","KRW","GBP","AUD","MYR","THB","INR","ZAR"],"default":"USD"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/indexes":{"get":{"summary":"Index snapshot","description":"Latest value with 1- and 12-month changes for every Feedsoft index and country.","tags":["Indexes"],"parameters":[{"name":"family","in":"query","description":"Comma-separated families","schema":{"type":"string","examples":["commodity,feed_cost,protein,energy"]}},{"name":"basis","in":"query","description":"usd or local currency","schema":{"type":"string","enum":["usd","local"],"default":"usd"}},{"name":"ccy","in":"query","description":"Display currency for prices (converted at the Fed H.10 rate on each date)","schema":{"type":"string","enum":["USD","EUR","BRL","CNY","MXN","CAD","JPY","KRW","GBP","AUD","MYR","THB","INR","ZAR"],"default":"USD"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/indexes/{family}/{key}":{"get":{"summary":"Index history","description":"Monthly history of one Feedsoft index by country. Composites use family = key (feed_cost/feed_cost); commodity indexes use family 'commodity' and the symbol.","tags":["Indexes"],"parameters":[{"name":"family","in":"path","required":true,"description":"Index family","schema":{"type":"string","enum":["commodity","feed_cost","protein","energy"]}},{"name":"key","in":"path","required":true,"description":"Composite key or commodity symbol","schema":{"type":"string"}},{"name":"countries","in":"query","description":"Comma-separated ISO2 codes (default all)","schema":{"type":"string"}},{"name":"basis","in":"query","description":"usd or local currency","schema":{"type":"string","enum":["usd","local"],"default":"usd"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/feed-costs":{"get":{"summary":"Feed cost board","description":"Weekly least-cost cost (USD/t) of every template formula, with 1/4/52-week changes.","tags":["Feed cost"],"parameters":[{"name":"market","in":"query","description":"Feedsoft market (country ISO2) or GLOBAL","schema":{"type":"string","enum":["GLOBAL","US","BR","CN","EU","MX","AR","CA","CO","PE","JP","KR","TH","VN","ID","PH","IN","TR","EG","ZA"],"default":"GLOBAL"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/feed-costs/{code}":{"get":{"summary":"Feed cost detail","description":"One formula: cost history, current mix with prices and sources, comparisons and break-evens.","tags":["Feed cost"],"parameters":[{"name":"code","in":"path","required":true,"description":"Formula code","schema":{"type":"string","enum":["BR-S","BR-G","BR-F","BR-W","PUL-S","PUL-D","LAY-1","LAY-2","BRD-R","BRD-P","TK-S","TK-G","SW-CR","SW-N","SW-G","SW-F","SW-GEST","SW-LAC","DY-LACT","DY-DRY","DY-HEIF","BF-GROW","BF-FIN","SH-GEST","SH-LAC","SH-FIN","GT-LAC","GT-KID","TIL-G","SHR-G","DOG-A","DOG-P","DOG-S","CAT-A","CAT-K"]}},{"name":"market","in":"query","description":"Feedsoft market (country ISO2) or GLOBAL","schema":{"type":"string","enum":["GLOBAL","US","BR","CN","EU","MX","AR","CA","CO","PE","JP","KR","TH","VN","ID","PH","IN","TR","EG","ZA"],"default":"GLOBAL"}},{"name":"range","in":"query","description":"History window","schema":{"type":"string","enum":["6M","1Y","3Y"],"default":"1Y"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/feed-costs/break-evens":{"get":{"summary":"Break-evens","description":"Per ingredient: formulas it's in (and the price above which it leaves) and those it's out of (and the price below which it enters).","tags":["Feed cost"],"parameters":[{"name":"market","in":"query","description":"Feedsoft market (country ISO2) or GLOBAL","schema":{"type":"string","enum":["GLOBAL","US","BR","CN","EU","MX","AR","CA","CO","PE","JP","KR","TH","VN","ID","PH","IN","TR","EG","ZA"],"default":"GLOBAL"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/feed-costs/nutrients":{"get":{"summary":"Nutrient costs","description":"What tightening each nutrient target by 1% adds to each formula's cost this week (USD/t).","tags":["Feed cost"],"parameters":[{"name":"market","in":"query","description":"Feedsoft market (country ISO2) or GLOBAL","schema":{"type":"string","enum":["GLOBAL","US","BR","CN","EU","MX","AR","CA","CO","PE","JP","KR","TH","VN","ID","PH","IN","TR","EG","ZA"],"default":"GLOBAL"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/forecasts":{"get":{"summary":"Forecast board","description":"Latest 1, 3 and 6-month forecasts (P10/P50/P90) for every commodity, with track records.","tags":["Forecasts"],"parameters":[],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/forecasts/{symbol}":{"get":{"summary":"Forecast","description":"One commodity's 1–6 month forecast, written outlook and track record.","tags":["Forecasts"],"parameters":[{"name":"symbol","in":"path","required":true,"description":"Commodity symbol, e.g. CORN, SBM, WHEAT","schema":{"type":"string","enum":["CORN","SOY","WHEAT","KWHEAT","OATS","SORGHUM","BARLEY","RICE","SBM","SBO","FISHMEAL","PALMOIL","DDGS","CANMEAL","SUNMEAL","CSM","MBM","LCATTLE","FCATTLE","HOGS","CHICKEN","MILK","WTI","BRENT","NATGAS","DIESEL","DXY","BARGE","OCEANFRT","EURUSD","USDBRL","USDCNY","USDMXN","USDCAD","USDJPY","USDKRW","GBPUSD","AUDUSD","USDMYR","USDTHB","USDINR","USDZAR","USDARS","USDCOP","USDPEN","USDVND","USDIDR","USDPHP","USDTRY","USDEGP","UREA","DAP","TSP","PHOSROCK","POTASH","LYSINE","METH"]}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/ingredients":{"get":{"summary":"Ingredients","description":"Feed ingredients in the composition library.","tags":["Ingredients"],"parameters":[],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/ingredients/{code}":{"get":{"summary":"Ingredient","description":"Typical nutrient composition (as fed) and closest substitutes.","tags":["Ingredients"],"parameters":[{"name":"code","in":"path","required":true,"description":"Ingredient code, e.g. SBM48","schema":{"type":"string"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/events":{"get":{"summary":"Events & news","description":"Market-moving events and news, newest first, with sources (original headline and language for each) and the countries concerned.","tags":["Events"],"parameters":[{"name":"symbols","in":"query","description":"Comma-separated commodity symbols","schema":{"type":"string"}},{"name":"countries","in":"query","description":"Comma-separated ISO2 codes of the countries concerned (EU for EU-wide stories)","schema":{"type":"string"}},{"name":"category","in":"query","description":"Event category","schema":{"type":"string"}},{"name":"origin","in":"query","description":"news or context (non-news events)","schema":{"type":"string","enum":["news","context"]}},{"name":"from","in":"query","description":"Start date (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"q","in":"query","description":"Title search","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Max rows","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"lang","in":"query","description":"Language for title, summary and why_it_matters; translated for significant events, English otherwise","schema":{"type":"string","enum":["en","es","pt-BR","fr","de","it","nl","pl","zh-CN","ja","ko","vi","th","id","tr","ru"],"default":"en"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/moves":{"get":{"summary":"Significant moves","description":"Recent statistically significant price moves with the event most likely behind each.","tags":["Events"],"parameters":[{"name":"limit","in":"query","description":"Max rows","schema":{"type":"integer","minimum":1,"maximum":200,"default":25}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}},"/api/v1/offers":{"get":{"summary":"Supplier offers","description":"Active offers from verified suppliers, cheapest first.","tags":["Offers"],"parameters":[{"name":"ingredient","in":"query","description":"Ingredient code, e.g. SBM48","schema":{"type":"string"}},{"name":"symbol","in":"query","description":"Commodity symbol, e.g. SBM","schema":{"type":"string"}}],"responses":{"200":{"description":"JSON payload","headers":{"X-RateLimit-Limit":{"description":"Calls allowed per minute","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Calls left this minute","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"When the minute window resets (Unix seconds)","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Calls allowed this calendar month (UTC)","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Calls left this month","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the monthly allowance resets (Unix seconds)","schema":{"type":"integer"}},"X-Data-Attribution":{"description":"Attribution to show with the data","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"]}}}},"401":{"description":"Missing, malformed or revoked API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"The organization has no Business plan","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"403":{"description":"Series not available through the API (data licence)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"404":{"description":"Unknown symbol, formula, index or ingredient","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"429":{"description":"Per-minute rate limit or monthly allowance exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}}}}}