ClearSlide · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the harvested ClearSlide Platform API (Swagger 2.0)

7 actions 7 updates update extends openapi/_original/clearslide-platform-api-swagger.json
Generated by API Evangelist Written by API Evangelist tooling for ClearSlide's API. It is a proposal applied on top of the contract, not a document ClearSlide publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-idempotencyx-apievangelist-sourcex-apievangelist-providerx-apievangelist-parent-companyx-apievangelist-harvestedx-apievangelist-ownershipx-apievangelist-defectsx-agentic-access

Targets 5

$.info
$.paths['/links'].post
$.paths['/upload'].post
$.paths['/insights'].get
$.definitions.presentation

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the harvested ClearSlide Platform API (Swagger 2.0)
  version: 1.0.0
extends: openapi/_original/clearslide-platform-api-swagger.json
x-apievangelist:
  generated: '2026-08-13'
  method: generated
  source: >-
    Overlay of the provider-published Swagger 2.0 document harvested 2026-08-13 from
    https://docs.platform.clearslide.com/clearslide-api.json (the spec URL is declared in the
    Swagger UI bundle at that host, which platform.clearslide.com now 302s to).
  note: >-
    The original document is never mutated. This overlay records our enhancements and the defects
    observed in the provider's contract so they travel with it.
actions:
- target: $.info
  update:
    x-apievangelist-source: https://docs.platform.clearslide.com/clearslide-api.json
    x-apievangelist-provider: clearslide
    x-apievangelist-parent-company: Bigtincan
    x-apievangelist-harvested: '2026-08-13'
    x-apievangelist-ownership: >-
      Ownership verified before saving — info.title "ClearSlide API", info.contact.email
      apisupport@clearslide.com, host platform.clearslide.com. All three name ClearSlide, and the
      document is served from a ClearSlide-controlled host reached by redirect from the API host.
    x-apievangelist-defects:
    - id: invalid-json
      detail: >-
        As served, the document is not valid JSON — `"host": platform.clearslide.com,` and
        `"basePath": /,` are unquoted bare scalars, so a compliant parser rejects the file. The
        saved copy quotes exactly those two values and changes nothing else; pristine bytes are
        preserved at openapi/_original/clearslide-platform-api-swagger.json.orig.
    - id: no-security-definitions
      detail: No securityDefinitions and no security block, despite the API being OAuth 2.0 protected.
    - id: no-operation-ids
      detail: None of the six operations declares an operationId.
    - id: untyped-success-responses
      detail: >-
        200 responses on /presentations, /links, /insights and /users are bare untyped arrays, so
        the presentation, Insights and user definitions are unreachable from any response.
    - id: duplicate-error-schemas
      detail: '`error` and `Error` are separately declared with identical properties.'
    - id: swapped-date-descriptions
      detail: >-
        presentation.dateCreated and presentation.dateModified carry each other's descriptions.
    - id: misspelled-definitions
      detail: '`Vidoes` (Videos), `InsightsEngagmentDataPoints` (Engagement).'
    - id: placeholder-descriptions
      detail: >-
        Error `code`/`message` are described as "tbd"; fifteen InsightsAttribute fields are
        described only as "TDB"/"TBD".
- target: $.info
  update:
    x-agentic-access:
      default-action-class: read
      onboarding: human-gated
      note: >-
        GET operations are read/connected. POST /links and POST /upload are acting/write with
        external consequence — a trackable link is a shareable artifact and upload credentials are
        live AWS credentials. Neither is idempotent, so neither is safe to retry blind.
      blockers:
      - Credentials are issued by a human replying to apisupport@clearslide.com.
      - Token goes in a non-standard `authorizationToken` header, not RFC 6750 Bearer.
      - A `targetUserId` header must be supplied out of band for reads.
- target: $.info
  update:
    x-apievangelist-contract-divergence: >-
      This document covers 6 operations. ClearSlide's ReadMe portal documents 9, adding
      GET/POST /meeting/scheduled and PUT /meeting/scheduled/{inviteMailVid}. Neither contract is a
      superset of the other — this one has all the schema depth and no Meetings; the portal has
      Meetings and no schemas.
- target: $.paths['/links'].post
  update:
    x-idempotency:
      supported: false
      note: >-
        Creates an externally shareable artifact with no idempotency key. A retry after a timeout
        produces a second distinct trackable link.
- target: $.paths['/upload'].post
  update:
    x-idempotency:
      supported: false
    x-side-effects: >-
      Returns short-lived Amazon S3 credentials (AWSAccessKeyId, policy, signature) in the response
      body. Treat the response as secret material.
    x-flow: >-
      Step 1 of 3 — POST /upload, then form-POST the file to the returned postURL with postParams,
      then poll GET /upload/{uploadID}. No callback fires on completion.
- target: $.paths['/insights'].get
  update:
    x-window: >-
      filter[insights][activityDate] is REQUIRED and scopes results to the previous 24 hours from
      the supplied date. There is no way to request a wider window in one call.
    x-polymorphic: >-
      One response shape serves LINK, EMAIL and MEETING activity, discriminated by `type`, with a
      different subset of ~40 attributes populated per variant.
- target: $.definitions.presentation
  update:
    x-apievangelist-warning: >-
      dateCreated and dateModified carry transposed descriptions in the provider's spec. Trust the
      field names, not the descriptions.