QuoteResponse

Artificial IntelligenceManufacturingFabricationMarketplaceProcurement

Properties

Name Type Description
quote_id string
parent_quote_id stringnull
scenario string Comparison-scenario label this quote was refined under (see the refine body's `scenario`). Echoed on every read of a labeled child so pollers can bucket side-by-side offers by scenario. Absent on unla
process string
status string Quotes STREAM: "quoting" = the fastest vendors' offers are in this response and more are landing — re-read GET /v1/quotes/{id} (routing.expected_vendors says who is still pricing). "complete" = every
offers array Ranked best-first (price + speed) — unless an `order_by` applies, in which case they arrive already sorted by it (the echoed order_by says which).
order_by object The presentation ordering offers[] is currently sorted by (see the refine body's `order_by`), echoed on every read while one applies. Absent = the default recommended (price + speed) rank.
steps array The last few refine steps behind this quote, NEWEST FIRST (ALC-127) — steps[0] is the step that produced this quote (what undo_last_step takes back). Computed from stored quote states on every read, c
near_misses array Real bids that missed exactly one hard constraint, closest-first (capped at 6 per response) — shown for context, never mixed into offers[], never orderable as-is
routing object How the quote was dispatched (always includes expected_vendors; candidates/also_possible reflect auto-routing when `process` was omitted)
ufp_url string Public download of this quote's .ufp part container: a plain STORE-mode ZIP holding ufp.json (the quote's CURRENT spec + constraints, pretty-printed) and design/ (the design bytes verbatim)
design_url string Public download of the bare design file inside that container (the .step/.stl/artwork the network actually quotes) — 'save just the .step' without unzipping. Present alongside ufp_url.
notes array Why vendors/offers were excluded, vendor outages, etc.
created_at string
View JSON Schema on GitHub

JSON Schema

agenticfabricationnetwork-ai-quote-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/agenticfabricationnetwork-ai/json-schema/agenticfabricationnetwork-ai-quote-response-schema.json",
  "title": "QuoteResponse",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/agenticfabricationnetwork-ai-openapi.json#/components/schemas/QuoteResponse",
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string"
    },
    "parent_quote_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "scenario": {
      "type": "string",
      "description": "Comparison-scenario label this quote was refined under (see the refine body's `scenario`). Echoed on every read of a labeled child so pollers can bucket side-by-side offers by scenario. Absent on unlabeled quotes."
    },
    "process": {
      "type": "string",
      "enum": [
        "fdm_print",
        "resin_print",
        "powder_print",
        "metal_print",
        "elastomer_print",
        "cnc",
        "sheetmetal",
        "laser_cut",
        "decal",
        "print",
        "apparel"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "open",
        "quoting",
        "complete",
        "partial",
        "expired",
        "ordered"
      ],
      "description": "Quotes STREAM: \"quoting\" = the fastest vendors' offers are in this response and more are landing — re-read GET /v1/quotes/{id} (routing.expected_vendors says who is still pricing). \"complete\" = every vendor answered; \"partial\" = some lanes failed or were superseded but every offer shown is real and orderable."
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "quote_id": {
            "type": "string"
          },
          "vendor": {
            "type": "string"
          },
          "vendor_display_name": {
            "type": "string"
          },
          "vendor_logo_url": {
            "type": "string",
            "description": "The vendor's brand mark (small square image URL) for offer cards. Absent when AFN has no curated mark for the vendor — render the name alone, never a placeholder image"
          },
          "process": {
            "type": "string",
            "enum": [
              "fdm_print",
              "resin_print",
              "powder_print",
              "metal_print",
              "elastomer_print",
              "cnc",
              "sheetmetal",
              "laser_cut",
              "decal",
              "print",
              "apparel"
            ]
          },
          "spec_resolved": {
            "type": "object",
            "additionalProperties": true,
            "description": "Exact size/cut/material/color the vendor will make"
          },
          "quantity": {
            "type": "integer"
          },
          "requested_quantity": {
            "type": "integer",
            "description": "Present when the vendor's minimum order forced quantity above what was requested — e.g. asked for 1, minimum is 25"
          },
          "substitutions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string"
                },
                "requested": {
                  "type": "string"
                },
                "provided": {
                  "type": "string"
                }
              }
            },
            "description": "Present when this offer is a closest-match stand-in for an unsupported ask, e.g. {field:\"cut\", requested:\"triangle\", provided:\"contour\"}. The ask is logged for future vendor sourcing."
          },
          "min_order": {
            "type": "object",
            "properties": {
              "threshold_cents": {
                "type": "integer"
              },
              "detail": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "min_purchase",
                  "startup_fee"
                ],
                "description": "Which per-order charge shaped the price: \"min_purchase\" (default when absent) = the vendor floors the order value; \"startup_fee\" = a flat per-order fee added to every order and already inside the subtotal (threshold_cents is that fee)."
              }
            },
            "description": "Present when a vendor per-order charge shaped this price — an order-value floor (the subtotal is the vendor's per-order minimum, not a scaled per-part price; floors billed as a cart top-up on the shipping line count too) or a flat per-order startup fee (see kind). threshold_cents is the vendor-side amount in USD cents; detail is the vendor's published wording. Absent = the price scaled from the part."
          },
          "unit_price_cents": {
            "type": "integer",
            "description": "All-in unit price (payment-processing gross-up baked in — no separate fee line ever)"
          },
          "subtotal_cents": {
            "type": "integer"
          },
          "shipping_options": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "cost_cents": {
                  "type": "integer",
                  "description": "All-in shipping cost, USD cents (payment-processing gross-up baked in; free shipping stays 0)"
                },
                "eta_date": {
                  "type": "string",
                  "format": "date"
                },
                "eta_business_days": {
                  "type": "integer"
                }
              }
            }
          },
          "total_from_cents": {
            "type": "integer",
            "description": "Subtotal + cheapest shipping"
          },
          "preview": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "source": {
                "type": "string",
                "enum": [
                  "vendor_render",
                  "ufp_render"
                ]
              }
            },
            "description": "Product preview for these exact options. Resolves asynchronously — poll GET /v1/quotes/{id}."
          },
          "attributes": {
            "type": "object",
            "properties": {
              "outdoor_rated": {
                "type": "boolean"
              },
              "submersible": {
                "type": "boolean"
              },
              "high_temp": {
                "type": "boolean"
              },
              "food_safe": {
                "type": "boolean"
              }
            },
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "Only vendor-advertised claims appear; an absent flag means \"no claim\", never \"no\". OPEN vocabulary: beyond the named keys, any additional boolean key is a vendor-advertised claim (e.g. iso_13485: true) — same honest-claims rule"
          },
          "vendor_rating": {
            "type": "object",
            "properties": {
              "stars": {
                "type": "number"
              },
              "review_count": {
                "type": "integer",
                "description": "Honest count of reviews on file — 0 means no one has reviewed yet"
              },
              "facets": {
                "type": "object",
                "properties": {
                  "quality": {
                    "type": "number"
                  },
                  "timeliness": {
                    "type": "number"
                  },
                  "accuracy": {
                    "type": "number"
                  }
                },
                "description": "Facet averages over reviews that scored them"
              },
              "reliability": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "process": {
                      "type": "string",
                      "enum": [
                        "fdm_print",
                        "resin_print",
                        "powder_print",
                        "metal_print",
                        "elastomer_print",
                        "cnc",
                        "sheetmetal",
                        "laser_cut",
                        "decal",
                        "print",
                        "apparel"
                      ]
                    },
                    "material": {
                      "type": "string"
                    },
                    "orders": {
                      "type": "integer",
                      "description": "Honest sample size — completed orders for this process+material"
                    },
                    "stars": {
                      "type": "number"
                    },
                    "on_time_rate": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    }
                  }
                },
                "description": "Per-process/material track record (\"prints PC reliably\") — filterable via constraints.reliability"
              }
            },
            "description": "Vendor star rating built from verified-purchase reviews only (see POST /v1/orders/{id}/review)"
          },
          "price_basis": {
            "type": "string",
            "enum": [
              "vendor_api",
              "cached_matrix",
              "estimate"
            ]
          },
          "fulfillment": {
            "type": "string",
            "enum": [
              "connected",
              "not_connected"
            ],
            "description": "Whether UFP's checkout reaches this vendor. \"connected\" = a real paid order has gone end to end down this vendor+process lane. \"not_connected\" = the price is real but ordering isn't wired through yet; POST /v1/checkouts refuses it before any money moves."
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "description": "Ranked best-first (price + speed) — unless an `order_by` applies, in which case they arrive already sorted by it (the echoed order_by says which)."
    },
    "order_by": {
      "type": "object",
      "description": "The presentation ordering offers[] is currently sorted by (see the refine body's `order_by`), echoed on every read while one applies. Absent = the default recommended (price + speed) rank."
    },
    "steps": {
      "type": "array",
      "description": "The last few refine steps behind this quote, NEWEST FIRST (ALC-127) — steps[0] is the step that produced this quote (what undo_last_step takes back). Computed from stored quote states on every read, capped at 3. Absent on original quotes.",
      "items": {
        "type": "object",
        "required": [
          "quote_id",
          "parent_quote_id",
          "summary",
          "changes"
        ],
        "properties": {
          "quote_id": {
            "type": "string",
            "description": "The child quote this step produced"
          },
          "parent_quote_id": {
            "type": "string",
            "description": "The quote the step refined — its stored state is what undo restores"
          },
          "scenario": {
            "type": "string",
            "description": "Present when this step opened a comparison-scenario lane"
          },
          "summary": {
            "type": "string",
            "description": "Human one-liner for the step (\"added deadline 2026-09-05; material pla → asa\")"
          },
          "changes": {
            "type": "array",
            "description": "Field-level machine diff: constraint keys plus \"spec.<key>\" for spec deltas. `from` absent = the field wasn't set before; `to` absent = the step cleared it.",
            "items": {
              "type": "object",
              "required": [
                "field"
              ],
              "properties": {
                "field": {
                  "type": "string"
                },
                "from": {},
                "to": {}
              }
            }
          }
        }
      }
    },
    "near_misses": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "quote_id": {
            "type": "string"
          },
          "vendor": {
            "type": "string"
          },
          "vendor_display_name": {
            "type": "string"
          },
          "vendor_logo_url": {
            "type": "string",
            "description": "The vendor's brand mark (small square image URL) for offer cards. Absent when AFN has no curated mark for the vendor — render the name alone, never a placeholder image"
          },
          "process": {
            "type": "string",
            "enum": [
              "fdm_print",
              "resin_print",
              "powder_print",
              "metal_print",
              "elastomer_print",
              "cnc",
              "sheetmetal",
              "laser_cut",
              "decal",
              "print",
              "apparel"
            ]
          },
          "spec_resolved": {
            "type": "object",
            "additionalProperties": true,
            "description": "Exact size/cut/material/color the vendor will make"
          },
          "quantity": {
            "type": "integer"
          },
          "requested_quantity": {
            "type": "integer",
            "description": "Present when the vendor's minimum order forced quantity above what was requested — e.g. asked for 1, minimum is 25"
          },
          "substitutions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string"
                },
                "requested": {
                  "type": "string"
                },
                "provided": {
                  "type": "string"
                }
              }
            },
            "description": "Present when this offer is a closest-match stand-in for an unsupported ask, e.g. {field:\"cut\", requested:\"triangle\", provided:\"contour\"}. The ask is logged for future vendor sourcing."
          },
          "min_order": {
            "type": "object",
            "properties": {
              "threshold_cents": {
                "type": "integer"
              },
              "detail": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "min_purchase",
                  "startup_fee"
                ],
                "description": "Which per-order charge shaped the price: \"min_purchase\" (default when absent) = the vendor floors the order value; \"startup_fee\" = a flat per-order fee added to every order and already inside the subtotal (threshold_cents is that fee)."
              }
            },
            "description": "Present when a vendor per-order charge shaped this price — an order-value floor (the subtotal is the vendor's per-order minimum, not a scaled per-part price; floors billed as a cart top-up on the shipping line count too) or a flat per-order startup fee (see kind). threshold_cents is the vendor-side amount in USD cents; detail is the vendor's published wording. Absent = the price scaled from the part."
          },
          "unit_price_cents": {
            "type": "integer",
            "description": "All-in unit price (payment-processing gross-up baked in — no separate fee line ever)"
          },
          "subtotal_cents": {
            "type": "integer"
          },
          "shipping_options": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "cost_cents": {
                  "type": "integer",
                  "description": "All-in shipping cost, USD cents (payment-processing gross-up baked in; free shipping stays 0)"
                },
                "eta_date": {
                  "type": "string",
                  "format": "date"
                },
                "eta_business_days": {
                  "type": "integer"
                }
              }
            }
          },
          "total_from_cents": {
            "type": "integer",
            "description": "Subtotal + cheapest shipping"
          },
          "preview": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "source": {
                "type": "string",
                "enum": [
                  "vendor_render",
                  "ufp_render"
                ]
              }
            },
            "description": "Product preview for these exact options. Resolves asynchronously — poll GET /v1/quotes/{id}."
          },
          "attributes": {
            "type": "object",
            "properties": {
              "outdoor_rated": {
                "type": "boolean"
              },
              "submersible": {
                "type": "boolean"
              },
              "high_temp": {
                "type": "boolean"
              },
              "food_safe": {
                "type": "boolean"
              }
            },
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "Only vendor-advertised claims appear; an absent flag means \"no claim\", never \"no\". OPEN vocabulary: beyond the named keys, any additional boolean key is a vendor-advertised claim (e.g. iso_13485: true) — same honest-claims rule"
          },
          "vendor_rating": {
            "type": "object",
            "properties": {
              "stars": {
                "type": "number"
              },
              "review_count": {
                "type": "integer",
                "description": "Honest count of reviews on file — 0 means no one has reviewed yet"
              },
              "facets": {
                "type": "object",
                "properties": {
                  "quality": {
                    "type": "number"
                  },
                  "timeliness": {
                    "type": "number"
                  },
                  "accuracy": {
                    "type": "number"
                  }
                },
                "description": "Facet averages over reviews that scored them"
              },
              "reliability": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "process": {
                      "type": "string",
                      "enum": [
                        "fdm_print",
                        "resin_print",
                        "powder_print",
                        "metal_print",
                        "elastomer_print",
                        "cnc",
                        "sheetmetal",
                        "laser_cut",
                        "decal",
                        "print",
                        "apparel"
                      ]
                    },
                    "material": {
                      "type": "string"
                    },
                    "orders": {
                      "type": "integer",
                      "description": "Honest sample size — completed orders for this process+material"
                    },
                    "stars": {
                      "type": "number"
                    },
                    "on_time_rate": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    }
                  }
                },
                "description": "Per-process/material track record (\"prints PC reliably\") — filterable via constraints.reliability"
              }
            },
            "description": "Vendor star rating built from verified-purchase reviews only (see POST /v1/orders/{id}/review)"
          },
          "price_basis": {
            "type": "string",
            "enum": [
              "vendor_api",
              "cached_matrix",
              "estimate"
            ]
          },
          "fulfillment": {
            "type": "string",
            "enum": [
              "connected",
              "not_connected"
            ],
            "description": "Whether UFP's checkout reaches this vendor. \"connected\" = a real paid order has gone end to end down this vendor+process lane. \"not_connected\" = the price is real but ordering isn't wired through yet; POST /v1/checkouts refuses it before any money moves."
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "excluded_by": {
            "type": "object",
            "required": [
              "reason",
              "detail"
            ],
            "properties": {
              "reason": {
                "type": "string",
                "enum": [
                  "attribute",
                  "deadline",
                  "budget"
                ]
              },
              "field": {
                "type": "string",
                "description": "The constraint field/demand key that excluded it"
              },
              "requested": {
                "type": "string",
                "description": "What the buyer asked for (stringified)"
              },
              "detail": {
                "type": "string",
                "description": "Human wording — identical to the quote note"
              },
              "earliest_eta": {
                "type": "string",
                "format": "date",
                "description": "Deadline misses: soonest the part could actually arrive"
              },
              "days_late": {
                "type": "integer",
                "description": "Deadline misses: calendar days earliest_eta lands past the deadline"
              },
              "cents_over": {
                "type": "integer",
                "description": "Budget misses: cheapest all-in total minus max_budget_cents"
              }
            },
            "description": "Why this bid sits outside the constraints, with machine fields"
          }
        },
        "description": "A real vendor bid that failed exactly ONE stated constraint — context only, never orderable (checkout refuses near-miss ids). Relaxing the named constraint via a refine converts it into an ordinary offer."
      },
      "description": "Real bids that missed exactly one hard constraint, closest-first (capped at 6 per response) — shown for context, never mixed into offers[], never orderable as-is"
    },
    "routing": {
      "type": "object",
      "properties": {
        "detected_file_kind": {
          "type": "string",
          "description": "What AFN detected the uploaded file to be (artwork, stl, step, dxf)"
        },
        "candidates": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "fdm_print",
              "resin_print",
              "powder_print",
              "metal_print",
              "elastomer_print",
              "cnc",
              "sheetmetal",
              "laser_cut",
              "decal",
              "print",
              "apparel"
            ]
          },
          "description": "Processes quoted live in this response"
        },
        "also_possible": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "process": {
                "type": "string"
              },
              "reason": {
                "type": "string"
              }
            }
          },
          "description": "Processes that could make this part but have no vendor on AFN yet — each is logged as a demand signal for vendor sourcing"
        },
        "expected_vendors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "vendor": {
                "type": "string"
              },
              "process": {
                "type": "string",
                "enum": [
                  "fdm_print",
                  "resin_print",
                  "powder_print",
                  "metal_print",
                  "elastomer_print",
                  "cnc",
                  "sheetmetal",
                  "laser_cut",
                  "decal",
                  "print",
                  "apparel"
                ]
              },
              "logo_url": {
                "type": "string",
                "description": "The vendor's brand mark for the placeholder tile (same sourcing as offer.vendor_logo_url); absent when uncurated"
              },
              "expected_wait_s": {
                "type": "number",
                "description": "Expected answer time in seconds: the lane's p90 real answer latency over the last 14 days (plus queue delay behind the dispatch pool), clamped 3-75s — sized so the answer lands before a bar paced with it ends, nearly always; falls back to the process-pooled p90 (all vendors on the process), then coarse 2/8/20s health-probe buckets. Pace loading animations with it — never print it as a promise or complete a bar before the offer lands"
              }
            }
          },
          "description": "Who is STILL PRICING on this quote — live per read: lanes that settled (offers landed, no bid, failed, or superseded) drop out on the next read. Render placeholder tiles from it while status is \"quoting\". Health-down vendors are never dispatched, so never listed."
        },
        "viewer_mesh_url": {
          "type": "string",
          "description": "Face-classified viewer mesh for mesh/BREP uploads (stl/step/iges): a binary AFVM v1 blob — magic \"AFVM\", version, JSON header (bbox, classified faces: planes/cylinders with diameter+axis, holes), then little-endian Float32 positions, Uint32 indices, and Uint32 face-id-per-triangle. Derives lazily, so poll until 200 (the URL serves CORS on both 200 and 404). Absent for kinds with no mesh representation."
        }
      },
      "description": "How the quote was dispatched (always includes expected_vendors; candidates/also_possible reflect auto-routing when `process` was omitted)"
    },
    "ufp_url": {
      "type": "string",
      "description": "Public download of this quote's .ufp part container: a plain STORE-mode ZIP holding ufp.json (the quote's CURRENT spec + constraints, pretty-printed) and design/<filename> (the design bytes verbatim) — the all-in-one part file. Re-uploadable anywhere a design file is accepted: its saved intent applies automatically as fill-if-absent defaults. Stable per quote id (refines mint child ids). Present whenever the quote has a design file."
    },
    "design_url": {
      "type": "string",
      "description": "Public download of the bare design file inside that container (the .step/.stl/artwork the network actually quotes) — 'save just the .step' without unzipping. Present alongside ufp_url."
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Why vendors/offers were excluded, vendor outages, etc."
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/agenticfabricationnetwork-ai-quote-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.