> For the complete documentation index, see [llms.txt](https://agpt.co/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://agpt.co/docs/integrations/block-integrations/quotes.md).

# Rmfg Quotes

Blocks that price a configured design. Quoting runs DFM as well, so one call returns both price and manufacturability. A quote is immutable and never includes tax or a shipping selection; carts add those.

## RMFG Create Quote

### What it is

Gets a live price from RMFG, a manufacturer that laser-cuts, bends and ships real sheet-metal and tube parts, plus manufacturability findings. Quote with the stocked material closest to the part's detected thickness and report any mismatch; quote exactly the quantity the customer asked for, and every unique part of a project at its required quantity; a requires\_input result means a selection is missing, blocked means a finding must be resolved or accepted

### How it works

Builds an `items[]` basket from the inputs (one design with a quantity and configuration, plus any `additional_items`) and posts it to `/v1/quotes` with an `Idempotency-Key`. The `material_id` shortcut becomes `defaults.material_id`. `quantity` is completed designs and must be at least 1, and `quantity_options` takes at most ten entries, each at least 1; both are checked before any request is sent. RMFG holds the connection briefly and the block then polls until pricing leaves `processing`, bounded by `timeout_seconds`. Amounts are integer USD cents, reported as `0` until priced; with `ship_to` set the quote also lists `shipping_options` a cart can select.

`requires_input` and `blocked` are statuses, not errors: `requirements` says what is missing and `dfm_issues` what blocks manufacture, so the graph can fix the configuration and quote again. A quote RMFG marks `failed` comes back with that status and its error object on `quote`; HTTP errors are reported as `RMFG <code>: <message>` and an exhausted wait as `Timed out after Ns waiting for quote <id>`.

### Inputs

| Input                 | Description                                                                                                                                                                                                                                              | Type                       | Required |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | -------- |
| design\_id            | Design ID from Analyze Design.                                                                                                                                                                                                                           | str                        | Yes      |
| quantity              | Completed units of the design: exactly the number the customer asked for (one part means 1). Repeated parts in an assembly are multiplied by their instance count automatically.                                                                         | int                        | No       |
| material\_id          | Sheet-metal stock for every sheet part, from List Materials. Required for a price: pick the stocked thickness closest to the part's detected thickness and mention the difference. Leave empty only for tube-only designs or when configuration sets it. | str                        | No       |
| configuration         | Full manufacturing configuration: per-part material, tube profile, finish, powder coat, hole operations, welds and accepted risks. A non-empty material\_id above overrides defaults.material\_id.                                                       | ManufacturingConfiguration | No       |
| quantity\_options     | Up to ten other quantities to price alongside quantity, only when the customer wants a comparison; the main quantity stays as requested.                                                                                                                 | List\[int]                 | No       |
| additional\_items     | Further configured designs to price in the same basket.                                                                                                                                                                                                  | List\[QuoteItemRequest]    | No       |
| client\_reference\_id | Your own reference for this item, echoed back on the result.                                                                                                                                                                                             | str                        | No       |
| ship\_to              | Destination, to include delivery options in the quote.                                                                                                                                                                                                   | ShipTo                     | No       |
| wait\_for\_ready      | Poll until pricing finishes instead of returning at once.                                                                                                                                                                                                | bool                       | No       |
| timeout\_seconds      | How long to wait for pricing when wait\_for\_ready is on.                                                                                                                                                                                                | int                        | No       |
| idempotency\_key      | Stable key for identical retries; defaults to the node execution ID.                                                                                                                                                                                     | str                        | No       |

### Outputs

| Output                  | Description                                                       | Type                                                                               |
| ----------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| error                   | Error message if the request failed                               | str                                                                                |
| quote                   | The full quote                                                    | Quote                                                                              |
| quote\_id               | Quote ID                                                          | str                                                                                |
| status                  | processing, requires\_input, ready, blocked, expired or failed    | "processing" \| "requires\_input" \| "ready" \| "blocked" \| "expired" \| "failed" |
| is\_ready               | True when the quote can be ordered                                | bool                                                                               |
| amount\_total\_cents    | Total in USD cents (shipping and tax excluded until a cart)       | int                                                                                |
| amount\_subtotal\_cents | Sum of items in USD cents                                         | int                                                                                |
| unit\_amount\_cents     | Price per completed unit of the first design, in USD cents        | int                                                                                |
| items                   | Per-design pricing, line items and DFM findings                   | List\[QuotedDesign]                                                                |
| quantity\_options       | Prices at the other quantities requested, for the first design    | List\[QuantityOption]                                                              |
| shipping\_options       | Delivery choices when ship\_to was given; pick an id for the cart | List\[ShippingOption]                                                              |
| requirements            | Selections or decisions still needed before ordering              | List\[Requirement]                                                                 |
| dfm\_issues             | Manufacturability findings across every design                    | List\[DFMIssue]                                                                    |

### Possible use case

**Quantity Comparison**: Quote 10 units with `quantity_options` \[1, 25] and report the unit price at each quantity.

**Multi-Part Project**: Price every unique part of an assembly in one basket, each at its required quantity.

**Delivery Estimate**: Include `ship_to` to get shipping options and lead times alongside the price.

***

## RMFG Get Quote

### What it is

Fetches an RMFG quote by ID

### How it works

Fetches `/v1/quotes/{id}` and, with `wait_for_ready` on, polls until the quote is no longer `processing`, bounded by `timeout_seconds`. Outputs match Create Quote.

An unknown ID is reported as `RMFG not_found_error: <message>`; a quote past its `expires_at` returns status `expired` and should be re-created rather than ordered. Amount outputs are `0` while the quote is still processing.

### Inputs

| Input            | Description                                               | Type | Required |
| ---------------- | --------------------------------------------------------- | ---- | -------- |
| quote\_id        | Quote ID from Create Quote                                | str  | Yes      |
| wait\_for\_ready | Poll until pricing finishes instead of returning at once. | bool | No       |
| timeout\_seconds | How long to wait for pricing when wait\_for\_ready is on. | int  | No       |

### Outputs

| Output                  | Description                                                       | Type                                                                               |
| ----------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| error                   | Error message if the request failed                               | str                                                                                |
| quote                   | The full quote                                                    | Quote                                                                              |
| quote\_id               | Quote ID                                                          | str                                                                                |
| status                  | processing, requires\_input, ready, blocked, expired or failed    | "processing" \| "requires\_input" \| "ready" \| "blocked" \| "expired" \| "failed" |
| is\_ready               | True when the quote can be ordered                                | bool                                                                               |
| amount\_total\_cents    | Total in USD cents (shipping and tax excluded until a cart)       | int                                                                                |
| amount\_subtotal\_cents | Sum of items in USD cents                                         | int                                                                                |
| unit\_amount\_cents     | Price per completed unit of the first design, in USD cents        | int                                                                                |
| items                   | Per-design pricing, line items and DFM findings                   | List\[QuotedDesign]                                                                |
| quantity\_options       | Prices at the other quantities requested, for the first design    | List\[QuantityOption]                                                              |
| shipping\_options       | Delivery choices when ship\_to was given; pick an id for the cart | List\[ShippingOption]                                                              |
| requirements            | Selections or decisions still needed before ordering              | List\[Requirement]                                                                 |
| dfm\_issues             | Manufacturability findings across every design                    | List\[DFMIssue]                                                                    |

### Possible use case

**Resume a Long Quote**: Read a large assembly quote by ID after an earlier run timed out.

**Webhook Follow-Up**: Load the finished quote when a `quote.ready` event arrives.

**Expiry Check**: Confirm a saved quote is still `ready` before turning it into a cart.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://agpt.co/docs/integrations/block-integrations/quotes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
