Hey API · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Hey API Platform API

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

What the actions change

tagsoperationIdsummarydescriptionx-apievangelist-slugx-apievangelist-harvested-fromx-apievangelist-harvested-oncontact

Targets 13

$.info
$
$.paths['/'].get
$.paths['/v1/specifications'].post
$.paths['/v1/get/{organization_slug}/{project_slug}'].get
$.paths['/v1/organizations'].get
$.paths['/v1/organizations'].post
$.paths['/v1/organizations/{organization_slug}/projects'].get
$.paths['/v1/organizations/{organization_slug}/projects'].post
$.paths['/v1/organizations/{organization_slug}/projects/{project_slug}/specifications'].get
$.paths['/v1/organizations/{organization_slug}/projects/{project_slug}/api-keys'].post
$.paths['/v1/organizations/{organization_slug}/projects/{project_slug}/webhooks'].post
$.paths['/v1/users/me'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Hey API Platform API
  version: 1.0.0
extends: openapi/hey-api-platform-openapi.json
x-provenance:
  generated: '2026-08-06'
  method: generated
  source: >-
    Authored by the API Evangelist enrichment pipeline against the verbatim
    spec harvested from https://api.heyapi.dev/v1/get/hey-api/backend on
    2026-08-06. The original document is never mutated.
  note: >-
    The harvested spec declares no servers, no operationIds, no summaries and
    no tags on any of its 38 operations. Those are the four things a codegen —
    and an agent — needs most, which is a striking omission for the API of a
    codegen company. This overlay adds them as OUR annotations. It does NOT
    change any path, parameter, schema or response.
actions:
  - target: $.info
    update:
      x-apievangelist-slug: hey-api
      x-apievangelist-harvested-from: https://api.heyapi.dev/v1/get/hey-api/backend
      x-apievangelist-harvested-on: '2026-08-06'
      contact:
        name: Hey API
        email: lubos@heyapi.dev
        url: https://heyapi.dev
      license:
        name: MIT
        identifier: MIT

  - target: $
    update:
      servers:
        - url: https://api.heyapi.dev
          description: Hey API Platform production API
        - url: https://get.heyapi.dev
          description: >-
            Vanity host for specification download; 308-redirects to
            https://api.heyapi.dev/v1/get/{organization_slug}/{project_slug}
      tags:
        - name: specifications
          description: Upload, list, fetch and delete stored OpenAPI documents.
        - name: organizations
          description: Organization and membership management.
        - name: projects
          description: Projects inside an organization; the unit a spec belongs to.
        - name: api-keys
          description: Project and personal API key lifecycle.
        - name: webhooks
          description: Project-scoped outbound event subscriptions.
        - name: users
          description: Current user, roles and waitlists.
        - name: internal
          description: >-
            Platform-internal service hooks published in the spec but not part
            of the consumer contract.
        - name: meta
          description: Liveness.

  - target: $.paths['/'].get
    update:
      operationId: getRoot
      summary: Liveness probe
      description: Returns a plain-text banner identifying the backend build.
      tags: [meta]

  - target: $.paths['/v1/specifications'].post
    update:
      operationId: uploadSpecification
      summary: Upload an OpenAPI specification
      description: >-
        Publishes an OpenAPI document to the project the API key belongs to,
        along with its CI provenance. Requires a PROJECT api key — personal
        keys are rejected with 403. Set the dry_run field to validate the call
        without persisting a record.
      tags: [specifications]

  - target: $.paths['/v1/get/{organization_slug}/{project_slug}'].get
    update:
      operationId: downloadSpecification
      summary: Download a stored OpenAPI specification
      description: >-
        Returns the specification file for an organization/project pair.
        Defaults to the most recently uploaded document; narrow it with
        branch, commit_sha, tags, version or latest. Public projects are
        readable anonymously. This is the endpoint every codegen shorthand
        (`-i <org>/<project>`) resolves to.
      tags: [specifications]

  - target: $.paths['/v1/organizations'].get
    update:
      operationId: listOrganizations
      summary: List organizations
      tags: [organizations]

  - target: $.paths['/v1/organizations'].post
    update:
      operationId: createOrganization
      summary: Create an organization
      tags: [organizations]

  - target: $.paths['/v1/organizations/{organization_slug}/projects'].get
    update:
      operationId: listProjects
      summary: List projects in an organization
      tags: [projects]

  - target: $.paths['/v1/organizations/{organization_slug}/projects'].post
    update:
      operationId: createProject
      summary: Create a project
      tags: [projects]

  - target: $.paths['/v1/organizations/{organization_slug}/projects/{project_slug}/specifications'].get
    update:
      operationId: listSpecifications
      summary: List stored specifications for a project
      description: Cursor paginated with after / before / limit.
      tags: [specifications]

  - target: $.paths['/v1/organizations/{organization_slug}/projects/{project_slug}/api-keys'].post
    update:
      operationId: createProjectApiKey
      summary: Create a project API key
      description: >-
        The only response that returns the key `value`; every subsequent
        listing returns the concealed form.
      tags: [api-keys]

  - target: $.paths['/v1/organizations/{organization_slug}/projects/{project_slug}/webhooks'].post
    update:
      operationId: createWebhook
      summary: Register a webhook endpoint for a project
      description: >-
        Emits specification.created and specification.deleted events. The
        signing secret is returned once, on this response only.
      tags: [webhooks]

  - target: $.paths['/v1/users/me'].get
    update:
      operationId: getCurrentUser
      summary: Get the authenticated user
      tags: [users]