overlay: 1.0.0 info: title: Sendle Products & Quoting API — API Evangelist Overlay version: 1.0.0 description: 'API Evangelist enhancements over openapi/sendle-products-api-openapi.yml. This overlay never mutates the original: it records the retirement of the API, corrects the info.title that the tag-split step overwrote, and attaches the runtime semantics (idempotency, reversibility, rate limits, error format, pagination) that the contract itself leaves undeclared. Every value is grounded in the captured spec or in a probe recorded in this repository.' extends: openapi/sendle-products-api-openapi.yml x-generated: '2026-08-26' x-method: generated actions: - target: $.info description: Correct the title, which the tag-split step overwrote with the manifests title, and mark the contract retired. update: title: Sendle Products & Quoting API x-lifecycle-state: retired x-retired-on: '2026-01-11' x-retirement-note: RETIRED — this API can no longer be called. Sendle ceased operations on 2026-01-11 and the company entered liquidation; api.sendle.com and sandbox.sendle.com were withdrawn from DNS and returned NXDOMAIN when probed on 2026-08-26 against four independent resolvers and the sendle.com authoritative nameserver. This overlay marks the contract as archival so no tooling generates an integration against it. - target: $.servers[*] description: Record that every declared server host no longer resolves. update: x-host-resolves: false x-probed: '2026-08-26' x-probe-result: NXDOMAIN - target: $.info description: Point at the API Evangelist artifacts that carry the runtime semantics this contract does not declare. update: x-apievangelist-artifacts: conventions: conventions/sendle-conventions.yml errors: errors/sendle-problem-types.yml lifecycle: lifecycle/sendle-lifecycle.yml data-model: data-model/sendle-data-model.yml conformance: conformance/sendle-conformance.yml authentication: authentication/sendle-authentication.yml rate-limits: rate-limits/sendle-rate-limits.yml - target: $.paths['/quote'].get description: Name the replacement operations for the one deprecated operation in the API; the contract flags it deprecated but declares no successor and no sunset date. update: x-replaced-by: - getProducts - postProducts x-sunset-declared: false - target: $.components.schemas.ProductsRequest description: Note that quotes are ephemeral and cannot be referenced later. update: x-quote-persistence: none x-quote-carrier-field: product_code