Optimyzee · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Optimyzee Application API

3 actions 3 updates servers extends openapi/_original/optimyzee-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Optimyzee's API. It is a proposal applied on top of the contract, not a document Optimyzee publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

titlex-original-titlex-apievangelist-sourcex-apievangelist-harvestedx-apievangelist-noteserversx-token-sourcex-token-refresh

Targets 3

$.info
$
$.components.securitySchemes.token

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Optimyzee Application API
  version: 1.0.0
extends: openapi/_original/optimyzee-openapi.json
x-generated: '2026-08-12'
x-method: generated
x-source: >-
  Enhancements applied by the API Evangelist enrichment pipeline over the document harvested verbatim
  from https://api.optimyzee.com/docs on 2026-08-12. The original is never mutated; openapi/optimyzee-openapi.yml
  is this overlay already applied.
actions:
- target: $.info
  description: >-
    The published document's info block is a placeholder - title "API", no description, no contact, no
    license, no termsOfService. Name it and record where it came from.
  update:
    title: Optimyzee Application API
    x-original-title: API
    x-apievangelist-source: https://api.optimyzee.com/docs
    x-apievangelist-harvested: '2026-08-12'
    x-apievangelist-note: >-
      Served publicly and anonymously at https://api.optimyzee.com/docs. Optimyzee publishes no
      developer portal, API reference, SDK, or public API program around this contract; it is the
      backend of the app.optimyzee.com single-page application.
- target: $
  description: >-
    The published document declares no servers[]. api.optimyzee.com is the host that serves the document
    and answers the operations live (GET /app/campaign returns 401 Unauthenticated from that host).
  update:
    servers:
    - url: https://api.optimyzee.com
      description: Production (host serving this document at /docs)
- target: $.components.securitySchemes.token
  description: >-
    Record what the apiKey scheme actually is - a bearer token in the `authorization` header, minted by
    the /app/auth/gateway/* operations, with no OAuth server and no user-issuable API key.
  update:
    x-token-source: /app/auth/gateway/{email,emailSignup,google,googleSignup,facebook,facebookSignup}
    x-token-refresh: /app/auth/gateway/refresh
    x-token-revoke: /app/auth/gateway/revoke
    x-user-issuable-key: false
x-findings:
  description: >-
    Contract-quality observations recorded for a provider conversation. These are NOT written into the
    spec - the pipeline never pads a provider's document to move a score.
  operations: 184
  paths: 151
  schemas: 73
  with_operation_id: 184
  with_tags: 184
  with_summary: 39
  with_description: 0
  gaps:
  - No `description` on any of the 184 operations.
  - Only 39 of 184 operations carry a `summary`.
  - >-
    39 operations use 32-character hex operationIds (e.g. 8a4d6eaf33c6a8399451f759169cfa31) instead of
    names - 31 of them on the Yelp surface, plus automations, recommendations and signals.
  - No `examples` anywhere in the document.
  - No 429 and no 5xx responses declared; only 400/401/403/422.
  - >-
    The x-pagination-next/previous/per-page/last/total response headers the API genuinely returns are
    not declared in the spec, so a spec-only client cannot learn to page.
  - >-
    76 of 184 operations declare no `security` and the document declares no root-level `security`
    default. 53 of those are under /app (the sign-in and password-reset operations legitimately, but
    also the automations, recommendations and signals operations), and 23 are under the /operations/*
    back-office surface - including POST /operations/user/{userId}/impersonate, which carries no
    security requirement in the document at all. A reader cannot tell from the contract whether those
    operations are genuinely unauthenticated or simply omit their requirement.