Geniemode · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Geniemode Cataloguing API

6 actions 6 updates update extends ../openapi/geniemode-cataloguing-api-swagger-2.0.json
Generated by API Evangelist Written by API Evangelist tooling for Geniemode's API. It is a proposal applied on top of the contract, not a document Geniemode publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

versionx-version-notex-terms-of-service-actualx-privacy-policyx-providerx-provider-sitex-license-noteschemes

Targets 3

$.info
$
$.paths[?(@)]..responses

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Geniemode Cataloguing API
  version: 1.0.0
extends: ../openapi/geniemode-cataloguing-api-swagger-2.0.json
x-generated: '2026-08-21'
x-method: generated
x-source: >-
  Derived from analysis of the provider's own Swagger 2.0 document fetched from
  https://portal.geniemode.com/api/v2/api-docs on 2026-08-21. This overlay records API Evangelist's
  enhancements only; the original contract in openapi/ is never mutated. NOTE the base document is
  Swagger 2.0, so these actions describe corrections to a Swagger 2.0 tree (securityDefinitions,
  not components.securitySchemes).
actions:
- target: $.info
  description: >-
    Replace the four unreplaced Springfox placeholder values. As published, info.version is the
    literal string "API V", termsOfService is "Terms of service", and license is
    {name: "License of API", url: "API license URL"} - none identifies anything.
  update:
    version: unknown
    x-version-note: >-
      The provider publishes no version identifier. Three path families (/api, /api/v1, /api/v2)
      coexist in this single document.
    x-terms-of-service-actual: https://geniemode.com/tnc
    x-privacy-policy: https://geniemode.com/privacy-policy
    x-provider: Geniemode Global Pvt Ltd
    x-provider-site: https://geniemode.com/
- target: $.info
  description: Remove the placeholder license block, which names no licence.
  remove: false
  update:
    x-license-note: >-
      The published license block is the Springfox default placeholder ("License of API" /
      "API license URL") and names no actual licence. Treat the contract as all rights reserved.
- target: $
  description: >-
    Add the schemes and basePath the document omits. The document declares host
    portal.geniemode.com but no schemes[] and no basePath; every path already carries its own /api
    prefix.
  update:
    schemes:
    - https
    x-base-url: https://portal.geniemode.com
- target: $
  description: >-
    Add the securityDefinitions the contract omits entirely. Every one of the 1,140 operations
    returns HTTP 401 without a session, yet the document declares no securityDefinitions and no
    operation carries a security requirement - a client generated from this contract cannot
    authenticate. The scheme below is DERIVED from AuthorisationResponsePayload
    (access_token/refresh_token/roles), not published by the provider.
  update:
    securityDefinitions:
      bearerAuth:
        type: apiKey
        name: Authorization
        in: header
        description: >-
          DERIVED, NOT PUBLISHED. Bearer JWT obtained from GET /api/auth/login, which returns
          AuthorisationResponsePayload {access_token, refresh_token, token, roles[], user_id}.
          Geniemode publishes no authentication documentation.
- target: $.paths[?(@)]..responses
  description: >-
    Record that 401 is undeclared everywhere. 618 operations declare 403/500 and 522 declare no
    error response at all, but 401 - the status the API actually returns to every unauthenticated
    caller - is declared on none of the 1,140.
  update:
    x-undeclared-401:
      description: Unauthorized - returned by the live API on every operation without a session
      x-observed-envelope:
        timestamp: integer
        status: integer
        error: string
        path: string
      x-note: added by API Evangelist from observation; not in the provider's contract
- target: $.info
  description: Record the contract-quality gaps measured against the published document.
  update:
    x-contract-quality:
      operations: 1140
      with_summary: 1140
      with_description: 0
      with_operation_id: 1140
      with_examples: 0
      with_error_responses: 618
      without_any_error_response: 522
      definitions: 934
      security_schemes_declared: 0
      note: >-
        Summaries are present on all 1,140 operations but are Springfox-generated method names
        (e.g. "cancelOrder"), not prose. Zero operations carry a description and zero carry an
        example.