{"additionalInterfaces":[{"transport":"JSONRPC","url":"https://opnplatform.com/api/a2a"}],"capabilities":{"pushNotifications":false,"stateTransitionHistory":false,"streaming":false},"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["application/json"],"description":"Packaging market intelligence: PackIndex price and carbon benchmarks (L0-L3) and PACKIQ AI packaging co-workers.","documentationUrl":"https://opnplatform.com/api/openapi","llmsTxt":"https://opnplatform.com/llms.txt","mcpEndpoint":"https://opnplatform.com/api/mcp","name":"OPN PackIndex & PACKIQ","openApiSpec":"https://opnplatform.com/api/openapi.json","preferredTransport":"JSONRPC","protocolVersion":"0.3.0","provider":{"organization":"Open Packaging Network \u2014 Polimex Trade Inc.","url":"https://opnplatform.com"},"securitySchemes":{"opnApiKey":{"description":"OPN API key from https://opnplatform.com/portal (required only for run_packiq_agent)","scheme":"bearer","type":"http"}},"skills":[{"description":"Find PackIndex codes by material, input, format or plain words ('polypropylene', 'recovered paper', 'natural gas', 'kraftliner', 'corrugated box'). Returns published codes with layer (L0 inputs, L1 raw materials, L2 semi-finished, L3 finished packs), region and unit \u2014 no prices. Use first when you don't know the exact code.","examples":["Find the code for polypropylene","Which indices cover recovered paper?","Codes for natural gas"],"id":"search_indices","inputModes":["text/plain","application/json"],"name":"Search PackIndex codes","outputModes":["application/json"],"tags":["search","codes","catalogue"]},{"description":"Today's value of one PackIndex code \u2014 commodity inputs (L0: oil, gas, power, metals, recovered fibre), raw materials (L1: PP, HDPE, pulp\u2026), semi-finished (L2: kraftliner, films\u2026) or finished packs (L3) \u2014 in USD (and your currency), with 1-week / 1-month / 3-month / 1-year change (each period only where that much history exists) and carbon data where scored. Free callers get a 12-week delayed reference value (plus a daily live rotation); live values need the Essential plan.","examples":["What is the PP resin price?","Kraftliner price in EUR","Brent crude today"],"id":"get_live_index","inputModes":["text/plain","application/json"],"name":"Get one index value","outputModes":["application/json"],"tags":["price","index","benchmark"]},{"description":"Price history for any PackIndex code (L0-L3), one value per date: every point for up to 3 months, weekly closes for longer spans, with the change between points. Depth follows the caller's plan (observer 3mo \u00b7 essential 3mo \u00b7 professional 24mo \u00b7 intelligence 24mo); free history ends 12 weeks ago.","examples":["12-month history for OCC","How has FLEX moved this year?"],"id":"get_index_history","inputModes":["text/plain","application/json"],"name":"Get index history","outputModes":["application/json"],"tags":["history","trend","timeseries"]},{"description":"Page through index values by layer: L0 primary inputs, L1 raw materials, L2 semi-finished (paid plans) and L3 finished packs. Prefer get_prices for specific codes; use this for portfolio scans. Paginate with limit/offset (next_offset is returned while more rows remain).","examples":["List L3 packaging indices","Next page of indices"],"id":"get_all_indices","inputModes":["text/plain","application/json"],"name":"List index values (paginated)","outputModes":["application/json"],"tags":["price","indices","snapshot"]},{"description":"Carbon footprint: finished packs (L3) in kg CO2e per unit with grade A-D; raw materials and semi-finished (board grades, pulps, polymers, aluminium, steel, cullet) in kg CO2e per tonne, virgin and PEF CFF, optionally at your recycled content. For Scope 3 Category 1: factor \u00d7 units or tonnes.","examples":["Carbon score for CORR","kg CO2e per tonne of kraftliner","PP carbon at 30% recycled"],"id":"get_carbon_index","inputModes":["text/plain","application/json"],"name":"Get Green Index carbon score","outputModes":["application/json"],"tags":["carbon","Scope 3","ESG","Green Index","CSRD"]},{"description":"Ask a plain-English question about packaging costs, indices or which PACKIQ agent to use. Returns a structured, citable answer grounded in PackIndex data.","examples":["What does a corrugated box cost per unit?","Which PACKIQ agent audits a supplier invoice?"],"id":"packindex_query","inputModes":["text/plain","application/json"],"name":"Ask PackIndex","outputModes":["application/json"],"tags":["packaging","price","question","EPR","PPWR"]},{"description":"Browse PACKIQ AI packaging co-workers (procurement, manufacturing, compliance, finance, sales, logistics, contracts, global markets). Returns agent IDs, names, credit costs and descriptions.","examples":["List compliance agents"],"id":"list_packiq_agents","inputModes":["text/plain","application/json"],"name":"List PACKIQ agents","outputModes":["application/json"],"tags":["agents","PACKIQ","directory"]},{"description":"After a PACKIQ agent run, get the 2-3 most logical follow-on agents with reasons. Pass result_signal (e.g. 'OVERPRICED', 'BUY') to bias the pick.","examples":["What should I run after quote-analyser?"],"id":"get_agent_chain","inputModes":["text/plain","application/json"],"name":"Next PACKIQ agent","outputModes":["application/json"],"tags":["workflow","agents","next-step"]},{"description":"12-week forward value for any PackIndex code \u2014 inputs, raw materials, semi-finished and finished packs: current level, projection, projected change and confidence. Professional plan and above.","examples":["Where is PP heading next quarter?","Kraftliner outlook","CORR forward value"],"id":"get_index_forecast","inputModes":["text/plain","application/json"],"name":"Get index forecast","outputModes":["application/json"],"tags":["forecast","forward curve","price outlook"]},{"description":"Today's values for up to 20 PackIndex codes in one call (any layer: oil, gas, resins, pulp, board, films, finished packs) with 1w/1m/3m/1y change \u2014 for watchlists and cost models. Free callers get 12-week delayed reference values.","examples":["Prices for PP, HDPE, LDPE and PET","Today's oil, gas and power benchmarks"],"id":"get_prices","inputModes":["text/plain","application/json"],"name":"Get several index values","outputModes":["application/json"],"tags":["prices","watchlist","batch","commodities"]},{"description":"Is this supplier price fair? Compares a quoted price (any currency; per t, kg, lb, unit\u2026) with the PackIndex benchmark: difference %, verdict FAIR / HIGH / LOW, where the quote sits in the benchmark's 12-month range and, with a quantity, the overpayment. Free callers are compared with the 12-week delayed reference value.","examples":["Is \u20ac1,450/t for PP homopolymer fair?","Supplier quotes $640/t kraftliner \u2014 check it"],"id":"check_quote","inputModes":["text/plain","application/json"],"name":"Check a supplier quote","outputModes":["application/json"],"tags":["procurement","quote","benchmark","negotiation","should-cost"]},{"description":"Recalculate an index-linked contract price: base price and base date plus the indices it follows and their weights (the rest is fixed). Returns the adjusted price, each index's ratio and effect, and the formula. Essential plan (base dates up to 3 months back), Professional (24 months).","examples":["Our film price is \u20ac2,100/t from 1 July, 70% linked to PP \u2014 what is it now?"],"id":"price_adjustment","inputModes":["text/plain","application/json"],"name":"Index-linked price adjustment","outputModes":["application/json"],"tags":["contract","escalation","index-linked","price adjustment","procurement"]},{"description":"One material across regions \u2014 e.g. PP in Europe, US, China and the Middle East \u2014 in USD with spreads vs a reference region; add freight per unit and duty % to compare landed costs. Professional plan and above.","examples":["PP Europe vs US vs China","Is importing HDPE from the US cheaper with $90/t freight and 6.5% duty?"],"id":"compare_regions","inputModes":["text/plain","application/json"],"name":"Compare a material across regions","outputModes":["application/json"],"tags":["regional","arbitrage","sourcing","import parity"]},{"description":"Why did a price move? Splits the change over 1w / 1m / 3m / 6m / 1y into the moves of its inputs (e.g. PP \u2190 propylene, gas, power; kraftliner \u2190 OCC, pulp; boxes \u2190 board grades) and the rest (margins, demand, supply). Essential plan and above.","examples":["Why did kraftliner go up this month?","What drove PP over the last quarter?"],"id":"explain_price_move","inputModes":["text/plain","application/json"],"name":"Explain a price move","outputModes":["application/json"],"tags":["drivers","cost drivers","analysis","market intelligence"]},{"description":"Biggest risers and fallers among inputs (L0), raw materials (L1) and semi-finished (L2) over 1w / 1m / 3m / 1y, optionally within a group (e.g. 'polymer', 'fibre', 'energy'). Essential plan and above.","examples":["Which packaging materials rose most this month?","Energy movers this week"],"id":"get_market_movers","inputModes":["text/plain","application/json"],"name":"Market movers","outputModes":["application/json"],"tags":["market","movers","briefing","commodities"]},{"description":"Price a corrugated RSC box (FEFCO 0201) from internal dimensions and flute (E, B, C, F or double-wall), anchored to the PackIndex RSC benchmark, with a low/mid/high band, optional order total and a next-quarter projection. Returns the sources to cite.","examples":["What should I pay for 400x300x200 E-flute RSC boxes next quarter?"],"id":"estimate_packaging_price","inputModes":["text/plain","application/json"],"name":"Estimate a corrugated box price","outputModes":["application/json"],"tags":["corrugated","RSC","box price","should-cost","procurement"]},{"authRequired":true,"description":"Turn a plain-language packaging brief into a structured spec (format, materials, dimensions, quantity, assumptions) saved as a Design Studio project. Requires the user's OPN account (sign-in or API key); spends 1 Suite run (Intelligence includes monthly free runs).","examples":["500ml cold-brew coffee bottle, premium, recyclable, 50,000 units"],"id":"draft_packaging_spec","inputModes":["text/plain","application/json"],"name":"Design Studio: brief to spec","outputModes":["application/json"],"tags":["Design Studio","packaging spec","brief"]},{"authRequired":true,"description":"Derive the bill of materials for a Design Studio project (or a spec object) and anchor each component to live PackIndex values. Requires the user's OPN account (sign-in or API key); spends 1 Suite run.","examples":["Cost project 123"],"id":"cost_packaging_spec","inputModes":["text/plain","application/json"],"name":"Design Studio: cost a spec","outputModes":["application/json"],"tags":["Design Studio","bill of materials","cost"]},{"authRequired":true,"description":"Optimise a Design Studio project (or a material): right-size, lightweight and substitute options with cost and carbon savings anchored to PackIndex. Requires the user's OPN account (sign-in or API key); spends 1 Suite run.","examples":["Find cheaper or lighter options for project 123"],"id":"compare_packaging_options","inputModes":["text/plain","application/json"],"name":"Design Studio: compare options","outputModes":["application/json"],"tags":["Design Studio","optimise","lightweighting","substitution"]},{"authRequired":true,"description":"Change a Design Studio project's order quantity, target region, contents size (boxes \u2014 enables right-sizing), name or performance floor (corrugated: ECT; folding cartons: bending stiffness in mN\u00b7m; rigid packs: top-load kgf). Free \u2014 no Suite run; a new quantity re-prices the existing bill of materials. Use it when the user gives the real volume before comparing options or requesting quotes.","examples":["Set my pickleball box project to 50,000 units"],"id":"update_project","inputModes":["text/plain","application/json"],"name":"Design Studio: update a project","outputModes":["application/json"],"tags":["Design Studio","projects","quantity"]},{"authRequired":true,"description":"The user's Design Studio packaging projects (id, name, pack type, status) and Suite runs left. Use it before compare_packaging_options or post_rfq when the user refers to 'my project' without an id. Requires the user's OPN account.","examples":["Which packaging projects do I have?"],"id":"list_my_projects","inputModes":["text/plain","application/json"],"name":"Design Studio: my projects","outputModes":["application/json"],"tags":["Design Studio","projects"]},{"authRequired":true,"description":"Request quotes on the OPN Trade Exchange for a Design Studio project or a PackIndex material code to up to 3 suppliers. listing_ids (from find_suppliers) or, by default, the 3 best-matching listings get an RFQ \u2014 needs a verified e-mail and an Exchange plan with RFQs (Business+). company_slugs (converters from find_suppliers) ask those companies to quote; the Exchange contacts them for the buyer, anonymously. Real e-mails are sent \u2014 confirm the selection with the user first.","examples":["Send an RFQ for project 123 to suppliers in Poland"],"id":"post_rfq","inputModes":["text/plain","application/json"],"name":"Exchange: send an RFQ","outputModes":["application/json"],"tags":["Exchange","RFQ","sourcing","suppliers"]},{"description":"Who can quote a material or a Design Studio project: live Trade Exchange listings (price vs PackIndex benchmark) plus matched converters from the verified supplier network, filtered by country. Use before post_rfq. A project_id needs the user's OPN account; a material code works for anyone.","examples":["Who can make my pickleball box in Canada?"],"id":"find_suppliers","inputModes":["text/plain","application/json"],"name":"Exchange: find suppliers","outputModes":["application/json"],"tags":["Exchange","suppliers","converters","sourcing"]},{"authRequired":true,"description":"The user's sent RFQs with how many suppliers received each and how many responded; pass rfq_id for the responses (bids and, once a supplier responds, their contact).","examples":["Did any supplier answer my RFQ?"],"id":"get_my_rfqs","inputModes":["text/plain","application/json"],"name":"Exchange: my RFQs","outputModes":["application/json"],"tags":["Exchange","RFQ","responses"]},{"description":"Live supplier offers on the OPN Trade Exchange, filterable by PackIndex material code and origin, each with its PackIndex benchmark (live on paid plans, 12-week delayed otherwise). No contact details \u2014 RFQs happen on the Exchange.","examples":["Who is selling kraftliner?"],"id":"search_exchange_listings","inputModes":["text/plain","application/json"],"name":"Search Exchange listings","outputModes":["application/json"],"tags":["Exchange","suppliers","offers","marketplace"]},{"authRequired":true,"description":"Run a PACKIQ agent on the caller's data (quotes, invoices, BOMs, specs). Requires the user's OPN account (sign-in or API key); spends the agent's credit cost (refunded automatically if the run fails). Returns structured JSON plus a next_agent recommendation.","examples":["Run quote-analyser on my corrugated quote"],"id":"run_packiq_agent","inputModes":["text/plain","application/json"],"name":"Run a PACKIQ agent","outputModes":["application/json"],"tags":["PACKIQ","agent","analysis","procurement","compliance"]}],"url":"https://opnplatform.com/api/a2a","version":"2.1.0"}
