openapi: 3.0.3 info: title: Infisical Admin Secrets API description: List of all available APIs that can be consumed version: 0.0.1 servers: - url: https://us.infisical.com description: Production server (US) - url: https://eu.infisical.com description: Production server (EU) - url: http://localhost:8080 description: Local server tags: - name: Secrets paths: /api/v3/secrets/tags/{secretName}: post: tags: - Secrets description: Attach tags to a secret requestBody: required: true content: application/json: schema: type: object properties: projectSlug: type: string description: The slug of the project where the secret is located. environment: type: string description: The slug of the environment where the secret is located secretPath: type: string default: / description: The path of the secret to attach tags to. type: type: string enum: - shared - personal default: shared description: The type of the secret to attach tags to. (shared/personal) tagSlugs: type: array items: type: string minItems: 1 description: An array of existing tag slugs to attach to the secret. required: - projectSlug - environment - tagSlugs additionalProperties: false parameters: - schema: type: string minLength: 1 in: path name: secretName required: true description: The name of the secret to attach tags to. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: secret: type: object properties: id: type: string format: uuid version: type: number default: 1 type: type: string default: shared secretKeyCiphertext: type: string secretKeyIV: type: string secretKeyTag: type: string secretValueCiphertext: type: string secretValueIV: type: string secretValueTag: type: string secretCommentCiphertext: type: string nullable: true secretCommentIV: type: string nullable: true secretCommentTag: type: string nullable: true secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true algorithm: type: string default: aes-256-gcm keyEncoding: type: string default: utf8 metadata: nullable: true userId: type: string format: uuid nullable: true folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false required: - id - secretKeyCiphertext - secretKeyIV - secretKeyTag - secretValueCiphertext - secretValueIV - secretValueTag - folderId - createdAt - updatedAt - tags additionalProperties: false required: - secret additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false delete: tags: - Secrets description: Detach tags from a secret requestBody: required: true content: application/json: schema: type: object properties: projectSlug: type: string description: The slug of the project where the secret is located. environment: type: string description: The slug of the environment where the secret is located. secretPath: type: string default: / description: The path of the secret to detach tags from. type: type: string enum: - shared - personal default: shared description: The type of the secret to attach tags to. (shared/personal) tagSlugs: type: array items: type: string minItems: 1 description: An array of existing tag slugs to detach from the secret. required: - projectSlug - environment - tagSlugs additionalProperties: false parameters: - schema: type: string in: path name: secretName required: true description: The name of the secret to detach tags from. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: secret: type: object properties: id: type: string format: uuid version: type: number default: 1 type: type: string default: shared secretKeyCiphertext: type: string secretKeyIV: type: string secretKeyTag: type: string secretValueCiphertext: type: string secretValueIV: type: string secretValueTag: type: string secretCommentCiphertext: type: string nullable: true secretCommentIV: type: string nullable: true secretCommentTag: type: string nullable: true secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true algorithm: type: string default: aes-256-gcm keyEncoding: type: string default: utf8 metadata: nullable: true userId: type: string format: uuid nullable: true folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false required: - id - secretKeyCiphertext - secretKeyIV - secretKeyTag - secretValueCiphertext - secretValueIV - secretValueTag - folderId - createdAt - updatedAt - tags additionalProperties: false required: - secret additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v3/secrets/raw: get: tags: - Secrets description: List secrets parameters: - schema: type: string in: query name: metadataFilter required: false description: Unencrypted secret metadata key-value pairs used to filter secrets. Only metadata with unencrypted values is supported. When querying for multiple metadata pairs, the query is treated as an AND operation. Secret metadata format is key=value1,value=value2|key=value3,value=value4. - schema: type: string in: query name: workspaceId required: false description: The ID of the project to list secrets from. - schema: type: string in: query name: workspaceSlug required: false description: The slug of the project to list secrets from. This parameter is only applicable by machine identities. - schema: type: string in: query name: environment required: false description: The slug of the environment to list secrets from. - schema: type: string default: / in: query name: secretPath required: false description: The secret path to list secrets from. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: viewSecretValue required: false description: Whether or not to retrieve the secret value. - schema: type: string enum: - 'true' - 'false' default: 'false' in: query name: expandSecretReferences required: false description: Whether or not to expand secret references. - schema: type: string enum: - 'true' - 'false' default: 'false' in: query name: recursive required: false description: Whether or not to fetch all secrets from the specified base path, and all of its subdirectories. Note, the max depth is 20 deep. - schema: type: string enum: - 'true' - 'false' default: 'false' in: query name: include_imports required: false description: Weather to include imported secrets or not. - schema: type: string in: query name: tagSlugs required: false description: The comma separated tag slugs to filter secrets. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretPath: type: string secretValueHidden: type: boolean secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false imports: type: array items: type: object properties: secretPath: type: string environment: type: string folderId: type: string secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - secretValueHidden additionalProperties: false required: - secretPath - environment - secrets additionalProperties: false required: - secrets additionalProperties: false '304': description: Default Response content: application/json: schema: {} '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v3/secrets/raw/id/{secretId}: get: tags: - Secrets parameters: - schema: type: string in: path name: secretId required: true responses: '200': description: Default Response content: application/json: schema: type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretPath: type: string tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretPath additionalProperties: false required: - secret additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v3/secrets/raw/{secretName}: get: tags: - Secrets description: Get a secret by name parameters: - schema: type: string in: query name: workspaceId required: false description: The ID of the project to get the secret from. - schema: type: string in: query name: workspaceSlug required: false description: The slug of the project to get the secret from. - schema: type: string in: query name: environment required: false description: The slug of the environment to get the secret from. - schema: type: string default: / in: query name: secretPath required: false description: The path of the secret to get. - schema: type: number in: query name: version required: false description: The version of the secret to get. - schema: type: string enum: - shared - personal default: shared in: query name: type required: false description: The type of the secret to get. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: viewSecretValue required: false description: Whether or not to retrieve the secret value. - schema: type: string enum: - 'true' - 'false' default: 'false' in: query name: expandSecretReferences required: false description: Whether or not to expand secret references. - schema: type: string enum: - 'true' - 'false' default: 'false' in: query name: include_imports required: false description: Weather to include imported secrets or not. - schema: type: string in: path name: secretName required: true description: The name of the secret to get. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean secretPath: type: string tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden - secretPath additionalProperties: false required: - secret additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false post: tags: - Secrets description: Create secret requestBody: required: true content: application/json: schema: type: object properties: workspaceId: type: string description: The ID of the project to create the secret in. projectSlug: type: string description: The slug of the project to create the secret in. environment: type: string description: The slug of the environment to create the secret in. secretPath: type: string default: / description: The path to create the secret in. secretValue: type: string description: The value of the secret to create. secretComment: type: string default: '' description: Attach a comment to the secret. secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false tagIds: type: array items: type: string description: The ID of the tags to be attached to the created secret. skipMultilineEncoding: type: boolean nullable: true description: Skip multiline encoding for the secret value. type: type: string enum: - shared - personal default: shared description: The type of the secret to create. secretReminderRepeatDays: type: number nullable: true description: Interval for secret rotation notifications, measured in days. secretReminderNote: type: string maxLength: 1024 nullable: true description: Note to be attached in notification email. required: - environment - secretValue additionalProperties: false parameters: - schema: type: string minLength: 1 in: path name: secretName required: true description: The name of the secret to create. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt additionalProperties: false required: - secret additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false patch: tags: - Secrets description: Update secret requestBody: required: true content: application/json: schema: type: object properties: workspaceId: type: string description: The ID of the project to update the secret in. projectSlug: type: string description: The slug of the project to update the secret in. environment: type: string description: The slug of the environment where the secret is located. secretValue: type: string description: The new value of the secret. secretPath: type: string default: / description: The default path for secrets to update or upsert, if not provided in the secret details. skipMultilineEncoding: type: boolean description: Skip multiline encoding for the secret value. type: type: string enum: - shared - personal default: shared description: The type of the secret to update. tagIds: type: array items: type: string description: The ID of the tags to be attached to the updated secret. metadata: type: object additionalProperties: type: string secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false secretReminderNote: type: string maxLength: 1024 nullable: true description: Note to be attached in notification email. secretReminderRepeatDays: type: number nullable: true description: Interval for secret rotation notifications, measured in days. secretReminderRecipients: type: array items: type: string description: An array of user IDs that will receive the reminder email. If not specified, all project members will receive the reminder email. newSecretName: type: string minLength: 1 description: The new name for the secret. secretComment: type: string description: Update comment to the secret. required: - environment additionalProperties: false parameters: - schema: type: string minLength: 1 in: path name: secretName required: true description: The name of the secret to update. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secret additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false delete: tags: - Secrets description: Delete secret requestBody: required: true content: application/json: schema: type: object properties: workspaceId: type: string description: The ID of the project where the secret is located. projectSlug: type: string description: The slug of the project to delete the secret in. environment: type: string description: The slug of the environment where the secret is located. secretPath: type: string default: / description: The path of the secret. type: type: string enum: - shared - personal default: shared description: The type of the secret to delete. required: - environment additionalProperties: false parameters: - schema: type: string minLength: 1 in: path name: secretName required: true description: The name of the secret to delete. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secret additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v3/secrets/move: post: tags: - Secrets requestBody: required: true content: application/json: schema: type: object properties: projectSlug: type: string sourceEnvironment: type: string sourceSecretPath: type: string default: / destinationEnvironment: type: string destinationSecretPath: type: string default: / secretIds: type: array items: type: string shouldOverwrite: type: boolean default: false required: - projectSlug - sourceEnvironment - destinationEnvironment - secretIds additionalProperties: false responses: '200': description: Default Response content: application/json: schema: type: object properties: isSourceUpdated: type: boolean isDestinationUpdated: type: boolean required: - isSourceUpdated - isDestinationUpdated additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v3/secrets/batch/raw: post: tags: - Secrets description: Create many secrets requestBody: required: true content: application/json: schema: type: object properties: projectSlug: type: string description: The slug of the project to update the secret in. workspaceId: type: string description: The ID of the project to update the secret in. environment: type: string description: The slug of the environment to create the secret in. secretPath: type: string default: / description: The path to create the secret in. secrets: type: array items: type: object properties: secretKey: type: string minLength: 1 description: The name of the secret to create. secretValue: type: string description: The value of the secret to create. secretComment: type: string default: '' description: Attach a comment to the secret. skipMultilineEncoding: type: boolean nullable: true description: Skip multiline encoding for the secret value. metadata: type: object additionalProperties: type: string secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false tagIds: type: array items: type: string description: The ID of the tags to be attached to the created secret. required: - secretKey - secretValue additionalProperties: false minItems: 1 required: - environment - secrets additionalProperties: false security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt additionalProperties: false required: - secrets additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false patch: tags: - Secrets description: Update many secrets requestBody: required: true content: application/json: schema: type: object properties: projectSlug: type: string description: The slug of the project to delete the secret in. workspaceId: type: string description: The ID of the project where the secret is located. environment: type: string description: The slug of the environment where the secret is located. secretPath: type: string default: / description: The default path for secrets to update or upsert, if not provided in the secret details. mode: type: string enum: - ignore - upsert - failOnNotFound default: failOnNotFound description: Defines how the system should handle missing secrets during an update. secrets: type: array items: type: object properties: secretKey: type: string minLength: 1 description: The name of the secret to update. secretValue: type: string description: The new value of the secret. secretPath: type: string description: The default path for secrets to update or upsert, if not provided in the secret details. secretComment: type: string description: Update comment to the secret. skipMultilineEncoding: type: boolean description: Skip multiline encoding for the secret value. newSecretName: type: string minLength: 1 description: The new name for the secret. tagIds: type: array items: type: string description: The ID of the tags to be attached to the updated secret. secretReminderNote: type: string maxLength: 1024 nullable: true description: Note to be attached in notification email. secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false secretReminderRepeatDays: type: number nullable: true description: Interval for secret rotation notifications, measured in days. required: - secretKey additionalProperties: false minItems: 1 required: - environment - secrets additionalProperties: false security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secrets additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false delete: tags: - Secrets description: Delete many secrets requestBody: required: true content: application/json: schema: type: object properties: projectSlug: type: string description: The slug of the project to delete the secret in. workspaceId: type: string description: The ID of the project where the secret is located. environment: type: string description: The slug of the environment where the secret is located. secretPath: type: string default: / description: The path of the secret. secrets: type: array items: type: object properties: secretKey: type: string description: The name of the secret to delete. type: type: string enum: - shared - personal default: shared required: - secretKey additionalProperties: false minItems: 1 required: - environment - secrets additionalProperties: false security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secrets additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets: get: operationId: listSecretsV4 tags: - Secrets description: List secrets parameters: - schema: type: string in: query name: metadataFilter required: false description: Unencrypted secret metadata key-value pairs used to filter secrets. Only metadata with unencrypted values is supported. When querying for multiple metadata pairs, the query is treated as an AND operation. Secret metadata format is key=value1,value=value2|key=value3,value=value4. - schema: type: string in: query name: projectId required: false description: The ID of the project to list secrets from. - schema: type: string in: query name: environment required: false description: The slug of the environment to list secrets from. - schema: type: string default: / in: query name: secretPath required: false description: The secret path to list secrets from. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: viewSecretValue required: false description: Whether or not to retrieve the secret value. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: expandSecretReferences required: false description: Whether or not to expand secret references. - schema: type: string enum: - 'true' - 'false' default: 'false' in: query name: recursive required: false description: Whether or not to fetch all secrets from the specified base path, and all of its subdirectories. Note, the max depth is 20 deep. - schema: type: string enum: - 'true' - 'false' default: 'false' in: query name: includePersonalOverrides required: false description: Whether or not to include personal secrets in the response. When enabled, personal secrets will be included in the response. Shared secrets will still be included, but personal secrets will take priority, and the corresponding shared secrets will be replaced with the personal secrets. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: includeImports required: false description: Weather to include imported secrets or not. - schema: type: string in: query name: tagSlugs required: false description: The comma separated tag slugs to filter secrets. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretPath: type: string secretValueHidden: type: boolean secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false imports: type: array items: type: object properties: secretPath: type: string environment: type: string folderId: type: string secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - secretValueHidden additionalProperties: false required: - secretPath - environment - secrets additionalProperties: false required: - secrets additionalProperties: false '304': description: Default Response content: application/json: schema: {} '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets/id/{secretId}: get: operationId: getSecretByIdV4 tags: - Secrets parameters: - schema: type: string in: path name: secretId required: true responses: '200': description: Default Response content: application/json: schema: type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretPath: type: string tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretPath additionalProperties: false required: - secret additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets/{secretName}: get: operationId: getSecretByNameV4 tags: - Secrets description: Get a secret by name parameters: - schema: type: string in: query name: projectId required: true description: The ID of the project to get the secret from. - schema: type: string in: query name: environment required: false description: The slug of the environment to get the secret from. - schema: type: string default: / in: query name: secretPath required: false description: The path of the secret to get. - schema: type: number in: query name: version required: false description: The version of the secret to get. - schema: type: string enum: - shared - personal default: shared in: query name: type required: false description: The type of the secret to get. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: viewSecretValue required: false description: Whether or not to retrieve the secret value. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: expandSecretReferences required: false description: Whether or not to expand secret references. - schema: type: string enum: - 'true' - 'false' default: 'true' in: query name: includeImports required: false description: Weather to include imported secrets or not. - schema: type: string in: path name: secretName required: true description: The name of the secret to get. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean secretPath: type: string tags: type: array items: type: object properties: id: type: string format: uuid slug: type: string color: type: string nullable: true name: type: string required: - id - slug - name additionalProperties: false secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden - secretPath additionalProperties: false required: - secret additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false post: operationId: createSecretV4 tags: - Secrets description: Create secret requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string description: The ID of the project to create the secret in. environment: type: string description: The slug of the environment to create the secret in. secretPath: type: string default: / description: The path to create the secret in. secretValue: type: string description: The value of the secret to create. secretComment: type: string default: '' description: Attach a comment to the secret. secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false tagIds: type: array items: type: string description: The ID of the tags to be attached to the created secret. skipMultilineEncoding: type: boolean nullable: true description: Skip multiline encoding for the secret value. type: type: string enum: - shared - personal default: shared description: The type of the secret to create. secretReminderRepeatDays: type: number nullable: true description: Interval for secret rotation notifications, measured in days. secretReminderNote: type: string maxLength: 1024 nullable: true description: Note to be attached in notification email. required: - projectId - environment - secretValue additionalProperties: false parameters: - schema: type: string minLength: 1 in: path name: secretName required: true description: The name of the secret to create. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt additionalProperties: false required: - secret additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false patch: operationId: updateSecretV4 tags: - Secrets description: Update secret requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string description: The ID of the project to update the secret in. environment: type: string description: The slug of the environment where the secret is located. secretValue: type: string description: The new value of the secret. secretPath: type: string default: / description: The default path for secrets to update or upsert, if not provided in the secret details. skipMultilineEncoding: type: boolean description: Skip multiline encoding for the secret value. type: type: string enum: - shared - personal default: shared description: The type of the secret to update. tagIds: type: array items: type: string description: The ID of the tags to be attached to the updated secret. metadata: type: object additionalProperties: type: string secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false secretReminderNote: type: string maxLength: 1024 nullable: true description: Note to be attached in notification email. secretReminderRepeatDays: type: number nullable: true description: Interval for secret rotation notifications, measured in days. secretReminderRecipients: type: array items: type: string description: An array of user IDs that will receive the reminder email. If not specified, all project members will receive the reminder email. newSecretName: type: string minLength: 1 description: The new name for the secret. secretComment: type: string description: Update comment to the secret. required: - projectId - environment additionalProperties: false parameters: - schema: type: string minLength: 1 in: path name: secretName required: true description: The name of the secret to update. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secret additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false delete: operationId: deleteSecretV4 tags: - Secrets description: Delete secret requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string description: The ID of the project where the secret is located. environment: type: string description: The slug of the environment where the secret is located. secretPath: type: string default: / description: The path of the secret. type: type: string enum: - shared - personal default: shared description: The type of the secret to delete. required: - projectId - environment additionalProperties: false parameters: - schema: type: string minLength: 1 in: path name: secretName required: true description: The name of the secret to delete. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secret: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secret additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets/move: post: operationId: moveSecretsV4 tags: - Secrets requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string sourceEnvironment: type: string sourceSecretPath: type: string default: / destinationEnvironment: type: string destinationSecretPath: type: string default: / secretIds: type: array items: type: string shouldOverwrite: type: boolean default: false required: - projectId - sourceEnvironment - destinationEnvironment - secretIds additionalProperties: false responses: '200': description: Default Response content: application/json: schema: type: object properties: isSourceUpdated: type: boolean isDestinationUpdated: type: boolean required: - isSourceUpdated - isDestinationUpdated additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets/duplicate: post: operationId: duplicateSecretV4 tags: - Secrets description: Duplicate one or more static secrets into another environment requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string description: The ID of the project containing the secret. sourceEnvironment: type: string description: The slug of the source environment. sourceSecretPath: type: string default: / description: The folder path of the source secret. destinationEnvironment: type: string description: The slug of the destination environment. destinationSecretPath: type: string default: / description: The folder path where the secret will be duplicated to. secretIds: type: array items: type: string format: uuid minItems: 1 maxItems: 50 description: Array of source secret IDs to duplicate. All secrets must belong to the source environment and path. Rotation and honey-token secrets cannot be duplicated. Maximum 50 secrets per request. shouldOverwrite: type: boolean default: false description: When true, overwrite an existing secret with the same key at the destination. When false (default), the request fails if the destination already has a secret with that key. attributesToCopy: type: object properties: value: type: boolean default: false comment: type: boolean default: false tags: type: boolean default: false metadata: type: boolean default: false skipMultilineEncoding: type: boolean default: false additionalProperties: false default: {} description: 'Object specifying which attributes of the source secret to copy to the destination. Each key is optional and defaults to false. Available keys: value, comment, tags, metadata, skipMultilineEncoding.' required: - projectId - sourceEnvironment - destinationEnvironment - secretIds additionalProperties: false security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: results: type: array items: anyOf: - type: object properties: sourceSecretId: type: string sourceSecretKey: type: string destinationSecretId: type: string required: - sourceSecretId - sourceSecretKey - destinationSecretId additionalProperties: false - type: object properties: sourceSecretId: type: string sourceSecretKey: type: string approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - sourceSecretId - sourceSecretKey - approval additionalProperties: false description: Returned when the destination has an active secret-approval policy. required: - results additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets/batch: post: operationId: createManySecretsV4 tags: - Secrets description: Create many secrets requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string description: The ID of the project to update the secret in. environment: type: string description: The slug of the environment to create the secret in. secretPath: type: string default: / description: The path to create the secret in. secrets: type: array items: type: object properties: secretKey: type: string minLength: 1 description: The name of the secret to create. secretValue: type: string description: The value of the secret to create. secretComment: type: string default: '' description: Attach a comment to the secret. skipMultilineEncoding: type: boolean nullable: true description: Skip multiline encoding for the secret value. metadata: type: object additionalProperties: type: string secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false tagIds: type: array items: type: string description: The ID of the tags to be attached to the created secret. required: - secretKey - secretValue additionalProperties: false minItems: 1 required: - projectId - environment - secrets additionalProperties: false security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt additionalProperties: false required: - secrets additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false patch: operationId: updateManySecretsV4 tags: - Secrets description: Update many secrets requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string description: The ID of the project where the secret is located. environment: type: string description: The slug of the environment where the secret is located. secretPath: type: string default: / description: The default path for secrets to update or upsert, if not provided in the secret details. mode: type: string enum: - ignore - upsert - failOnNotFound default: failOnNotFound description: Defines how the system should handle missing secrets during an update. secrets: type: array items: type: object properties: secretKey: type: string minLength: 1 description: The name of the secret to update. secretValue: type: string description: The new value of the secret. secretPath: type: string description: The default path for secrets to update or upsert, if not provided in the secret details. secretComment: type: string description: Update comment to the secret. skipMultilineEncoding: type: boolean description: Skip multiline encoding for the secret value. newSecretName: type: string minLength: 1 description: The new name for the secret. tagIds: type: array items: type: string description: The ID of the tags to be attached to the updated secret. secretReminderNote: type: string maxLength: 1024 nullable: true description: Note to be attached in notification email. secretMetadata: type: array items: type: object properties: key: type: string minLength: 1 maxLength: 255 value: type: string maxLength: 1020 default: '' isEncrypted: type: boolean default: false required: - key additionalProperties: false secretReminderRepeatDays: type: number nullable: true description: Interval for secret rotation notifications, measured in days. required: - secretKey additionalProperties: false minItems: 1 required: - projectId - environment - secrets additionalProperties: false security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secrets additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false delete: operationId: deleteManySecretsV4 tags: - Secrets description: Delete many secrets requestBody: required: true content: application/json: schema: type: object properties: projectId: type: string description: The ID of the project where the secret is located. environment: type: string description: The slug of the environment where the secret is located. secretPath: type: string default: / description: The path of the secret. secrets: type: array items: type: object properties: secretKey: type: string description: The name of the secret to delete. type: type: string enum: - shared - personal default: shared required: - secretKey additionalProperties: false minItems: 1 required: - projectId - environment - secrets additionalProperties: false security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object properties: secrets: type: array items: type: object properties: id: type: string _id: type: string workspace: type: string environment: type: string version: type: number type: type: string secretKey: type: string secretValue: type: string secretComment: type: string secretReminderNote: type: string nullable: true secretReminderRepeatDays: type: number nullable: true skipMultilineEncoding: type: boolean default: false nullable: true createdAt: type: string format: date-time updatedAt: type: string format: date-time actor: type: object properties: actorId: type: string nullable: true actorType: type: string nullable: true name: type: string nullable: true membershipId: type: string nullable: true groupId: type: string nullable: true additionalProperties: false nullable: true isRotatedSecret: type: boolean rotationId: type: string format: uuid nullable: true secretValueHidden: type: boolean required: - id - _id - workspace - environment - version - type - secretKey - secretValue - secretComment - createdAt - updatedAt - secretValueHidden additionalProperties: false required: - secrets additionalProperties: false - type: object properties: approval: type: object properties: id: type: string format: uuid policyId: type: string format: uuid hasMerged: type: boolean default: false status: type: string default: open conflicts: nullable: true slug: type: string folderId: type: string format: uuid createdAt: type: string format: date-time updatedAt: type: string format: date-time isReplicated: type: boolean nullable: true committerUserId: type: string format: uuid nullable: true statusChangedByUserId: type: string format: uuid nullable: true bypassReason: type: string nullable: true required: - id - policyId - slug - folderId - createdAt - updatedAt additionalProperties: false required: - approval additionalProperties: false description: When secret protection policy is enabled '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets/{secretName}/reference-dependency-tree: get: operationId: getSecretReferencesV4 tags: - Secrets description: Get secret reference dependency tree parameters: - schema: type: string in: query name: projectId required: true description: The ID of the project where the secret is located. - schema: type: string in: query name: environment required: true description: The slug of the environment where the the secret is located. - schema: type: string default: / in: query name: secretPath required: false description: The folder path where the secret is located. - schema: type: string in: path name: secretName required: true description: The name of the secret to get the reference tree for. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: tree: type: object properties: key: type: string value: type: string environment: type: string secretPath: type: string children: type: array items: {} required: - key - environment - secretPath - children additionalProperties: false required: - tree additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false /api/v4/secrets/{secretName}/secret-reference-tree: get: operationId: getSecretReferenceTreeV4 tags: - Secrets description: Get secret reference tree parameters: - schema: type: string in: query name: projectId required: true description: The ID of the project where the secret is located. - schema: type: string in: query name: environment required: true description: The slug of the environment where the the secret is located. - schema: type: string default: / in: query name: secretPath required: false description: The folder path where the secret is located. - schema: type: string in: path name: secretName required: true description: The name of the secret to get the reference tree for. security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: tree: type: object properties: key: type: string value: type: string environment: type: string secretPath: type: string children: type: array items: {} required: - key - environment - secretPath - children additionalProperties: false value: type: string required: - tree additionalProperties: false '400': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 400 message: type: string error: type: string details: {} required: - reqId - statusCode - message - error additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 401 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '403': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 403 message: type: string details: {} error: type: string required: - reqId - statusCode - message - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 404 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false '422': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 422 message: {} error: type: string required: - reqId - statusCode - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: reqId: type: string statusCode: type: number enum: - 500 message: type: string error: type: string required: - reqId - statusCode - message - error additionalProperties: false components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: An access token in Infisical