{"kind":"request","title":"Sourcing request","version":"2.0","what":"What the person needs: the item, quantity, place, need-by date, target landed cost, certifications and the steps' day estimates.","status":"live","read_by":{"tool":"plan_sourcing","in_input":"(the whole input)","url":"https://www.supplychain.md/api/v1/plan_sourcing"},"filled_by":"The agent, from what the person asked for","plugs_in_later":"Buyer agents posting requests that supplier agents can answer (planned, not live)","schema":{"type":"object","properties":{"item":{"type":"string","maxLength":120,"description":"What is being sourced, as the person describes it, like aluminum housings. At most 120 characters."},"quantity":{"type":"number","minimum":0,"maximum":1000000000,"description":"How many are needed, in unit. More than 0."},"unit":{"type":"string","maxLength":20,"default":"units","description":"The unit of quantity, like units, kg or m. Default units."},"need_by":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10,"description":"The date the goods must be at the destination. As YYYY-MM-DD."},"today":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10,"description":"Today's date, for the slack. Default: today in UTC. As YYYY-MM-DD."},"destination":{"type":"string","maxLength":120,"description":"Where the goods go, like plant in Utah, US. Echoed in the plan and the RFQ only."},"destination_country":{"type":"string","pattern":"^[A-Za-z]{2}$","maxLength":2,"description":"Country the goods are delivered to. Two-letter country code, like US or DE."},"origin_country":{"type":"string","pattern":"^[A-Za-z]{2}$","maxLength":2,"description":"Country the goods ship from, when known. Two-letter country code, like US or DE."},"target_landed_per_unit":{"type":"number","minimum":0,"maximum":1000000000,"description":"The person's target landed cost per unit at the destination, home currency. Optional; with it the plan works out the order value."},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$","maxLength":3,"description":"Your home currency code, like USD or EUR, used only to label amounts. Every amount you send is in this currency unless an item has its own fx_to_home rate."},"certifications":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":60},"description":"Certifications or standards the item or the supplier must have, named as the person gives them. They go into the RFQ, and into score_suppliers as required_certifications."},"spec_ready":{"type":"boolean","default":false,"description":"true when the drawing or spec is final, with its revision and tolerances. Default false, which adds a spec freeze gate."},"samples":{"type":"boolean","default":false,"description":"true when samples or a first-article approval come before the order. Adds the sample stage. Default false."},"inspection":{"type":"string","enum":["none","pre_shipment","on_arrival","both"],"description":"The inspection plan: none, pre_shipment, on_arrival or both. When not set the inspection stage stays in and is listed as missing."},"days":{"type":"object","properties":{"define":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the define step, from the person's own estimate."},"find":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the find step, from the person's own estimate."},"quote":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the quote step, from the person's own estimate."},"sample":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the sample step, from the person's own estimate."},"award":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the award step, from the person's own estimate."},"production":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the production step, from the person's own estimate."},"inspection":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the inspection step, from the person's own estimate."},"origin":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the origin step, from the person's own estimate."},"transit":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the transit step, from the person's own estimate."},"customs":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the customs step, from the person's own estimate."},"delivery":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the delivery step, from the person's own estimate."},"receive":{"type":"number","minimum":0,"maximum":365,"description":"Calendar days for the receive step, from the person's own estimate."}},"additionalProperties":false,"description":"The person's own estimates in calendar days per step, each 0 to 365, like {\"production\": 15, \"transit\": 4}. Keys: define, find, quote, sample, award, production, inspection, origin, transit, customs, delivery, receive. A step with no estimate counts 0 days and is listed as missing."},"buffer_days":{"type":"number","minimum":0,"maximum":180,"default":0,"description":"Calendar days of buffer the person keeps before need_by, 0 to 180. Default 0."},"approval_amount":{"type":"number","minimum":0,"maximum":1000000000000,"description":"Order value, home currency, above which the person reviews the full quote comparison before the award. Optional."},"min_quotes":{"type":"integer","minimum":1,"maximum":20,"default":3,"description":"Quotes to collect before the award, 1 to 20. Default 3."},"contact_suppliers":{"type":"string","enum":["never","draft_only","send_approved"],"default":"draft_only","description":"How suppliers may be contacted: never (give the person the RFQ), draft_only (draft it for the person to send, the default) or send_approved (send only RFQs the person approved, from accounts they gave you)."},"trade_term_pref":{"type":"string","enum":["exw","fca","fas","fob","cfr","cif","cpt","cip","dap","dpu","ddp","ask"],"description":"The trade term the person wants quoted, as a lowercase code (exw, fca, fas, fob, cfr, cif, cpt, cip, dap, dpu, ddp), or ask: ask suppliers for their usual term and for FCA. Optional."}},"required":["item","quantity","need_by"]},"example":{"item":"aluminum housings","quantity":10000,"unit":"units","need_by":"2026-12-02","today":"2026-11-02","destination":"plant in Utah, US","destination_country":"US","origin_country":"MX","target_landed_per_unit":8,"currency":"USD","certifications":["ISO 9001","RoHS"],"spec_ready":true,"inspection":"pre_shipment","days":{"find":2,"quote":4,"award":1,"production":12,"inspection":1,"origin":1,"transit":3,"customs":1,"delivery":1,"receive":1},"buffer_days":2,"approval_amount":50000,"min_quotes":3,"contact_suppliers":"draft_only","trade_term_pref":"fca"},"example_note":"Round illustrative numbers, not market data, a price or a quote; send your own.","disclaimer":"Use at your own risk. supplychain.md is provided as is, without warranty. Information here may be inaccurate, incomplete or not current, and is not verified; figures are estimates from the numbers you send and the formulas stated. Nothing here is legal, customs, trade-compliance, tax, financial, insurance, engineering or safety advice, a quote, a rate, or an offer to buy, sell, carry, store, insure or clear goods. supplychain.md never places orders, signs contracts, pays, books freight, files customs entries or gives a quote. Check everything yourself before you act on it.","terms":"https://www.supplychain.md/terms"}