launchdarkly Approvals API

Manage approval requests and workflows for flag changes that require review before deployment.

OpenAPI Specification

launchdarkly-approvals-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: LaunchDarkly Relay Proxy Access Tokens Approvals API
  description: The LaunchDarkly Relay Proxy is a small Go application that connects to the LaunchDarkly streaming API and proxies that connection to SDK clients within an organization's network. It exposes endpoints for status monitoring, flag evaluation, and SDK streaming that mirror the LaunchDarkly service endpoints. Instead of each server making outbound connections to LaunchDarkly's streaming service, multiple servers connect to the local Relay Proxy which maintains a single upstream connection.
  version: '8.0'
  contact:
    name: LaunchDarkly Support
    url: https://support.launchdarkly.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8030
  description: Default Relay Proxy instance
tags:
- name: Approvals
  description: Manage approval requests and workflows for flag changes that require review before deployment.
paths:
  /flags/{projectKey}/{flagKey}/approval-requests/{environmentKey}:
    get:
      operationId: listApprovalRequests
      summary: List approval requests for a flag
      description: Returns a list of all approval requests for the specified feature flag in the given environment.
      tags:
      - Approvals
      parameters:
      - $ref: '#/components/parameters/ProjectKey'
      - $ref: '#/components/parameters/FlagKey'
      - $ref: '#/components/parameters/EnvironmentKey'
      responses:
        '200':
          description: Successful response containing approval requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRequests'
        '401':
          description: Unauthorized. Invalid or missing access token.
        '404':
          description: Flag or environment not found.
    post:
      operationId: createApprovalRequest
      summary: Create an approval request
      description: Creates a new approval request for a pending change to the specified feature flag.
      tags:
      - Approvals
      parameters:
      - $ref: '#/components/parameters/ProjectKey'
      - $ref: '#/components/parameters/FlagKey'
      - $ref: '#/components/parameters/EnvironmentKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApprovalRequestBody'
      responses:
        '201':
          description: Approval request created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalRequest'
        '400':
          description: Invalid request body.
        '401':
          description: Unauthorized. Invalid or missing access token.
components:
  parameters:
    FlagKey:
      name: flagKey
      in: path
      required: true
      description: The feature flag key identifying a specific flag.
      schema:
        type: string
        pattern: ^[a-z0-9]([a-z0-9._-])*$
    EnvironmentKey:
      name: environmentKey
      in: path
      required: true
      description: The environment key identifying a specific environment.
      schema:
        type: string
        pattern: ^[a-z0-9]([a-z0-9-])*$
    ProjectKey:
      name: projectKey
      in: path
      required: true
      description: The project key identifying a LaunchDarkly project.
      schema:
        type: string
        pattern: ^[a-z0-9]([a-z0-9-])*$
  schemas:
    ApprovalRequests:
      type: object
      description: A collection of approval requests.
      properties:
        items:
          type: array
          description: The list of approval requests.
          items:
            $ref: '#/components/schemas/ApprovalRequest'
        _links:
          $ref: '#/components/schemas/Links'
    ApprovalRequestBody:
      type: object
      description: The request body for creating a new approval request.
      required:
      - description
      properties:
        description:
          type: string
          description: A description of the proposed change.
        instructions:
          type: array
          description: The semantic patch instructions for the proposed change.
          items:
            type: object
        notifyMemberIds:
          type: array
          description: Member IDs to notify about this approval request.
          items:
            type: string
        comment:
          type: string
          description: An optional comment on the approval request.
    ApprovalRequest:
      type: object
      description: An approval request for a pending flag change.
      properties:
        _id:
          type: string
          description: The unique identifier of this approval request.
        requestorId:
          type: string
          description: The member ID of the person who requested approval.
        description:
          type: string
          description: A description of the proposed change.
        status:
          type: string
          description: The current status of the approval request.
          enum:
          - pending
          - approved
          - declined
          - completed
        creationDate:
          type: integer
          format: int64
          description: Unix epoch timestamp when the request was created.
        _links:
          $ref: '#/components/schemas/Links'
    Links:
      type: object
      description: HATEOAS links for navigating related resources.
      properties:
        self:
          type: object
          description: A link to this resource.
          properties:
            href:
              type: string
              description: The URL of this resource.
            type:
              type: string
              description: The media type.
      additionalProperties:
        type: object
        properties:
          href:
            type: string
            description: The URL of the linked resource.
          type:
            type: string
            description: The media type.
  securitySchemes:
    sdkKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Server-side SDK key for authenticating with the Relay Proxy.
    mobileKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Mobile SDK key for authenticating with the Relay Proxy.
externalDocs:
  description: Relay Proxy Documentation
  url: https://launchdarkly.com/docs/sdk/relay-proxy