Watchmaker Genomics · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Watchmaker Genomics Storefront REST API

9 actions 9 updates documentation
Generated by API Evangelist Written by API Evangelist tooling for Watchmaker Genomics's API. It is a proposal applied on top of the contract, not a document Watchmaker Genomics publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-consequencedescriptionx-dry-runx-notetitlex-operatorx-operator-urlx-platform

Targets 8

$.info
$
$.securityDefinitions.api_key
$.paths
$.paths['/V1/guest-carts/{cartId}/order'].put
$.paths['/V1/guest-carts/{cartId}/estimate-shipping-methods'].post
$.paths['/V1/guest-carts/{cartId}/totals-information'].post
$.paths['/V1/customers'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Watchmaker Genomics Storefront REST API
  version: 1.0.0
x-provenance:
  generated: '2026-09-04'
  method: generated
  source: openapi/watchmaker-genomics-commerce-rest-swagger.json
  note: >-
    Non-destructive enhancements over the Swagger 2.0 document Watchmaker Genomics' storefront
    self-serves at /rest/all/schema?services=all. The original is preserved verbatim and is never
    mutated. Every action below records something observed on the live host or read from a sibling
    artifact in this repo — a missing description, a real base URL, an undeclared 401, an
    irreversibility fact — and nothing invents API behaviour.
actions:
- target: $.info
  description: >-
    The published document carries only {version: "2.4", title: "Magento Enterprise"} — the
    platform's identity, not the operator's. Name the operator and give the contract a description
    and a contact, which contract_quality's info_complete check reads.
  update:
    title: Watchmaker Genomics Storefront REST API
    description: >-
      The Adobe Commerce (Magento 2.4) REST API as deployed by Watchmaker Genomics on its own host,
      www.watchmakergenomics.com. Self-described at /rest/all/schema?services=all. The anonymous
      slice — directory, guest carts, checkout estimation and order placement, customer account
      creation, gift cards, in-store pickup, search and the Magefan blog — answers without a
      credential; every other operation returns 401 naming the Magento ACL resource it needs.
      Watchmaker Genomics publishes no developer documentation for this surface; it exists because
      the platform serves it.
    x-operator: Watchmaker Genomics
    x-operator-url: https://www.watchmakergenomics.com/
    x-platform: Adobe Commerce (Magento 2.4)
    x-platform-note: >-
      info.title in the original reads "Magento Enterprise" because the document is generated by
      the platform. Ownership was verified from the deployment, not the title — the schema's own
      host field is www.watchmakergenomics.com, the WSDL targetNamespace is
      https://www.watchmakergenomics.com/soap/all, and a live GraphQL storeConfig query returns
      base_url https://www.watchmakergenomics.com/ over Watchmaker's own SKUs.
    contact:
      name: Watchmaker Genomics Support
      email: support@watchmakergenomics.com
      url: https://www.watchmakergenomics.com/technical-support
- target: $
  description: Record the callable base and the store-scope variants observed to resolve.
  update:
    x-base-url: https://www.watchmakergenomics.com/rest/all
    x-store-scopes:
    - {scope: all, path: /rest/all, note: All store views. Verified 200.}
    - {scope: default, path: /rest/default, note: Default store view. Verified 200, identical schema.}
    x-schema-source: https://www.watchmakergenomics.com/rest/all/schema?services=all
    x-verified-anonymous:
    - {operationId: GetV1DirectoryCurrency, url: 'https://www.watchmakergenomics.com/rest/V1/directory/currency', status: 200, fetched: '2026-09-04'}
- target: $.securityDefinitions.api_key
  description: >-
    The original declares the scheme but says nothing about how a caller obtains a key, and the
    document never applies security to any operation.
  update:
    description: >-
      Magento integration access token. Also accepted as `Authorization: Bearer <token>`. Tokens
      are issued by POST /V1/integration/admin/token or POST /V1/integration/customer/token, both
      of which are in this document — but note that the storefront's own account routes
      (/customer/account/create/, /customer/account/login/) return 404, so no member of the public
      can obtain one. The credentialed surface is effectively closed.
- target: $.paths
  description: >-
    401 is returned in practice and declared nowhere in the 70-operation surface. Record it at the
    document level so a consumer reading the contract is not surprised by it.
  update:
    x-undeclared-responses:
    - status: 401
      schema: '#/definitions/error-response'
      evidence:
        url: https://www.watchmakergenomics.com/rest/V1/store/storeConfigs
        status: 401
        body: '{"message":"The consumer isn''t authorized to access %resources.","parameters":{"resources":"Magento_Backend::store"}}'
      note: >-
        Returned by every operation outside the anonymous slice. parameters.resources names the
        required ACL resource. See errors/watchmaker-genomics-problem-types.yml.
- target: $.paths['/V1/guest-carts/{cartId}/order'].put
  description: >-
    The single most consequential operation on the surface, and the contract says nothing about
    whether it can be undone. Attach the irreversibility fact, read live from the store's own
    configuration.
  update:
    x-consequence: irreversible
    x-reversibility:
      grade: documented
      reversal_operation: 'GraphQL cancelOrder (this REST surface has no cancel operation at all)'
      available: false
      window: null
      evidence:
        url: https://www.watchmakergenomics.com/graphql
        query: '{storeConfig{order_cancellation_enabled returns_enabled}}'
        result: {order_cancellation_enabled: false, returns_enabled: disabled}
        fetched: '2026-09-04'
      note: >-
        Order cancellation and returns are both switched OFF on this store. An agent placing an
        order here cannot take it back programmatically. Recovery is human:
        orders@watchmakergenomics.com or +1-720-543-2174.
    x-escalation: human-approval-required
- target: $.paths['/V1/guest-carts/{cartId}/estimate-shipping-methods'].post
  description: Mark the genuine dry-run path so an agent can rehearse before committing.
  update:
    x-consequence: read-only
    x-dry-run: true
    x-note: >-
      Computes shipping options for an address without mutating the cart or creating an order.
      Pair with POST /V1/guest-carts/{cartId}/totals-information to price the whole basket before
      calling PUT /V1/guest-carts/{cartId}/order.
- target: $.paths['/V1/guest-carts/{cartId}/totals-information'].post
  update:
    x-consequence: read-only
    x-dry-run: true
- target: $.paths['/V1/customers'].post
  description: Record that the API-side account flow is open while the web-side one is not.
  update:
    x-note: >-
      Account creation answers on the API while the storefront routes /customer/account/create/
      and /customer/account/login/ both return 404 (probed 2026-09-04). Anyone integrating should
      confirm with Watchmaker that self-service registration is intended to be reachable here.
- target: $
  description: Record what this contract does NOT contain, which is the finding an integrator needs first.
  update:
    x-coverage-gaps:
    - >-
      NO product or category read operations exist in this REST surface. GetV1Productsrenderinfo is
      a price/render-block helper and GetV1Search is a generic quick search. The Watchmaker
      catalog — SKUs, descriptions, media, tier prices, stock, custom attributes — is reachable
      only through the GraphQL endpoint at https://www.watchmakergenomics.com/graphql.
    - No rate limits are declared and no 429 response appears on any operation.
    - No idempotency mechanism exists on any of the 70 operations.
    - Errors use the Magento envelope, not RFC 9457 application/problem+json.
    x-companion-surfaces:
    - {type: GraphQL, url: 'https://www.watchmakergenomics.com/graphql', artifact: graphql/watchmaker-genomics-commerce.graphql}
    - {type: WSDL, url: 'https://www.watchmakergenomics.com/soap/all?wsdl_list=1', artifact: wsdl/watchmaker-genomics-commerce-soap.wsdl}