openapi: 3.1.0 info: title: LaunchDarkly Relay Proxy Access Tokens Projects 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: Projects description: Manage projects that organize feature flags and other resources. paths: /projects: get: operationId: listProjects summary: List projects description: Returns a list of all projects in the LaunchDarkly account. tags: - Projects parameters: - name: limit in: query description: Maximum number of projects to return. schema: type: integer - name: offset in: query description: Number of projects to skip for pagination. schema: type: integer - name: filter in: query description: A filter expression to apply to the project list. schema: type: string responses: '200': description: Successful response containing a list of projects. content: application/json: schema: $ref: '#/components/schemas/Projects' '401': description: Unauthorized. Invalid or missing access token. post: operationId: createProject summary: Create a project description: Creates a new project with the specified key, name, and default environments. tags: - Projects requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProjectBody' responses: '201': description: Project created successfully. content: application/json: schema: $ref: '#/components/schemas/Project' '400': description: Invalid request body. '401': description: Unauthorized. Invalid or missing access token. '409': description: A project with the given key already exists. /projects/{projectKey}: get: operationId: getProject summary: Get a project description: Returns a single project by its key, including its environments and configuration. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectKey' responses: '200': description: Successful response containing the project. content: application/json: schema: $ref: '#/components/schemas/Project' '401': description: Unauthorized. Invalid or missing access token. '404': description: Project not found. patch: operationId: patchProject summary: Update a project description: Updates a project using a JSON Patch representation. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectKey' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchOperation' responses: '200': description: Project updated successfully. content: application/json: schema: $ref: '#/components/schemas/Project' '400': description: Invalid patch request. '401': description: Unauthorized. Invalid or missing access token. '404': description: Project not found. delete: operationId: deleteProject summary: Delete a project description: Permanently deletes a project and all of its associated feature flags, environments, and other resources. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectKey' responses: '204': description: Project deleted successfully. '401': description: Unauthorized. Invalid or missing access token. '404': description: Project not found. components: schemas: Environment: type: object description: An environment within a project, such as production or staging. properties: _id: type: string description: The unique identifier of this environment. key: type: string description: The environment key. name: type: string description: The human-readable name of the environment. color: type: string description: The color swatch for the environment in the dashboard. pattern: ^[0-9a-fA-F]{6}$ apiKey: type: string description: The SDK key for server-side SDKs. mobileKey: type: string description: The mobile key for mobile SDKs. defaultTtl: type: integer description: The default time-to-live in minutes for flag values. secureMode: type: boolean description: Whether secure mode is enabled for this environment. tags: type: array description: Tags applied to this environment. items: type: string _links: $ref: '#/components/schemas/Links' Projects: type: object description: A paginated collection of projects. properties: items: type: array description: The list of projects. items: $ref: '#/components/schemas/Project' totalCount: type: integer description: The total number of projects. _links: $ref: '#/components/schemas/Links' ProjectBody: type: object description: The request body for creating a new project. required: - name - key properties: name: type: string description: The human-readable name of the project. key: type: string description: The project key. pattern: ^[a-z0-9]([a-z0-9-])*$ tags: type: array description: Tags to apply to the project. items: type: string environments: type: array description: Initial environments to create with the project. items: $ref: '#/components/schemas/EnvironmentBody' Project: type: object description: A LaunchDarkly project containing feature flags and environments. properties: _id: type: string description: The unique identifier of this project. key: type: string description: The project key. name: type: string description: The human-readable name of the project. tags: type: array description: Tags applied to this project. items: type: string environments: $ref: '#/components/schemas/Environments' _links: $ref: '#/components/schemas/Links' PatchOperation: type: object description: A JSON Patch or semantic patch request. properties: patch: type: array description: An array of JSON Patch operations. items: type: object required: - op - path properties: op: type: string description: The patch operation type. enum: - add - remove - replace - move - copy - test path: type: string description: The JSON Pointer path to the target field. value: description: The value to apply for add or replace operations. comment: type: string description: An optional comment describing the change. EnvironmentBody: type: object description: The request body for creating a new environment. required: - name - key - color properties: name: type: string description: The human-readable name of the environment. key: type: string description: The environment key. pattern: ^[a-z0-9]([a-z0-9-])*$ color: type: string description: The color swatch for the environment in the dashboard. pattern: ^[0-9a-fA-F]{6}$ defaultTtl: type: integer description: The default time-to-live in minutes. secureMode: type: boolean description: Whether to enable secure mode. tags: type: array description: Tags to apply to the environment. items: type: string Environments: type: object description: A collection of environments. properties: items: type: array description: The list of environments. items: $ref: '#/components/schemas/Environment' totalCount: type: integer description: The total number of environments. _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. parameters: 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-])*$ 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