{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://smklog.com/developers/schemas/quote-response.schema.json", "title": "QuoteResponse", "type": "object", "description": "A priced parcel, or a parcel the service will not price with the reason spelled out in mode. Only mode parcel_label_ready carries rates.", "required": [ "mode", "rates" ], "properties": { "mode": { "type": "string", "enum": [ "parcel_label_ready", "not_a_parcel", "multiple_boxes", "international_unsupported_online", "parcel_restricted", "review", "parcel_rates_unavailable" ], "description": "parcel_label_ready with up to 5 rates; not_a_parcel (empty rates: SMKlog does not arrange pallet or freight shipments); multiple_boxes (empty rates: quote each box on its own); international_unsupported_online; parcel_restricted and review (empty rates with an explanation); parcel_rates_unavailable (no carrier answered)." }, "identified_product_title": { "type": "string", "description": "What the estimator understood the item to be" }, "quote_id": { "type": [ "string", "null" ], "pattern": "^q_[A-Za-z0-9-]{8,80}$", "description": "Handle to this quote, good for 15 minutes. Pass it to createPaymentSession as quote_id and that call reuses these rates instead of spending a second carrier call. Null when nothing was priced or the handle could not be stored; absent on answers that carry no rates." }, "package": { "$ref": "https://smklog.com/developers/schemas/package.schema.json" }, "packages": { "type": "array", "items": { "$ref": "https://smklog.com/developers/schemas/package.schema.json" }, "description": "Every box the estimate produced; one entry when the shipment is one parcel" }, "rates": { "type": "array", "maxItems": 5, "items": { "$ref": "https://smklog.com/developers/schemas/rate.schema.json" }, "description": "Up to five purchasable services, best value first" }, "dangerous_goods": { "type": [ "object", "null" ], "description": "Present when the item matched a dangerous-goods rule: the rule, the carrier restriction and what the human must confirm at checkout", "additionalProperties": true }, "sources": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "url": { "type": "string", "format": "uri" } } }, "description": "Product pages the estimate read, when a search informed it" }, "notice": { "type": [ "string", "null" ], "description": "Human-readable reason when mode is not parcel_label_ready" }, "source": { "type": "object", "description": "Where the package estimate and the rates came from", "properties": { "package": { "type": "string", "description": "manual, catalog, or the estimator that produced the box" }, "rates": { "type": "string", "description": "live_carrier for live carrier rating, not_a_parcel when nothing was priced" } }, "additionalProperties": true } }, "additionalProperties": true, "x-provenance": { "method": "published", "publisher": "SMKlog (SMKLOG-2022 LLC)", "source": "https://quote-api.smklog.com/openapi.json", "published": "2026-10-19" } }