Firecracker Machine Config API

The Machine Config API from Firecracker — 1 operation(s) for machine config.

Operations 3

GET /machine-config Gets the machine configuration of the VM. #
PUT /machine-config Updates the Machine Configuration of the VM. Pre-boot only. #
PATCH /machine-config Partially updates the Machine Configuration of the VM. Pre-boot only. #

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/firecracker-machine-config-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

firecracker-machine-config-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Firecracker Actions Machine Config API
  description: RESTful public-facing API. The API is accessible through HTTP calls on specific URLs carrying JSON modeled data. The transport medium is a Unix Domain Socket.
  version: 1.16.0-dev
  termsOfService: ''
  contact:
    email: firecracker-maintainers@amazon.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: http://localhost/
tags:
- name: Machine Config
paths:
  /machine-config:
    get:
      summary: Gets the machine configuration of the VM.
      description: Gets the machine configuration of the VM. When called before the PUT operation, it will return the default values for the vCPU count (=1), memory size (=128 MiB). By default SMT is disabled and there is no CPU Template.
      operationId: getMachineConfiguration
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineConfiguration'
        default:
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Machine Config
    put:
      summary: Updates the Machine Configuration of the VM. Pre-boot only.
      description: Updates the Virtual Machine Configuration with the specified input. Firecracker starts with default values for vCPU count (=1) and memory size (=128 MiB). The vCPU count is restricted to the [1, 32] range. With SMT enabled, the vCPU count is required to be either 1 or an even number in the range. otherwise there are no restrictions regarding the vCPU count. If 2M hugetlbfs pages are specified, then `mem_size_mib` must be a multiple of 2. If any of the parameters has an incorrect value, the whole update fails. All parameters that are optional and are not specified are set to their default values (smt = false, track_dirty_pages = false, cpu_template = None, huge_pages = None).
      operationId: putMachineConfiguration
      responses:
        204:
          description: Machine Configuration created/updated
        400:
          description: Machine Configuration cannot be updated due to bad input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Machine Config
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineConfiguration'
        description: Machine Configuration Parameters
    patch:
      summary: Partially updates the Machine Configuration of the VM. Pre-boot only.
      description: Partially updates the Virtual Machine Configuration with the specified input. If any of the parameters has an incorrect value, the whole update fails.
      operationId: patchMachineConfiguration
      responses:
        204:
          description: Machine Configuration created/updated
        400:
          description: Machine Configuration cannot be updated due to bad input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Machine Config
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineConfiguration'
        description: A subset of Machine Configuration Parameters
components:
  schemas:
    Error:
      type: object
      properties:
        fault_message:
          type: string
          description: A description of the error condition
          readOnly: true
    CpuTemplate:
      type: string
      description: The CPU Template defines a set of flags to be disabled from the microvm so that the features exposed to the guest are the same as in the selected instance type. This parameter has been deprecated and it will be removed in future Firecracker release.
      enum:
      - C3
      - T2
      - T2S
      - T2CL
      - T2A
      - V1N1
      - None
      default: None
    MachineConfiguration:
      type: object
      description: Describes the number of vCPUs, memory size, SMT capabilities, huge page configuration and the CPU template.
      required:
      - mem_size_mib
      - vcpu_count
      properties:
        cpu_template:
          $ref: '#/components/schemas/CpuTemplate'
        smt:
          type: boolean
          description: Flag for enabling/disabling simultaneous multithreading. Can be enabled only on x86.
          default: false
        mem_size_mib:
          type: integer
          description: Memory size of VM
        track_dirty_pages:
          type: boolean
          description: Enable dirty page tracking. If this is enabled, then incremental guest memory snapshots can be created. These belong to diff snapshots, which contain, besides the microVM state, only the memory dirtied since a previous snapshot. Full snapshots each contain a full copy of the guest memory.
          default: false
        vcpu_count:
          type: integer
          minimum: 1
          maximum: 32
          description: Number of vCPUs (either 1 or an even number)
        huge_pages:
          type: string
          enum:
          - None
          - 2M
          description: Which huge pages configuration (if any) should be used to back guest memory.