launchdarkly Projects API
Manage projects that organize feature flags and other resources.
Manage projects that organize feature flags and other resources.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/launchdarkly-projects-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Launchdarkly Projects API
version: '1.0'
description: 'Operations tagged Projects across 2 of this provider''s published API definitions: launchdarkly-rest-api-openapi.yml, launchdarkly-dev-server-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.launchdarkly.com/api/v2
description: LaunchDarkly Production API
- url: http://localhost:8765/dev
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.
security:
- bearerAuth: []
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.
security:
- bearerAuth: []
servers:
- url: https://app.launchdarkly.com/api/v2
description: LaunchDarkly Production API
/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.
security:
- bearerAuth: []
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.
security:
- bearerAuth: []
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.
security:
- bearerAuth: []
post:
summary: Add the project to the dev server
operationId: postAddProject
parameters:
- $ref: '#/components/parameters/projectKey'
- $ref: '#/components/parameters/projectExpand'
requestBody:
content:
application/json:
schema:
type: object
required:
- sourceEnvironmentKey
properties:
sourceEnvironmentKey:
type: string
description: environment to copy flag values from
context:
$ref: '#/components/schemas/Context'
responses:
201:
$ref: '#/components/responses/Project'
400:
$ref: '#/components/responses/ErrorResponse'
409:
$ref: '#/components/responses/ErrorResponse'
tags:
- Projects
security:
- bearerAuth: []
servers:
- url: https://app.launchdarkly.com/api/v2
description: LaunchDarkly Production API
/projects/{projectKey}/import:
post:
summary: Import a project from exported JSON data
description: 'Import a project using the JSON format from get-project with expand options.
Accepts the same format that is exported by the get-project endpoint.
'
operationId: postImportProject
parameters:
- $ref: '#/components/parameters/projectKey'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Project_2'
responses:
201:
$ref: '#/components/responses/Project'
400:
$ref: '#/components/responses/ErrorResponse'
409:
$ref: '#/components/responses/ErrorResponse'
tags:
- Projects
servers:
- url: http://localhost:8765/dev
/projects/{projectKey}/overrides:
delete:
summary: remove all overrides for the given project
operationId: deleteOverrides
parameters:
- $ref: '#/components/parameters/projectKey'
responses:
204:
description: OK. All overrides were removed
404:
$ref: '#/components/responses/ErrorResponse'
tags:
- Projects
servers:
- url: http://localhost:8765/dev
/projects/{projectKey}/overrides/{flagKey}:
put:
summary: override flag value with value provided in the body
operationId: putOverrideFlag
parameters:
- $ref: '#/components/parameters/projectKey'
- $ref: '#/components/parameters/flagKey'
requestBody:
required: true
description: flag value to override flag with. The json representation of the variation value.
content:
application/json:
schema:
$ref: '#/components/schemas/FlagValue'
responses:
200:
$ref: '#/components/responses/FlagOverride'
400:
$ref: '#/components/responses/ErrorResponse'
tags:
- Projects
delete:
summary: remove override for flag
operationId: deleteFlagOverride
parameters:
- $ref: '#/components/parameters/projectKey'
- $ref: '#/components/parameters/flagKey'
responses:
204:
description: OK. override removed
404:
description: no matching override found
tags:
- Projects
servers:
- url: http://localhost:8765/dev
/projects/{projectKey}/environments:
get:
operationId: getEnvironments
summary: list all environments for the given project
parameters:
- $ref: '#/components/parameters/projectKey'
- name: name
in: query
description: filter by environment name
required: false
schema:
type: string
- name: limit
in: query
description: limit the number of environments returned
required: false
schema:
type: integer
responses:
200:
description: OK. List of environments
content:
application/json:
schema:
description: list of environments
type: array
items:
$ref: '#/components/schemas/Environment_2'
uniqueItems: true
404:
$ref: '#/components/responses/ErrorResponse'
400:
$ref: '#/components/responses/ErrorResponse'
tags:
- Projects
servers:
- url: http://localhost:8765/dev
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'
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.
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'
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'
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
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.
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'
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'
Environment_2:
description: Environment
type: object
required:
- key
- name
properties:
key:
type: string
name:
type: string
Context:
type: object
description: context object to use when evaluating flags in source environment
x-go-type: ldcontext.Context
x-go-type-import:
path: github.com/launchdarkly/go-sdk-common/v3/ldcontext
default:
key: dev-environment
kind: user
Variation:
description: variation of a flag
required:
- _id
- value
properties:
_id:
type: string
name:
type: string
description:
type: string
value:
$ref: '#/components/schemas/FlagValue'
Project_2:
description: Project
type: object
required:
- sourceEnvironmentKey
- context
- _lastSyncedFromSource
properties:
context:
$ref: '#/components/schemas/Context'
sourceEnvironmentKey:
type: string
description: environment to copy flag values from
flagsState:
type: object
description: flags and their values and version for a given project in the source environment
x-go-type: model.FlagsState
x-go-type-import:
path: github.com/launchdarkly/ldcli/internal/dev_server/model
overrides:
type: object
description: overridden flags for the project
x-go-type: model.FlagsState
x-go-type-import:
path: github.com/launchdarkly/ldcli/internal/dev_server/model
availableVariations:
type: object
description: variations
additionalProperties:
type: array
items:
$ref: '#/components/schemas/Variation'
_lastSyncedFromSource:
type: integer
x-go-type: int64
description: unix timestamp for the lat time the flag values were synced from the source environment
FlagValue:
description: value of a feature flag variation
oneOf:
- type: string
- type: boolean
- type: number
- type: object
x-go-type: ldvalue.Value
x-go-type-import:
path: github.com/launchdarkly/go-sdk-common/v3/ldvalue
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-])*$
projectKey:
name: projectKey
in: path
required: true
schema:
type: string
projectExpand:
name: expand
description: Available expand options for this endpoint.
in: query
schema:
type: array
items:
type: string
enum:
- overrides
- availableVariations
flagKey:
name: flagKey
in: path
required: true
schema:
type: string
responses:
ErrorResponse:
description: Error response object
content:
application/json:
schema:
type: object
required:
- code
- message
properties:
code:
type: string
description: specific error code encountered
message:
type: string
description: description of the error
FlagOverride:
description: Flag override
content:
application/json:
schema:
type: object
required:
- override
- value
properties:
value:
$ref: '#/components/schemas/FlagValue'
override:
type: boolean
description: whether or not this is an overridden value or one from the source environment
Project:
description: Project
content:
application/json:
schema:
$ref: '#/components/schemas/Project_2'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: LaunchDarkly API access token. Create personal or service tokens in the LaunchDarkly dashboard under Account Settings.
externalDocs:
description: LaunchDarkly API Documentation
url: https://apidocs.launchdarkly.com/
x-refined-from:
- launchdarkly-rest-api-openapi.yml
- launchdarkly-dev-server-openapi.yml