> ## Documentation Index
> Fetch the complete documentation index at: https://interfere.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Register a release for a surface



## OpenAPI

````yaml https://api.interfere.com/openapi.json post /v3/releases
openapi: 3.0.0
info:
  title: Interfere API
  termsOfService: https://interfere.com/legal/terms-of-service
  contact:
    email: support@interfere.com
    name: Interfere Support
    url: https://interfere.com/~/*/settings/support
  license:
    name: All Rights Reserved
  description: >-
    Interfere empowers engineers, product managers and designers with real-time
    understanding of previously unseen bugs and issues.
  version: 3.0.0
servers:
  - url: https://api.interfere.com
    description: This environment
security: []
tags:
  - name: Drain
    description: Drain API
  - name: Releases
    description: Build-time release API
  - name: Replay
    description: Session replay chunk ingest API
  - name: Sessions
    description: Session and end-user identity API
  - name: Updates
    description: Desktop app update API
  - name: Traces
    description: Trace waterfall read API
externalDocs:
  url: https://interfere.com/docs
  description: Interfere Documentation
paths:
  /v3/releases:
    post:
      tags:
        - Releases
      summary: Register a release for a surface
      operationId: createRelease
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReleaseRequest'
      responses:
        '200':
          description: Release recorded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateReleaseResponse'
        '401':
          description: Missing or invalid secret key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyAuthProblem'
        '403':
          description: Secret key lacks the `release:write` scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyScopeProblem'
        '503':
          description: >-
            A dependency failed while recording the release; retry with backoff
            after the Retry-After delay
          headers:
            Retry-After:
              schema:
                type: string
                description: Seconds to wait before retrying
              required: true
              description: Seconds to wait before retrying
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseUnavailableProblem'
      security:
        - apiKey: []
        - apiKeyHeader: []
components:
  schemas:
    CreateReleaseRequest:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/ReleaseSource'
        destination:
          $ref: '#/components/schemas/ReleaseDestination'
        buildId:
          type: string
        slug:
          type: string
          pattern: ^rel_.*$
        producerVersion:
          type: string
      required:
        - source
        - destination
        - buildId
      description: Request body for creating a release.
    CreateReleaseResponse:
      type: object
      properties:
        org:
          $ref: '#/components/schemas/OrgRef'
        surface:
          $ref: '#/components/schemas/SurfaceRef'
        source:
          $ref: '#/components/schemas/ReleaseSourceRef'
        destination:
          $ref: '#/components/schemas/ReleaseDestinationRef'
        build:
          $ref: '#/components/schemas/ReleaseBuildRef'
      required:
        - org
        - surface
        - source
        - destination
        - build
      description: Response body returned after creating a release.
    ApiKeyAuthProblem:
      type: object
      properties:
        code:
          type: string
          enum:
            - AUTH_MISSING
            - AUTH_AK_INVALID
        message:
          type: string
        service:
          type: string
          enum:
            - collector
            - gateway
            - operation
            - intelligence
      required:
        - code
    ApiKeyScopeProblem:
      type: object
      properties:
        code:
          type: string
          enum:
            - AUTH_AK_SCOPE_MISMATCH
        message:
          type: string
        service:
          type: string
          enum:
            - collector
            - gateway
            - operation
            - intelligence
      required:
        - code
    ReleaseUnavailableProblem:
      type: object
      properties:
        code:
          type: string
          enum:
            - INGEST_INFRA_UNAVAILABLE
        message:
          type: string
        service:
          type: string
          enum:
            - collector
            - gateway
            - operation
            - intelligence
      required:
        - code
    ReleaseSource:
      oneOf:
        - $ref: '#/components/schemas/GithubReleaseSource'
        - $ref: '#/components/schemas/CliReleaseSource'
      discriminator:
        propertyName: provider
        mapping:
          github:
            $ref: '#/components/schemas/GithubReleaseSource'
          cli:
            $ref: '#/components/schemas/CliReleaseSource'
      description: ReleaseSource
    ReleaseDestination:
      oneOf:
        - $ref: '#/components/schemas/VercelReleaseDestination'
        - $ref: '#/components/schemas/CloudflareReleaseDestination'
        - $ref: '#/components/schemas/CliReleaseDestination'
        - nullable: true
      description: ReleaseDestination
    OrgRef:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
      required:
        - id
        - slug
      description: OrgRef
    SurfaceRef:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
      required:
        - id
        - slug
      description: SurfaceRef
    ReleaseSourceRef:
      type: object
      properties:
        id:
          type: string
      required:
        - id
      description: ReleaseSourceRef
    ReleaseDestinationRef:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
          pattern: ^rel_.*$
        environment:
          type: string
          nullable: true
      required:
        - id
        - slug
        - environment
      description: ReleaseDestinationRef
    ReleaseBuildRef:
      type: object
      properties:
        hash:
          type: string
      required:
        - hash
      description: ReleaseBuildRef
    GithubReleaseSource:
      type: object
      properties:
        provider:
          type: string
          enum:
            - github
        commitMessage:
          type: string
        branch:
          type: string
        commitSha:
          type: string
          nullable: true
        runnerName:
          type: string
          nullable: true
        runId:
          type: string
          nullable: true
        runUrl:
          type: string
          nullable: true
      required:
        - provider
        - commitMessage
        - branch
        - commitSha
      description: Release source metadata coming from GitHub.
    CliReleaseSource:
      type: object
      properties:
        provider:
          type: string
          enum:
            - cli
        commitSha:
          type: string
          nullable: true
        commitRef:
          type: string
          nullable: true
        commitMessage:
          type: string
          nullable: true
        commitUrl:
          type: string
          nullable: true
        runnerName:
          type: string
          nullable: true
        runId:
          type: string
          nullable: true
        runUrl:
          type: string
          nullable: true
        environment:
          type: string
          nullable: true
        deploymentUrl:
          type: string
          nullable: true
      required:
        - provider
        - commitSha
        - commitRef
        - commitMessage
        - commitUrl
        - runnerName
        - runId
        - runUrl
      description: Release source metadata from the Interfere CLI.
    VercelReleaseDestination:
      type: object
      properties:
        provider:
          type: string
          enum:
            - vercel
        destinationReleaseId:
          type: string
          nullable: true
        environment:
          type: string
          nullable: true
        deploymentId:
          type: string
          nullable: true
        deploymentUrl:
          type: string
          nullable: true
        environmentName:
          type: string
          nullable: true
        environmentTarget:
          type: string
          nullable: true
      required:
        - provider
        - destinationReleaseId
        - environment
        - deploymentId
        - deploymentUrl
        - environmentName
        - environmentTarget
      description: Release destination metadata for a Vercel deployment.
    CloudflareReleaseDestination:
      type: object
      properties:
        provider:
          type: string
          enum:
            - cloudflare
        destinationReleaseId:
          type: string
          nullable: true
        environment:
          type: string
          nullable: true
        versionId:
          type: string
          nullable: true
        scriptName:
          type: string
          nullable: true
        accountId:
          type: string
          nullable: true
        deploymentUrl:
          type: string
          nullable: true
        environmentName:
          type: string
          nullable: true
        environmentTarget:
          type: string
          nullable: true
      required:
        - provider
        - destinationReleaseId
        - environment
        - versionId
        - scriptName
        - accountId
        - deploymentUrl
        - environmentName
        - environmentTarget
      description: Release destination metadata for a Cloudflare Workers deployment.
    CliReleaseDestination:
      type: object
      properties:
        provider:
          type: string
          enum:
            - cli
        destinationReleaseId:
          type: string
          nullable: true
        environment:
          type: string
          nullable: true
        deploymentUrl:
          type: string
          nullable: true
      required:
        - provider
        - destinationReleaseId
        - environment
        - deploymentUrl
      description: Release destination metadata from the Interfere CLI.
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        Build-time secret key of the surface, as issued in the Interfere
        dashboard
    apiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Build-time secret key of the surface, unwrapped; for clients that cannot
        set an Authorization header

````