Cybrary · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Cybrary Completions Export API

8 actions 8 updates update extends openapi/cybrary-completions-export-openapi.yml
Derived by API Evangelist Built from the contracts Cybrary publishes. Cybrary did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-notex-agentic-accessx-apievangelist-provenancex-apievangelist-artifactsx-apievangelist-standardsx-rate-limit-headersx-rate-limit-observedx-rate-limit-reset-header

Targets 7

$.info
$.servers[0]
$.paths['/integrations/completions'].get
$.paths['/integrations/completions/latest'].get
$.paths['/integrations/completions/{date}'].get
$.components.responses.ServerError
$.components.schemas.Actor

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Cybrary Completions Export API
  version: 1.0.0
extends: openapi/cybrary-completions-export-openapi.yml
x-generated: '2026-08-04'
x-method: generated
x-source: >-
  Enhancements derived from API Evangelist artifacts in this repository and from live
  probes of app.cybrary.it on 2026-08-04. Records what API Evangelist added on top of
  Cybrary's published prose documentation, so the underlying specification stays
  auditable against the source.
actions:
- target: $.info
  update:
    x-apievangelist-provenance: >-
      Specification authored by API Evangelist from Cybrary's published prose
      documentation; not published by Cybrary.
    x-apievangelist-artifacts:
      authentication: authentication/cybrary-authentication.yml
      scopes: scopes/cybrary-scopes.yml
      conventions: conventions/cybrary-conventions.yml
      errors: errors/cybrary-problem-types.yml
      lifecycle: lifecycle/cybrary-lifecycle.yml
      conformance: conformance/cybrary-conformance.yml
      data_model: data-model/cybrary-data-model.yml
      rate_limits: rate-limits/cybrary-rate-limits.yml
      agentic_access: agentic-access/cybrary-agentic-access.yml
      skills: skills/_index.yml
- target: $.info
  update:
    x-apievangelist-standards:
    - xAPI (Experience API) 1.0 / ADL
    - OAuth 2.0 (RFC 6749)
- target: $.servers[0]
  update:
    x-rate-limit-headers:
    - X-RateLimit-Limit
    - X-RateLimit-Remaining
    x-rate-limit-observed: 100000
    x-rate-limit-reset-header: null
    x-rate-limit-note: >-
      Observed on live responses 2026-08-04; Cybrary publishes no rate-limit policy
      and returns no reset or Retry-After header.
- target: $.paths['/integrations/completions'].get
  update:
    x-apievangelist-note: >-
      Call this before requesting a dated export — there is no published retention
      window, so the available range is only knowable from this response.
    x-agentic-access:
      action-class: connected
      consequence: read
      data-sensitivity: pii
- target: $.paths['/integrations/completions/latest'].get
  update:
    x-apievangelist-note: >-
      Preferred operation for an incremental daily sync. Exports may include
      completions for past dates, so downstream ingestion must deduplicate on
      (actor.account.name, object.id, timestamp).
    x-agentic-access:
      action-class: connected
      consequence: read
      data-sensitivity: pii
- target: $.paths['/integrations/completions/{date}'].get
  update:
    x-apievangelist-note: >-
      The list response uses MM_DD_YYYY while the generated filename uses DD_MM_YYYY.
      Use the `date` value returned by listCompletionExports rather than formatting one.
    x-agentic-access:
      action-class: connected
      consequence: read
      data-sensitivity: pii
- target: $.components.responses.ServerError
  update:
    x-apievangelist-note: >-
      Unauthenticated requests to the export endpoints return 500, not 401. Treat a
      500 on these paths as a probable auth failure before treating it as an outage.
- target: $.components.schemas.Actor
  update:
    x-pii: true
    x-pii-fields: [name, mbox]
    x-apievangelist-note: >-
      Every export carries learner names and email addresses. Handle under the
      customer's own data-protection controls.

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/cybrary-completions-export-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.