GoToWebinar · OpenAPI Overlay 1.0.0

API Evangelist enhancements for GoTo Webinar REST API v2

7 actions 7 updates update extends openapi/_original/goto-webinar-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for GoToWebinar's API. It is a proposal applied on top of the contract, not a document GoToWebinar publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-slugx-apievangelist-harvestedx-apievangelist-sourcex-apievangelist-source-notex-apievangelist-artifactsx-rate-limitx-idempotencyx-pagination

Targets 2

$.info
$.components.securitySchemes.OAuth2

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for GoTo Webinar REST API v2
  version: 1.0.0
extends: openapi/_original/goto-webinar-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: >-
  Derived from GoTo's own published OpenAPI 3.0.0 plus the GoTo Developer Center
  guides for rate limiting, authentication and webhooks. Every value asserted
  here is traceable to a GoTo-published page; nothing about the API's behaviour
  is invented. This overlay records API Evangelist annotations only and never
  mutates the harvested original.
actions:
- target: $.info
  update:
    x-apievangelist-slug: goto-webinar
    x-apievangelist-harvested: '2026-08-13'
    x-apievangelist-source: https://developer.goto.com/page-data/GoToWebinarV2/page-data.json
    x-apievangelist-source-note: >-
      GoTo's developer portal is a Gatsby SPA that does not expose the spec at a
      plain /openapi.json path; the verbatim OpenAPI is served from the portal's
      own page-data endpoint and is the document the in-page download button
      writes to disk.
    x-apievangelist-artifacts:
      conventions: conventions/goto-webinar-conventions.yml
      errors: errors/goto-webinar-problem-types.yml
      data_model: data-model/goto-webinar-data-model.yml
      rate_limits: rate-limits/goto-webinar-rate-limits.yml
      webhooks: asyncapi/goto-webinar-webhooks.yml
      lifecycle: lifecycle/goto-webinar-lifecycle.yml
      packages: packages/goto-webinar-packages.yml
- target: $.info
  update:
    x-rate-limit:
      limit: 10
      unit: requests
      window: 1s
      status_on_exhaustion: 429
      headers: []
      source: https://developer.goto.com/guides/References/Ref-Rate-Limits/
      note: >-
        GoTo documents this limit in its rate-limiting reference but declares no
        429 response on any operation and publishes no rate-limit headers.
- target: $.info
  update:
    x-idempotency:
      supported: false
      note: >-
        No Idempotency-Key parameter exists on any operation and no retry-safety
        contract is documented. Unguarded writes: createWebinar,
        createRegistrant, createPanelists, createCoorganizers, createWebhooks,
        createUserSubscriptions.
- target: $.info
  update:
    x-pagination:
      styles:
      - style: hal-embedded
        params: [page, size]
        response_fields: [_embedded, _links.self.href, _links.first.href, _links.last.href, page.size, page.totalElements, page.totalPages, page.number]
      - style: flat
        params: [page, limit]
        response_fields: [data, total, page, limit, pageSize]
      note: Two incompatible envelopes coexist in one API version.
- target: $.components.securitySchemes.OAuth2
  update:
    x-issuer: https://identity.goto.com
    x-authorization-server-metadata: https://identity.goto.com/.well-known/oauth-authorization-server
    x-pkce: S256
    x-introspection-endpoint: https://identity.goto.com/oauth/introspect
    x-revocation-endpoint: https://identity.goto.com/oauth/revoke
    x-jwks-uri: https://identity.goto.com/oauth/jwks.json
    x-scope: 'collab:'
    x-host-note: >-
      The spec names authentication.logmeininc.com. That host serves RFC 8414
      metadata reporting issuer https://identity.goto.com — the same
      authorization server mid-rename. GoTo publishes a migration guide at
      /guides/Authentication/New_Token_Retrieval_Migration_Guide/.
    x-deprecated-flows:
    - flow: password
      note: >-
        Direct Login. GoTo's SDK guides state "This authentication API is now
        deprecated. All new clients will not be able to use this API." The flow
        is nevertheless still declared in the live contract.
- target: $.info
  update:
    x-webhooks:
      published: true
      spec: none
      events: [registrant.added, registrant.joined, webinar.created, webinar.changed, survey.submitted]
      management_tag: Webhooks
      docs: https://developer.goto.com/guides/GoToWebinar/07_HOW_WebHooksOverview/
      note: >-
        Real event surface, no machine-readable event contract. Payload fields
        are published as HTML tables only.
- target: $.info
  update:
    x-error-semantics:
      envelope: none
      problem_json: false
      auth_failure_status: 403
      undeclared_statuses: [401, 429, '5xx']
      note: >-
        All 155 declared 4xx responses carry a description string with no schema,
        content type or example.