Particle Devices API
The Devices API from Particle — 9 operation(s) for devices.
The Devices API from Particle — 9 operation(s) for devices.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/particle-devices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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: []
operationId: putV1DevicesByDeviceId
x-operation-id-source: derived
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