Vagrant Search API

Endpoints for searching the public Vagrant box catalog by query, provider, and other filters.

OpenAPI Specification

vagrant-search-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Vagrant Cloud Boxes Search API
  description: The Vagrant Cloud API v2 enables developers to programmatically interact with the Vagrant Cloud platform for managing Vagrant boxes, versions, and providers. It supports creating and updating boxes, publishing new versions, uploading provider binaries, and searching the public box catalog. The API uses token-based authentication and is designed for automating box lifecycle management and integrating Vagrant Cloud into CI/CD pipelines.
  version: '2'
  contact:
    name: HashiCorp Support
    url: https://support.hashicorp.com
  termsOfService: https://www.hashicorp.com/terms-of-service
servers:
- url: https://app.vagrantup.com/api/v2
  description: Vagrant Cloud Production Server
security:
- bearerAuth: []
tags:
- name: Search
  description: Endpoints for searching the public Vagrant box catalog by query, provider, and other filters.
paths:
  /search:
    get:
      operationId: searchBoxes
      summary: Search boxes
      description: Searches the public Vagrant box catalog. The search query matches against the username, name, or short_description fields. If the query is omitted, the top boxes based on sort and order are returned.
      tags:
      - Search
      security: []
      parameters:
      - $ref: '#/components/parameters/searchQuery'
      - $ref: '#/components/parameters/searchProvider'
      - $ref: '#/components/parameters/searchSort'
      - $ref: '#/components/parameters/searchOrder'
      - $ref: '#/components/parameters/searchLimit'
      - $ref: '#/components/parameters/searchPage'
      responses:
        '200':
          description: Successful search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
components:
  parameters:
    searchQuery:
      name: q
      in: query
      description: Search query that matches against the username, name, or short_description fields.
      schema:
        type: string
    searchLimit:
      name: limit
      in: query
      description: The number of results to return per page, with a maximum of 100.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    searchSort:
      name: sort
      in: query
      description: The field to sort results on.
      schema:
        type: string
        enum:
        - downloads
        - created
        - updated
        default: downloads
    searchProvider:
      name: provider
      in: query
      description: Filter results to boxes supporting a specific provider such as virtualbox or vmware_desktop.
      schema:
        type: string
    searchPage:
      name: page
      in: query
      description: The page number to return for paginated results.
      schema:
        type: integer
        minimum: 1
        default: 1
    searchOrder:
      name: order
      in: query
      description: The order to return the sorted field in.
      schema:
        type: string
        enum:
        - desc
        - asc
        default: desc
  schemas:
    Provider:
      type: object
      description: A provider represents a specific virtualization platform for which a box file is available within a version.
      properties:
        name:
          type: string
          description: The name of the provider such as virtualbox or vmware_desktop.
        hosted:
          type: boolean
          description: Whether the box file is hosted on Vagrant Cloud.
        hosted_token:
          type: string
          description: The token used for hosted box file downloads.
        original_url:
          type: string
          format: uri
          description: The original URL of the box file if externally hosted.
        download_url:
          type: string
          format: uri
          description: The URL to download the box file.
        created_at:
          type: string
          format: date-time
          description: The timestamp when the provider was created.
        updated_at:
          type: string
          format: date-time
          description: The timestamp when the provider was last updated.
        checksum_type:
          type: string
          description: The type of checksum used for the box file.
          enum:
          - md5
          - sha1
          - sha256
          - sha384
          - sha512
        checksum:
          type: string
          description: The checksum value for the box file.
        architecture:
          type: string
          description: The CPU architecture the box supports such as amd64 or arm64.
        default_architecture:
          type: boolean
          description: Whether this is the default architecture for the provider.
    Version:
      type: object
      description: A version of a Vagrant box following semantic versioning. Versions must be released before they are available for download.
      properties:
        version:
          type: string
          description: The version number following semantic versioning.
        status:
          type: string
          description: The release status of the version.
          enum:
          - unreleased
          - active
          - revoked
        description_html:
          type: string
          description: The version description rendered as HTML.
        description_markdown:
          type: string
          description: The version description in Markdown format.
        created_at:
          type: string
          format: date-time
          description: The timestamp when the version was created.
        updated_at:
          type: string
          format: date-time
          description: The timestamp when the version was last updated.
        number:
          type: string
          description: The version number string.
        downloads:
          type: integer
          description: The total number of downloads for this version.
        providers:
          type: array
          description: List of providers available for this version.
          items:
            $ref: '#/components/schemas/Provider'
    SearchResults:
      type: object
      description: Container for search results returned from the box catalog.
      properties:
        boxes:
          type: array
          description: List of boxes matching the search criteria.
          items:
            $ref: '#/components/schemas/Box'
    Box:
      type: object
      description: A Vagrant box is a package format for Vagrant environments that includes the base image and metadata for one or more providers.
      properties:
        tag:
          type: string
          description: The full tag of the box in username/name format.
        username:
          type: string
          description: The username or organization that owns the box.
        name:
          type: string
          description: The name of the box.
        private:
          type: boolean
          description: Whether the box is private and requires authentication to access.
        downloads:
          type: integer
          description: The total number of downloads for this box across all versions.
        created_at:
          type: string
          format: date-time
          description: The timestamp when the box was created.
        updated_at:
          type: string
          format: date-time
          description: The timestamp when the box was last updated.
        short_description:
          type: string
          description: A brief description of the box, limited to 100 characters.
          maxLength: 100
        description_html:
          type: string
          description: The full description of the box rendered as HTML.
        description_markdown:
          type: string
          description: The full description of the box in Markdown format.
        versions:
          type: array
          description: List of versions available for this box.
          items:
            $ref: '#/components/schemas/Version'
        current_version:
          description: The current released version of this box.
          $ref: '#/components/schemas/Version'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Vagrant Cloud API token passed as a Bearer token in the Authorization header.
externalDocs:
  description: Vagrant Cloud API v2 Documentation
  url: https://developer.hashicorp.com/vagrant/vagrant-cloud/api/v2