openapi: 3.2.0 info: title: SMKlog Quote Operations API version: 1.4.0 summary: Live parcel rates from a US origin, a checkout handed to a human, and where that checkout stands. 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.' termsOfService: https://smklog.com/terms contact: name: SMKlog email: info@smklog.com url: https://smklog.com/developers/ x-publisher: SMKlog (SMKLOG-2022 LLC) servers: - url: https://quote-api.smklog.com description: 'Production. There is no sandbox host: quoting is free and read-only, so production is the place to try it.' security: - {} - clientCredentials: - quote tags: - name: Operations description: Liveness. paths: /status: get: operationId: status tags: - Operations summary: Liveness probe 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. security: - {} responses: '200': description: ok content: application/json: schema: $ref: '#/components/schemas/Liveness' example: ok: true service: smklog-quote-api version: 1.4.0 time: '2026-10-12T15:04:05.000Z' last_estimate_race: null components: schemas: Liveness: type: object description: 'The liveness answer: the service is up and which version is serving.' required: - ok - service - version - time properties: ok: type: boolean enum: - true service: type: string enum: - smklog-quote-api version: type: string description: Product version shared by the OpenAPI, the MCP server and the agent card time: type: string format: date-time description: Server time, ISO 8601 last_estimate_race: type: - object - 'null' description: 'Diagnostic: the latest estimator race outcome, null when none is recorded' additionalProperties: true securitySchemes: clientCredentials: type: oauth2 description: 'Optional. Every operation works without a token. A client that wants its own hourly rate-limit bucket holds OAuth 2.0 client_credentials issued by hand (registration instructions at https://smklog.com/auth.md) and sends the opaque bearer it gets from /oauth/token. Discovery: /.well-known/oauth-authorization-server.' flows: clientCredentials: tokenUrl: https://quote-api.smklog.com/oauth/token scopes: quote: Price parcels and prepare checkouts from a dedicated per-client rate-limit bucket externalDocs: description: 'Developer portal: docs, schemas, playground, rate limits, status' url: https://smklog.com/developers/ x-provenance: method: published publisher: SMKlog (SMKLOG-2022 LLC) source: https://quote-api.smklog.com/openapi.json published: '2026-10-12' x-mcp: transport: streamable-http endpoint: https://quote-api.smklog.com/mcp serverCard: https://quote-api.smklog.com/.well-known/mcp/server-card.json