Particle Devices API

The Devices API from Particle — 9 operation(s) for devices.

Operations 12

POST /v1/devices Claim a device #
GET /v1/devices List devices #
GET /v1/products/{productIdOrSlug}/devices/{deviceId} Get product device information #
DELETE /v1/devices/{deviceId} Unclaim device #
GET /v1/devices/{deviceId} Get device information #
PUT /v1/devices/{deviceId} Update device (rename, notes, signal, OTA settings)
GET /v1/serial_numbers/{serial_number} Look up device identification from a serial number #
GET /v1/products/{productIdOrSlug}/devices List devices in a product #
GET /v1/products/{productIdOrSlug}/device_orders List device orders for a product #
GET /v1/devices/{deviceId}/{varName} Get a variable value #
POST /v1/devices/{deviceId}/{functionName} Call a function #
PUT /v1/devices/{deviceId}/ping Ping a device #

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-devices-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-devices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Particle Devices API
  version: 1.0.0
  description: 'Operations tagged Devices across 2 of this provider''s published API definitions: particle-cloud-api-openapi.yml, particle-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.particle.io
  description: Particle Cloud API
tags:
- name: Devices
paths:
  /v1/devices:
    post:
      summary: Claim a device
      operationId: ClaimDevice
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Claim a new or unclaimed device to your account.
      security:
      - bearerAuth: []
    get:
      summary: List devices
      operationId: ListDevices
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: List devices the currently authenticated user has access to. By default, devices will be sorted by last_handshake_at in descending order.
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/products/{productIdOrSlug}/devices/{deviceId}:
    get:
      summary: Get product device information
      operationId: GetProductDevice
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Get basic information about a given device that is part of a product See Get device information for the response attributes
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/devices/{deviceId}:
    delete:
      summary: Unclaim device
      operationId: unclaimDevice
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: 'Remove ownership of a device. This will unclaim regardless if the device is owned by a user or a customer, in the case of a product. When using this endpoint to unclaim a product device, the route looks slightly different: DELETE /v1/products/:productIdOrSlug/devices/:deviceId/owner Note the /owner at the end of the route.'
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    get:
      summary: Get device information
      operationId: GetDevice
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Get basic information about the given device, including the custom variables and functions it has exposed. This can be called for sandbox devices claimed to your account and for product devices you have access to, regardless of claiming.
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    put:
      summary: Update device (rename, notes, signal, OTA settings)
      parameters:
      - in: path
        name: deviceId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                name:
                  type: string
                notes:
                  type: string
                signal:
                  type: integer
      responses:
        '200':
          description: Device updated.
      tags:
      - Devices
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/serial_numbers/{serial_number}:
    get:
      summary: Look up device identification from a serial number
      operationId: GetV1Serial_numbersSerial_number
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Return the device ID and SIM card ICCD (if applicable) for a device by serial number. This API can look up devices that you have not yet added to your product and is rate limited to 50 requests per hour. Once you've imported your devices to your product you should instead use the list devices in a product API and filter on serial number. No special rate limits apply to that API.
      parameters:
      - name: serial_number
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/products/{productIdOrSlug}/devices:
    get:
      summary: List devices in a product
      operationId: listDevicesForProduct
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: List all devices that are part of a product. Results are paginated, by default returns 25 device records per page.
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/products/{productIdOrSlug}/device_orders:
    get:
      summary: List device orders for a product
      operationId: listDeviceOrdersForProduct
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: List device orders associated with the product's organization. Each element represents a single shiment from a wholesale device order. Returns the full list — not paginated. Sorted by latest_fulfilled_at desc (most recently fulfilled first).
      parameters:
      - name: productIdOrSlug
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/devices/{deviceId}/{varName}:
    get:
      summary: Get a variable value
      operationId: GetDeviceVariable
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Request the current value of a variable exposed by the device. Variables can be read on a device you own, or for any device that is part of a product you are a team member of.
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      - name: varName
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/devices/{deviceId}/{functionName}:
    post:
      summary: Call a function
      operationId: PostV1DevicesDeviceidFunctionname
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: Call a function exposed by the device, with arguments passed in the request body. Functions can be called on a device you own, or for any device that is part of a product you are a team member of.
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      - name: functionName
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
  /v1/devices/{deviceId}/ping:
    put:
      summary: Ping a device
      operationId: PutV1DevicesDeviceidPing
      tags:
      - Devices
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      description: This will ping a device, enabling you to see if your device is online or offline
      parameters:
      - name: deviceId
        in: path
        required: true
        schema:
          type: string
      security:
      - bearerAuth: []
    servers:
    - url: https://api.particle.io
      description: Particle Cloud API
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 bearer token. Obtain via POST /oauth/token.
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: OAuth2 access token
      description: 'Pass `Authorization: Bearer {access_token}`. Tokens are issued via

        `POST /oauth/token`.

        '
externalDocs:
  description: Particle Cloud API Reference
  url: https://docs.particle.io/reference/cloud-apis/api/
x-refined-from:
- particle-cloud-api-openapi.yml
- particle-openapi.yml