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
Derived by API Evangelist Built from the contracts Geniemode publishes. Geniemode did not publish this file.
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.

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/geniemode-cataloguing-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.