{
  "info": {
    "name": "SMKlog Quote API 1.4.0",
    "description": "Live parcel rates from USPS, UPS, FedEx and DHL Express for a single shipment sent from a US origin: inside the US, or to Canada, the UK, Germany or Australia. Describe the item in plain words and the packed box size and weight are estimated server-side; supply exact dimensions and weight to skip the estimate. No account and no key. Rate limited per client (about 80 quote requests per hour); quotes cost real money to produce, so cache on your side and do not poll. Buying a label happens on smklog.com — this API prices, it does not sell.\n\nGenerated by SMKlog from the live OpenAPI document (https://quote-api.smklog.com/openapi.json) on 2026-10-12. No key needed: every request runs as-is.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://quote-api.smklog.com"
    }
  ],
  "item": [
    {
      "name": "Price one parcel from a US origin across USPS, UPS and FedEx (plus DHL Express to Germany and Australia)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/quote",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "quote"
          ],
          "variable": []
        },
        "description": "Prices one shipment live against the carriers for the lane. Name the item in plain words and the packed box is estimated server-side (the estimate, its confidence and its assumptions come back in package); send length_cm, width_cm, height_cm, weight_kg and package_source \"manual\" to price an exact box instead. Up to five purchasable services come back, each a checkout total with the SMKlog fee inside and the carrier counter price beside it. One call per shipment: every call spends a live carrier rating.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"product\": \"Yamaha FG800 acoustic guitar in a hard case\",\n  \"quantity\": 1,\n  \"from_postal_code\": \"07102\",\n  \"to_postal_code\": \"30303\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "200 Priced (mode parcel_label_ready, up to 5 rates), not a parcel (mode not_a_parcel",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quote",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quote"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product\": \"Yamaha FG800 acoustic guitar in a hard case\",\n  \"quantity\": 1,\n  \"from_postal_code\": \"07102\",\n  \"to_postal_code\": \"30303\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"mode\": \"parcel_label_ready\",\n  \"identified_product_title\": \"Yamaha FG800 acoustic guitar in a hard case\",\n  \"package\": {\n    \"quantity\": 1,\n    \"length_cm\": 112,\n    \"width_cm\": 48,\n    \"height_cm\": 20,\n    \"weight_kg\": 6.4,\n    \"description\": \"Hard case in a single carton with padding\",\n    \"confidence\": \"medium\",\n    \"assumptions\": [\n      \"Hard case packed in one carton with about 5 cm of padding on every side\"\n    ]\n  },\n  \"rates\": [\n    {\n      \"carrier\": \"USPS\",\n      \"service\": \"Ground Advantage\",\n      \"service_code\": \"GroundAdvantage\",\n      \"amount\": 38.42,\n      \"retail_amount\": 46.95,\n      \"delivery_days\": 4,\n      \"delivery_window\": \"2-5 business days\",\n      \"delivery_estimated_date\": null,\n      \"currency\": \"USD\"\n    },\n    {\n      \"carrier\": \"UPS\",\n      \"service\": \"Ground\",\n      \"service_code\": \"Ground\",\n      \"amount\": 41.1,\n      \"retail_amount\": 67.35,\n      \"delivery_days\": 3,\n      \"delivery_window\": null,\n      \"delivery_estimated_date\": \"2026-10-16\",\n      \"currency\": \"USD\"\n    }\n  ],\n  \"dangerous_goods\": null,\n  \"source\": {\n    \"package\": \"ai_estimate\",\n    \"rates\": \"live_carrier\"\n  }\n}"
        },
        {
          "name": "400 invalid_json, invalid_request, missing_required_fields (with a missing array), p",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quote",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quote"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product\": \"Yamaha FG800 acoustic guitar in a hard case\",\n  \"quantity\": 1,\n  \"from_postal_code\": \"07102\",\n  \"to_postal_code\": \"30303\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Error",
          "code": 400,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"missing_required_fields\",\n  \"missing\": [\n    \"to_postal_code\"\n  ]\n}"
        },
        {
          "name": "422 product_url_not_detected — the page did not identify an item",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quote",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quote"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product\": \"Yamaha FG800 acoustic guitar in a hard case\",\n  \"quantity\": 1,\n  \"from_postal_code\": \"07102\",\n  \"to_postal_code\": \"30303\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Error",
          "code": 422,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"product_url_not_detected\",\n  \"message\": \"Could not identify the product from this URL. Enter the product name or package dimensions manually.\",\n  \"missing\": [\n    \"product\"\n  ]\n}"
        },
        {
          "name": "429 rate_limited",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/quote",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "quote"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product\": \"Yamaha FG800 acoustic guitar in a hard case\",\n  \"quantity\": 1,\n  \"from_postal_code\": \"07102\",\n  \"to_postal_code\": \"30303\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Error",
          "code": 429,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"rate_limited\",\n  \"message\": \"Too many Smart Quote API requests from this client. Try again later.\"\n}"
        }
      ]
    },
    {
      "name": "Create a payment session for one parcel label (MPP intent \"session\")",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/agent/checkout-session",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "agent",
            "checkout-session"
          ],
          "variable": []
        },
        "description": "Prices the shipment live, anchors the amount to one service, and returns a handoff URL opening the SMKlog checkout prefilled with the shipment. The human confirms the contents certification and the carrier-adjustment consent there and pays on Stripe hosted checkout. This operation never charges: the agent prepares, the human pays. Pass the quote_id from getParcelQuote and the session reuses that quote instead of spending a second carrier call.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"quote_id\": \"q_8f3c2e1a4b7d\",\n  \"service\": \"USPS Ground Advantage\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "200 The session: intent, method, amount, currency, service, handoff_url, session_id,",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agent/checkout-session",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agent",
                "checkout-session"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"quote_id\": \"q_8f3c2e1a4b7d\",\n  \"service\": \"USPS Ground Advantage\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"intent\": \"session\",\n  \"session_id\": \"as_3f9c1b2e-7d64-4a8e-9c0f-5b2d1e8a7c33\",\n  \"method\": [\n    \"stripe\",\n    \"card\"\n  ],\n  \"amount\": 38.42,\n  \"currency\": \"USD\",\n  \"service\": \"USPS Ground Advantage\",\n  \"handoff_url\": \"https://smklog.com/assets/calculator?product=Yamaha+FG800+acoustic+guitar+in+a+hard+case&from_postal_code=07102&to_postal_code=30303&agent_session=as_3f9c1b2e-7d64-4a8e-9c0f-5b2d1e8a7c33\",\n  \"identified_product_title\": \"Yamaha FG800 acoustic guitar in a hard case\",\n  \"quote_reused\": true,\n  \"note\": \"Live quote at this moment, not a hold. The human confirms the shipping consents and pays on the checkout page. Keep session_id: get_checkout_status reports when the human has paid and when the label exists.\"\n}"
        },
        {
          "name": "400 invalid_json or invalid_request — the body is not the documented shape",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agent/checkout-session",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agent",
                "checkout-session"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"quote_id\": \"q_8f3c2e1a4b7d\",\n  \"service\": \"USPS Ground Advantage\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Error",
          "code": 400,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"invalid_request\",\n  \"message\": \"JSON object body required.\"\n}"
        },
        {
          "name": "422 session_failed — unpriceable, restricted, not a parcel, or more than one box",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agent/checkout-session",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agent",
                "checkout-session"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"quote_id\": \"q_8f3c2e1a4b7d\",\n  \"service\": \"USPS Ground Advantage\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Error",
          "code": 422,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"session_failed\",\n  \"message\": \"This shipment is past parcel limits; SMKlog sells parcel labels only.\"\n}"
        },
        {
          "name": "429 rate_limited",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agent/checkout-session",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agent",
                "checkout-session"
              ],
              "variable": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"quote_id\": \"q_8f3c2e1a4b7d\",\n  \"service\": \"USPS Ground Advantage\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Error",
          "code": 429,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"rate_limited\",\n  \"message\": \"Too many Smart Quote API requests from this client. Try again later.\"\n}"
        }
      ]
    },
    {
      "name": "Read where a payment session stands",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/agent/checkout-session/:session_id",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "agent",
            "checkout-session",
            ":session_id"
          ],
          "variable": [
            {
              "key": "session_id",
              "value": "as_3f9c1b2e-7d64-4a8e-9c0f-5b2d1e8a7c33",
              "description": "The session_id returned by createPaymentSession."
            }
          ]
        },
        "description": "The stage of the checkout a payment session led to: awaiting_checkout, checkout_started, paid, label_ready (with the tracking number), delivered or refunded. Reads SMKlog order records only, no carrier call. Sessions live 30 days; an unknown or expired id answers 404 session_not_found. The answer never carries names, addresses or emails."
      },
      "response": [
        {
          "name": "200 session_id, status, created_at, expires_at, amount, currency, service, checkout ",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agent/checkout-session/:session_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agent",
                "checkout-session",
                ":session_id"
              ],
              "variable": [
                {
                  "key": "session_id",
                  "value": "as_3f9c1b2e-7d64-4a8e-9c0f-5b2d1e8a7c33",
                  "description": "The session_id returned by createPaymentSession."
                }
              ]
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"session_id\": \"as_3f9c1b2e-7d64-4a8e-9c0f-5b2d1e8a7c33\",\n  \"status\": \"label_ready\",\n  \"created_at\": \"2026-10-12T15:04:05.000Z\",\n  \"expires_at\": \"2026-11-11T15:04:05.000Z\",\n  \"amount\": 38.42,\n  \"currency\": \"USD\",\n  \"service\": \"USPS Ground Advantage\",\n  \"quote_reused\": true,\n  \"checkout\": {\n    \"order_id\": \"c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f\",\n    \"started_at\": \"2026-10-12T15:09:41.000Z\",\n    \"paid\": true,\n    \"label_ready\": true,\n    \"refunded\": false,\n    \"carrier\": \"USPS\",\n    \"service\": \"Ground Advantage\",\n    \"tracking_number\": \"9400100000000000000000\",\n    \"tracking_status\": \"in_transit\",\n    \"estimated_delivery\": \"2026-10-16\",\n    \"delivered_at\": null\n  },\n  \"next\": \"Label bought. Pass tracking_number to track_parcel for scan events.\"\n}"
        },
        {
          "name": "404 session_not_found — unknown, malformed or expired session_id",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agent/checkout-session/:session_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agent",
                "checkout-session",
                ":session_id"
              ],
              "variable": [
                {
                  "key": "session_id",
                  "value": "as_3f9c1b2e-7d64-4a8e-9c0f-5b2d1e8a7c33",
                  "description": "The session_id returned by createPaymentSession."
                }
              ]
            }
          },
          "status": "Error",
          "code": 404,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"session_not_found\",\n  \"message\": \"No payment session with this id. Sessions answer for 30 days.\"\n}"
        },
        {
          "name": "429 rate_limited — 60 checks an hour per client",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agent/checkout-session/:session_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agent",
                "checkout-session",
                ":session_id"
              ],
              "variable": [
                {
                  "key": "session_id",
                  "value": "as_3f9c1b2e-7d64-4a8e-9c0f-5b2d1e8a7c33",
                  "description": "The session_id returned by createPaymentSession."
                }
              ]
            }
          },
          "status": "Error",
          "code": 429,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"error\": \"rate_limited\",\n  \"message\": \"Too many Smart Quote API requests from this client. Try again later.\"\n}"
        }
      ]
    },
    {
      "name": "Liveness probe",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/status",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "status"
          ],
          "variable": []
        },
        "description": "Answers 200 with the serving version while the service is up. Linked from the RFC 9727 api-catalog as the status relation; it carries no incident history — the status page at https://smklog.com/developers/status does."
      },
      "response": [
        {
          "name": "200 ok",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "status"
              ],
              "variable": []
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"ok\": true,\n  \"service\": \"smklog-quote-api\",\n  \"version\": \"1.4.0\",\n  \"time\": \"2026-10-12T15:04:05.000Z\",\n  \"last_estimate_race\": null\n}"
        }
      ]
    }
  ]
}
