Hyperbrowser Vaults API

The Vaults API from Hyperbrowser — 2 operation(s) for vaults.

Operations 5

GET /api/vaults List vaults #
POST /api/vaults Create a vault #
GET /api/vaults/{id} Get a vault #
PATCH /api/vaults/{id} Update a vault #
DELETE /api/vaults/{id} Delete a vault #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hyperbrowser:hyperbrowser-vaults-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hyperbrowser-vaults-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hyperbrowser Vaults API
  version: 1.0.0
servers:
- url: https://api.hyperbrowser.ai
  description: Production server
tags:
- name: Vaults
paths:
  /api/vaults:
    get:
      summary: List vaults
      operationId: listVaults
      description: Lists your team's vaults, sorted by name, with their entries. Secrets are enabled for teams on request; please contact support to enable them (otherwise 403 SECRETS_FEATURE_DISABLED). Restricted API keys need the secrets.read scope. When you're signed in rather than using an API key, you must be a team owner or admin (otherwise 403 SECRETS_ADMIN_REQUIRED).
      security:
      - ApiKeyAuth: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        description: Vaults per page.
      - name: search
        in: query
        required: false
        schema:
          type: string
          maxLength: 256
        description: Only vaults whose name contains this text, ignoring case.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultListResponse'
        '400':
          description: Invalid query parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '403':
          description: API_KEY_SCOPE_DENIED (the API key lacks a required scope), SECRETS_FEATURE_DISABLED, or SECRETS_ADMIN_REQUIRED.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
      tags:
      - Vaults
    post:
      summary: Create a vault
      operationId: createVault
      description: 'Creates a vault: a set of environment variables that point at your secrets. Pass the vault by name as `vault` to POST /api/sandbox and POST /api/sandbox/{id}/processes, or as `{"vault": name}` in a browser session''s `credentials`. A team can have at most 100 vaults. Secrets are enabled for teams on request; please contact support to enable them (otherwise 403 SECRETS_FEATURE_DISABLED). Restricted API keys need the secrets.manage scope. When you''re signed in rather than using an API key, you must be a team owner or admin (otherwise 403 SECRETS_ADMIN_REQUIRED).'
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVaultParams'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vault'
        '400':
          description: Invalid request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '403':
          description: API_KEY_SCOPE_DENIED (the API key lacks a required scope), SECRETS_FEATURE_DISABLED, or SECRETS_ADMIN_REQUIRED.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '404':
          description: 'SECRET_NOT_FOUND or SECRET_VERSION_NOT_FOUND: an entry or the token names a missing secret or version.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '409':
          description: VAULT_NAME_TAKEN, VAULT_LIMIT_REACHED, VAULT_ENTRY_LIMIT_REACHED, or SECRET_TYPE_MISMATCH (an `op_token` secret as an entry).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
      tags:
      - Vaults
  /api/vaults/{id}:
    get:
      summary: Get a vault
      operationId: getVault
      description: Returns a vault and its entries. Secrets are enabled for teams on request; please contact support to enable them (otherwise 403 SECRETS_FEATURE_DISABLED). Restricted API keys need the secrets.read scope. When you're signed in rather than using an API key, you must be a team owner or admin (otherwise 403 SECRETS_ADMIN_REQUIRED).
      security:
      - ApiKeyAuth: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Vault ID.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vault'
        '400':
          description: Invalid vault ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '403':
          description: API_KEY_SCOPE_DENIED (the API key lacks a required scope), SECRETS_FEATURE_DISABLED, or SECRETS_ADMIN_REQUIRED.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '404':
          description: 'VAULT_NOT_FOUND: no vault with this ID in your team.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
      tags:
      - Vaults
    patch:
      summary: Update a vault
      operationId: updateVault
      description: Changes a vault's description or entries. Entries you pass replace those variables and `null` removes one; others are kept. Processes that already started keep the values they received. Secrets are enabled for teams on request; please contact support to enable them (otherwise 403 SECRETS_FEATURE_DISABLED). Restricted API keys need the secrets.manage scope. When you're signed in rather than using an API key, you must be a team owner or admin (otherwise 403 SECRETS_ADMIN_REQUIRED).
      security:
      - ApiKeyAuth: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Vault ID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVaultParams'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vault'
        '400':
          description: Invalid request body, or nothing to change.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '403':
          description: API_KEY_SCOPE_DENIED (the API key lacks a required scope), SECRETS_FEATURE_DISABLED, or SECRETS_ADMIN_REQUIRED.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '404':
          description: VAULT_NOT_FOUND, SECRET_NOT_FOUND, or SECRET_VERSION_NOT_FOUND.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '409':
          description: VAULT_ENTRY_LIMIT_REACHED or SECRET_TYPE_MISMATCH.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
      tags:
      - Vaults
    delete:
      summary: Delete a vault
      operationId: deleteVault
      description: Permanently deletes a vault. The secrets it points at are kept. Secrets are enabled for teams on request; please contact support to enable them (otherwise 403 SECRETS_FEATURE_DISABLED). Restricted API keys need the secrets.manage scope. When you're signed in rather than using an API key, you must be a team owner or admin (otherwise 403 SECRETS_ADMIN_REQUIRED).
      security:
      - ApiKeyAuth: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Vault ID.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultDeleteResponse'
        '400':
          description: Invalid vault ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '403':
          description: API_KEY_SCOPE_DENIED (the API key lacks a required scope), SECRETS_FEATURE_DISABLED, or SECRETS_ADMIN_REQUIRED.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '404':
          description: 'VAULT_NOT_FOUND: no vault with this ID in your team.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretErrorResponse'
      tags:
      - Vaults
components:
  schemas:
    VaultDeleteResponse:
      type: object
      properties:
        deleted:
          type: boolean
          enum:
          - true
        id:
          type: string
          format: uuid
        name:
          type: string
      required:
      - deleted
      - id
      - name
    CreateVaultParams:
      type: object
      properties:
        name:
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$
          description: 1-128 letters, digits, `_` or `-`, starting with a letter or digit. Unique within your team.
        description:
          type: string
          maxLength: 1024
          default: ''
          description: Trimmed before it's stored.
        entries:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/VaultStoredEntry'
          description: 'Environment variable name to secret. Keys are environment variable names: letters, digits and `_`, not starting with a digit, at most 256 characters. A vault holds at most 32 entries (otherwise 409 VAULT_ENTRY_LIMIT_REACHED).'
          example:
            USERNAME:
              name: github-username
            PASSWORD:
              name: github-password
      required:
      - name
      additionalProperties: false
    Vault:
      type: object
      description: A named set of environment variables. Holds no values.
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$
          description: 1-128 letters, digits, `_` or `-`, starting with a letter or digit. Unique within your team.
        description:
          type: string
          maxLength: 1024
        entries:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/VaultEntry'
          description: Environment variable name to entry.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
      - id
      - name
      - description
      - entries
      - createdAt
      - updatedAt
    UpdateVaultParams:
      type: object
      description: Provide `description`, `entries`, or both.
      properties:
        description:
          type: string
          maxLength: 1024
          description: Replaces the description. Trimmed before it's stored.
        entries:
          type: object
          additionalProperties:
            oneOf:
            - $ref: '#/components/schemas/VaultStoredEntry'
            - type:
              - object
              - 'null'
              enum:
              - null
              description: '`null` removes the variable.'
          description: 'Entries to change: each one given replaces that variable, `null` removes it, and variables not given are kept. Keys are environment variable names: letters, digits and `_`, not starting with a digit, at most 256 characters. A vault holds at most 32 entries (otherwise 409 VAULT_ENTRY_LIMIT_REACHED).'
      minProperties: 1
      additionalProperties: false
    VaultStoredEntry:
      type: object
      description: 'A vault entry: a secret, by name.'
      properties:
        name:
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$
          description: Name of a `secret` or `totp` secret.
        version:
          oneOf:
          - type: string
            enum:
            - latest
          - type: integer
            minimum: 1
            maximum: 2147483647
          description: A version to pin, or `latest`. Omit to follow the latest version.
      required:
      - name
      additionalProperties: false
    VaultListResponse:
      type: object
      properties:
        vaults:
          type: array
          items:
            $ref: '#/components/schemas/Vault'
        totalCount:
          type: integer
        page:
          type: integer
        perPage:
          type: integer
      required:
      - vaults
      - totalCount
      - page
      - perPage
    SecretErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code, such as SECRET_NOT_FOUND.
        message:
          type: string
        error:
          type: string
          description: Set instead of `code` by authentication and API key scope errors (API_KEY_SCOPE_DENIED).
        requiredScopes:
          type: array
          items:
            type: string
          description: The scope the API key is missing, with API_KEY_SCOPE_DENIED.
        retryable:
          type: boolean
          description: Whether repeating the same request can succeed. Set on delivery errors.
        details:
          type: object
          additionalProperties: true
          description: Extra information for some codes, such as `origin` for CREDENTIAL_ORIGIN_NOT_ALLOWED or `pages` for CREDENTIAL_PAGE_AMBIGUOUS.
      description: HTTP failure. Secret errors include `code` and `message`; request validation errors include only `message`; API key scope errors include `error`, `message` and `requiredScopes`.
    VaultEntry:
      description: 'An entry as returned: the secret''s `name`, `secretId` and pinned `version` (`null` follows the latest).'
      type: object
      properties:
        name:
          type: string
        secretId:
          type: string
          format: uuid
        version:
          type:
          - integer
          - 'null'
      required:
      - name
      - secretId
      - version
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
    X402SessionManagement:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: The managementToken from the X402 session purchase response. Valid for 24 hours and scoped to that session; no API key or further payment is required.
x-provenance:
  method: harvested
  publisher: Hyperbrowser
  source: https://www.hyperbrowser.ai/docs/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)