Skip to content

Request quotes

Factory shortlist and bilingual RFQ delivery drafts.

All action kinds · Project workflow

  • Kind: quote_request
  • Availability: available
  • Registry cost category: one_call
  • Lifecycle stage IDs: rfq_and_quote, tooling, supply_chain_setup

The cost category describes model work in the registry; it is not a manufacturing price or a monetary quote. Read maglev actions kinds --json for current availability and schemas.

Can create factory delivery drafts. A draft RFQ is not a supplier quote. A live delivery approval is a separate operation that may send or queue the message. Automatic shortlisting does not enforce project intake geography or quality requirements. Pass reviewed factory UUIDs in factoryIds and include applicable requirements in supported part fields and dfmQuestions. See intent and factory selection for the current ranking behavior and a complete recipe.

Send these fields inside the request’s input object. Use only facts you have, and keep unresolved requirements explicit. Optional fields with defaults can be omitted.

Field Type Required Details
scope string Yes One of: pcba, box_build, mechanical_part, tooling, full_product, mixed
parts object[] Yes Min items 1. Max items 20
parts[].name string If parent supplied What the part is, as the founder names it. Min length 1. Max length 200
parts[].process string No The manufacturing process, when known. One of: pcba, injection_molding, cnc, sheet_metal, die_casting, wire_harness, battery, motor_actuator, display, camera, power_adapter, packaging, off_the_shelf, other
parts[].material string No Max length 200
parts[].finish string No Max length 200
parts[].quantityPerUnit integer No Maximum 9007199254740991. Greater than 0
parts[].notes string No Max length 1000
quantities integer[] No Explicit alternative quantity bands. Omit to use the confirmed current project quantity. Planned pilots and forecasts never become quote bands automatically.. Min items 1. Max items 6
incoterm string No Requested trade term. Omit when unknown; the supplier will be asked to clarify it.. One of: EXW, FCA, CPT, CIP, DAP, DPU, DDP, FAS, FOB, CFR, CIF
quoteBy string No The date we would like the quote by, YYYY-MM-DD. Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$. Format: date
drawingsStatus string No One of: none_yet, drawings_attached, sample_available, drawings_and_sample. Default: “none_yet”
dfmQuestions string No Design questions the founder wants the factory’s view on. Max length 2000
anonymised boolean No Keep the founder’s company and product out of the RFQ; the default and the recommended setting. Default: true
factoryIds string[] No Factory UUIDs or directory IDs (mfg-, int-, eng-) for held delivery drafts. Legacy names must resolve uniquely. When absent or empty the action shortlists from the directory.. Max items 5
matchLimit integer No Automatic shortlist size after ranking up to 12 matching directory records; explicit factoryIds retain all resolved selections. Minimum 1. Maximum 5. Default: 3
priority string No Buyer preference carried into the RFQ. Directory order is preserved because comparable price, quality and delivery evidence is unavailable.. One of: price, lead_time, quality
Input JSON schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"scope": {
"type": "string",
"enum": [
"pcba",
"box_build",
"mechanical_part",
"tooling",
"full_product",
"mixed"
]
},
"parts": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "What the part is, as the founder names it"
},
"process": {
"description": "The manufacturing process, when known",
"type": "string",
"enum": [
"pcba",
"injection_molding",
"cnc",
"sheet_metal",
"die_casting",
"wire_harness",
"battery",
"motor_actuator",
"display",
"camera",
"power_adapter",
"packaging",
"off_the_shelf",
"other"
]
},
"material": {
"type": "string",
"maxLength": 200
},
"finish": {
"type": "string",
"maxLength": 200
},
"quantityPerUnit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"notes": {
"type": "string",
"maxLength": 1000
}
},
"required": [
"name"
]
}
},
"quantities": {
"description": "Explicit alternative quantity bands. Omit to use the confirmed current project quantity. Planned pilots and forecasts never become quote bands automatically.",
"minItems": 1,
"maxItems": 6,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10000000
}
},
"incoterm": {
"description": "Requested trade term. Omit when unknown; the supplier will be asked to clarify it.",
"type": "string",
"enum": [
"EXW",
"FCA",
"CPT",
"CIP",
"DAP",
"DPU",
"DDP",
"FAS",
"FOB",
"CFR",
"CIF"
]
},
"quoteBy": {
"description": "The date we would like the quote by, YYYY-MM-DD",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"drawingsStatus": {
"default": "none_yet",
"type": "string",
"enum": [
"none_yet",
"drawings_attached",
"sample_available",
"drawings_and_sample"
]
},
"dfmQuestions": {
"description": "Design questions the founder wants the factory's view on",
"type": "string",
"maxLength": 2000
},
"anonymised": {
"default": true,
"description": "Keep the founder's company and product out of the RFQ; the default and the recommended setting",
"type": "boolean"
},
"factoryIds": {
"description": "Factory UUIDs or directory IDs (mfg-, int-, eng-) for held delivery drafts. Legacy names must resolve uniquely. When absent or empty the action shortlists from the directory.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"matchLimit": {
"default": 3,
"description": "Automatic shortlist size after ranking up to 12 matching directory records; explicit factoryIds retain all resolved selections",
"type": "integer",
"minimum": 1,
"maximum": 5
},
"priority": {
"description": "Buyer preference carried into the RFQ. Directory order is preserved because comparable price, quality and delivery evidence is unavailable.",
"type": "string",
"enum": [
"price",
"lead_time",
"quality"
]
}
},
"required": [
"scope",
"parts"
]
}

Prepare action.json with kind: "quote_request" and an input object matching the schema above.

Replace PROJECT_ID with your saved project ID. Use a new idempotency key for new work and retain it for an identical retry.

Terminal window
maglev actions request PROJECT_ID --input action.json \
--idempotency-key example-quote-request-001 --json

Read action.status, action.output, deliveries and any task in the response. Model actions can take several minutes. After a timeout, check saved actions before retrying. See request and recovery behavior.

The schema below describes action.output.result. The saved action.output envelope also contains draft: true and a note. It can be null while an action is running or after a failure; check the status before reading the result. Null or missing facts are unknown; preserve source references and open questions.

Field Type Required Details
shortlist object[] Yes
shortlist[].factoryId string If parent supplied
shortlist[].directoryId string,null If parent supplied
shortlist[].nameEn string If parent supplied
shortlist[].nameZh string,null If parent supplied
shortlist[].why string[] If parent supplied
unresolvedFactoryIds string[] Yes Ids the caller passed that matched no factory record
rfq object or null Yes
subjectZh string,null Yes
quantities number[] Yes
incoterm string,null Yes
intentContext object Yes
intentContext.projectVersion string If parent supplied
intentContext.intent object or null If parent supplied
intentContext.currentQuantity number,null If parent supplied
intentContext.quantitySource string If parent supplied One of: manufacturing_intent, project, explicit_quote_band, unknown
missingFields string[] Yes
reviewRequirements string[] Yes
priorityRanking “not_verified” Yes
priority string or null Yes
whatHappensNext string[] Yes
Output JSON schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"shortlist": {
"type": "array",
"items": {
"type": "object",
"properties": {
"factoryId": {
"type": "string"
},
"directoryId": {
"type": [
"string",
"null"
]
},
"nameEn": {
"type": "string"
},
"nameZh": {
"type": [
"string",
"null"
]
},
"why": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"factoryId",
"directoryId",
"nameEn",
"nameZh",
"why"
],
"additionalProperties": false
}
},
"unresolvedFactoryIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ids the caller passed that matched no factory record"
},
"rfq": {
"anyOf": [
{
"type": "object",
"properties": {
"en": {
"type": "string"
},
"zh": {
"type": "string"
}
},
"required": [
"en",
"zh"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"subjectZh": {
"type": [
"string",
"null"
]
},
"quantities": {
"type": "array",
"items": {
"type": "number"
}
},
"incoterm": {
"type": [
"string",
"null"
]
},
"intentContext": {
"type": "object",
"properties": {
"projectVersion": {
"type": "string"
},
"intent": {
"anyOf": [
{
"type": "object",
"properties": {
"schemaVersion": {
"type": "number",
"const": 1
},
"current": {
"type": "object",
"properties": {
"purpose": {
"type": "string",
"enum": [
"samples",
"pilot",
"production",
"unknown"
]
},
"quantity": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"configuration": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"revision": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"confirmation": {
"type": "string",
"enum": [
"unconfirmed",
"caller_confirmed"
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"purpose",
"quantity",
"unit",
"configuration",
"revision",
"confirmation",
"source"
],
"additionalProperties": false
},
"plannedPilot": {
"anyOf": [
{
"type": "object",
"properties": {
"quantity": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"period": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"quantity",
"unit",
"period",
"source"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"forecast": {
"anyOf": [
{
"type": "object",
"properties": {
"quantity": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"period": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"quantity",
"unit",
"period",
"source"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"requirements": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"location",
"quality",
"material",
"inspection",
"deadline",
"other"
]
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"strength": {
"type": "string",
"enum": [
"hard",
"preference"
]
},
"confirmation": {
"type": "string",
"enum": [
"unconfirmed",
"caller_confirmed"
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"detail",
"strength",
"confirmation",
"source"
],
"additionalProperties": false
}
},
"priorities": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"quality",
"price",
"lead_time",
"scale",
"location"
]
}
},
"prioritySource": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"schemaVersion",
"current",
"plannedPilot",
"forecast",
"requirements",
"priorities",
"prioritySource"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"currentQuantity": {
"type": [
"number",
"null"
]
},
"quantitySource": {
"type": "string",
"enum": [
"manufacturing_intent",
"project",
"explicit_quote_band",
"unknown"
]
}
},
"required": [
"projectVersion",
"intent",
"currentQuantity",
"quantitySource"
],
"additionalProperties": false
},
"missingFields": {
"type": "array",
"items": {
"type": "string"
}
},
"reviewRequirements": {
"type": "array",
"items": {
"type": "string"
}
},
"priorityRanking": {
"type": "string",
"const": "not_verified"
},
"priority": {
"anyOf": [
{
"type": "string",
"enum": [
"price",
"lead_time",
"quality"
]
},
{
"type": "null"
}
]
},
"whatHappensNext": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"shortlist",
"unresolvedFactoryIds",
"rfq",
"subjectZh",
"quantities",
"incoterm",
"intentContext",
"missingFields",
"reviewRequirements",
"priorityRanking",
"priority",
"whatHappensNext"
],
"additionalProperties": false
}