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.
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
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.
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.