HashiCorp Vault Leases API

Look up, renew, and revoke leases for secrets and tokens.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

vault-leases-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: HashiCorp Vault KV Secrets Engine Auth Methods Leases API
  description: 'The HashiCorp Vault KV (Key/Value) secrets engine API provides endpoints for reading, writing, versioning, and managing secrets stored in Vault. KV v2 supports secret versioning, metadata management, soft delete, and permanent destruction of secret versions. All paths are mounted under the KV engine mount point (default: secret/).'
  version: '2.0'
  contact:
    name: HashiCorp Support
    url: https://support.hashicorp.com
  termsOfService: https://www.hashicorp.com/terms-of-service
  license:
    name: BUSL-1.1
    url: https://github.com/hashicorp/vault/blob/main/LICENSE
  x-generated-from: documentation
servers:
- url: https://vault.example.com/v1
  description: Vault Server Instance
security:
- vaultToken: []
tags:
- name: Leases
  description: Look up, renew, and revoke leases for secrets and tokens.
paths:
  /sys/leases/lookup:
    put:
      operationId: lookupLease
      summary: HashiCorp Vault Lookup Lease
      description: Retrieve information about a lease including its expiration time, renewable status, and associated secret path.
      tags:
      - Leases
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeaseIdRequest'
            examples:
              lookupLeaseRequestExample:
                summary: Default lookupLease request
                x-microcks-default: true
                value:
                  lease_id: aws/creds/my-role/abc123
      responses:
        '200':
          description: Successfully retrieved lease information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeaseResponse'
              examples:
                lookupLease200Example:
                  summary: Default lookupLease 200 response
                  x-microcks-default: true
                  value:
                    data:
                      id: aws/creds/my-role/abc123
                      issue_time: '2025-03-15T14:30:00Z'
                      expire_time: '2025-03-15T15:30:00Z'
                      last_renewal: null
                      renewable: true
                      ttl: 3600
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultError'
        '403':
          description: Permission denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sys/leases/renew:
    put:
      operationId: renewLease
      summary: HashiCorp Vault Renew Lease
      description: Renew a lease, extending the TTL of the associated secret or token. Only renewable leases can be renewed.
      tags:
      - Leases
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenewLeaseRequest'
            examples:
              renewLeaseRequestExample:
                summary: Default renewLease request
                x-microcks-default: true
                value:
                  lease_id: aws/creds/my-role/abc123
                  increment: 3600
      responses:
        '200':
          description: Lease renewed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeaseRenewResponse'
              examples:
                renewLease200Example:
                  summary: Default renewLease 200 response
                  x-microcks-default: true
                  value:
                    lease_id: aws/creds/my-role/abc123
                    renewable: true
                    lease_duration: 3600
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultError'
        '403':
          description: Permission denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sys/leases/revoke:
    put:
      operationId: revokeLease
      summary: HashiCorp Vault Revoke Lease
      description: Revoke a lease and the associated secret. For dynamic secrets, this will trigger revocation of the credential in the target system.
      tags:
      - Leases
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeaseIdRequest'
            examples:
              revokeLeaseRequestExample:
                summary: Default revokeLease request
                x-microcks-default: true
                value:
                  lease_id: aws/creds/my-role/abc123
      responses:
        '204':
          description: Lease revoked successfully
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultError'
        '403':
          description: Permission denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    LeaseRenewResponse:
      type: object
      properties:
        lease_id:
          type: string
          description: Lease identifier.
          example: aws/creds/my-role/abc123
        renewable:
          type: boolean
          description: Whether the lease can be further renewed.
          example: true
        lease_duration:
          type: integer
          description: New TTL in seconds.
          example: 3600
    LeaseIdRequest:
      type: object
      required:
      - lease_id
      properties:
        lease_id:
          type: string
          description: Unique identifier of the lease.
          example: aws/creds/my-role/abc123def456
    LeaseResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
              description: Lease identifier.
              example: aws/creds/my-role/abc123
            issue_time:
              type: string
              format: date-time
              description: When the lease was issued.
              example: '2025-03-15T14:30:00Z'
            expire_time:
              type: string
              format: date-time
              description: When the lease will expire.
              example: '2025-03-15T15:30:00Z'
            renewable:
              type: boolean
              description: Whether the lease can be renewed.
              example: true
            ttl:
              type: integer
              description: Remaining TTL in seconds.
              example: 3600
    VaultError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: string
          description: List of error messages.
          example:
          - permission denied
    RenewLeaseRequest:
      type: object
      required:
      - lease_id
      properties:
        lease_id:
          type: string
          description: Unique identifier of the lease to renew.
          example: aws/creds/my-role/abc123def456
        increment:
          type: integer
          description: Requested renewal duration in seconds. Vault may return a shorter duration based on policy limits.
          example: 3600
  securitySchemes:
    vaultToken:
      type: apiKey
      in: header
      name: X-Vault-Token
      description: Vault token for authenticating API requests. Tokens can be created via login endpoints or the token auth method. The token must have appropriate policy permissions for the requested operations.
externalDocs:
  description: Vault KV v2 API Reference
  url: https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2