Particle ProductFirmware API

The ProductFirmware API from Particle — 4 operation(s) for productfirmware.

Operations 7

GET /v1/products/{productIdOrSlug}/firmware/{version} Get product firmware #
PUT /v1/products/{productIdOrSlug}/firmware/{version} Edit product firmware #
DELETE /v1/products/{productIdOrSlug}/firmware/{version} Delete unreleased firmware binary #
GET /v1/products/{productIdOrSlug}/firmware List all product firmwares #
POST /v1/products/{productIdOrSlug}/firmware Upload product firmware #
GET /v1/products/{productIdOrSlug}/firmware/{version}/binary Download firmware binary #
PUT /v1/products/{productIdOrSlug}/firmware/release Release product firmware #

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/particle-productfirmware-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

particle-productfirmware-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Particle Cloud Product Firmware API
  description: The Particle Cloud REST API enables developers to interact with Particle-connected devices — calling device functions, reading variables, publishing and subscribing to events, managing SIM cards, performing OTA firmware updates, and administering product fleets. All requests use OAuth 2.0 bearer tokens and target https://api.particle.io.
  version: 1.0.0
  contact:
    name: Particle Developer Support
    url: https://docs.particle.io/reference/cloud-apis/api/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.particle.io
  description: Particle Cloud API
security:
- bearerAuth: []
tags:
- name: ProductFirmware
paths:
  /v1/products/{productIdOrSlug}/firmware/{version}:
    get:
      summary: Get product firmware
      operationId: getProductFirmwareVersion
      tags:
      - ProductFirmware
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Get a specific version of product firmware
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
    put:
      summary: Edit product firmware
      operationId: editProductFirmware
      tags:
      - ProductFirmware
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Edit a specific product firmware version
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
    delete:
      summary: Delete unreleased firmware binary
      operationId: deleteProductFirmware
      tags:
      - ProductFirmware
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Delete a version of product firmware that has never been released.
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
  /v1/products/{productIdOrSlug}/firmware:
    get:
      summary: List all product firmwares
      operationId: listAllProductFirmwares
      tags:
      - ProductFirmware
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: List all versions of product firmware
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
    post:
      summary: Upload product firmware
      operationId: uploadProductFirmware
      tags:
      - ProductFirmware
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Upload a new firmware version to a product
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
  /v1/products/{productIdOrSlug}/firmware/{version}/binary:
    get:
      summary: Download firmware binary
      operationId: downloadProductFirmwareBinary
      tags:
      - ProductFirmware
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Retrieve and download the original binary of a version of product firmware.
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
      - name: version
        in: path
        required: true
        schema:
          type: string
  /v1/products/{productIdOrSlug}/firmware/release:
    put:
      summary: Release product firmware
      operationId: releaseProductFirmware
      tags:
      - ProductFirmware
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: 'Release a version of firmware to the fleet of product devices. When releasing as the product default, all non-development devices that are not individually locked to a version of product firmware will automatically download and run this version of firmware the next time they handshake with the cloud. You can also release firmware to specific groups for more fine-grained firmware management. Note: Before releasing firmware for the first time, the firmware must be running on at least one device in your product fleet that has successfully re-connected to the Particle cloud.'
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 bearer token. Obtain via POST /oauth/token.
externalDocs:
  description: Particle Cloud API Reference
  url: https://docs.particle.io/reference/cloud-apis/api/