Particle API JS

ParticleJS is JavaScript library for the Particle Cloud API for Node.js and the browser. It's open source so you can edit, change or even send in pull requests if you want to share!

This page contains examples to get started using the library.

For more details, see the detailed reference below and check the examples folder on GitHub.

Installation

Node.js

First, make sure you have node.js installed!

Next, open a command prompt or terminal, and install by typing:

$ npm install particle-api-js

Browser

Particle API JS can be included using bower:

$ bower install particle-api-js

Alternately, you can pull in Particle API JS from the JSDelivr and simply include the script in your HTML.

<script type="text/javascript" src="//cdn.jsdelivr.net/particle-api-js/5/particle.min.js">
</script>

Now you will have a Particle object available that you can use in your application.

Responses

All functions in this library return promises.

particle.login({username: 'email@example.com', password: 'pass'}).then(
  function(data){
    console.log('API call completed on promise resolve: ', data.body.access_token);
  },
  function(err) {
    console.log('API call completed on promise fail: ', err);
  }
);

Examples

Here are some common use cases of using the functions in the Javascript library.

Logging in

With username/password

You can create an account here. Use the token from login as the auth parameter in other calls.

var Particle = require('particle-api-js');
var particle = new Particle();
var token;

particle.login({username: 'user@email.com', password: 'pass'}).then(
  function(data) {
    token = data.body.access_token;
  },
  function (err) {
    console.log('Could not log in.', err);
  }
);

Device management

List devices

List devices for a user with listDevices.

var token; // from result of particle.login
var devicesPr = particle.listDevices({ auth: token });

devicesPr.then(
  function(devices){
    console.log('Devices: ', devices);
  },
  function(err) {
    console.log('List devices call failed: ', err);
  }
);

callFunction

Call a function in device with callFunction.

var fnPr = particle.callFunction({ deviceId: 'DEVICE_ID', name: 'brew', argument: 'D0:HIGH', auth: token });

fnPr.then(
  function(data) {
    console.log('Function called succesfully:', data);
  }, function(err) {
    console.log('An error occurred:', err);
  });

The function needs to be defined in the firmware uploaded to the device and registered to the Particle cloud.

You pass along the name of the function and the params.

If the function call succeeds, data.return_value is the value returned by the function call on the Particle device.

claimDevice

Claims device and adds it to the user account with claimDevice

particle.claimDevice({ deviceId: 'DEVICE_ID', auth: token }).then(function(data) {
  console.log('device claim data:', data);
}, function(err) {
  console.log('device claim err:', err);
});

flash

Flash firmware to device with flashDevice

particle.flashDevice({ deviceId: 'DEVICE_ID', files: { file1: './path/file1' }, auth: token }).then(function(data) {
  console.log('Device flashing started successfully:', data);
}, function(err) {
  console.log('An error occurred while flashing the device:', err);
});

getAttributes

Gets all attributes for the device with getDevice

var devicesPr = particle.getDevice({ deviceId: 'DEVICE_ID', auth: token });

devicesPr.then(
  function(data){
    console.log('Device attrs retrieved successfully:', data);
  },
  function(err) {
    console.log('API call failed: ', err);
  }
);

getVariable

Gets a variable value for the device with getVariable

particle.getVariable({ deviceId: 'DEVICE_ID', name: 'temp', auth: token }).then(function(data) {
  console.log('Device variable retrieved successfully:', data);
}, function(err) {
  console.log('An error occurred while getting attrs:', err);
});

The variable needs to be defined in your device's code.

If getting the variable succeeds, data.result is the value of the variable on the Particle device.

removeDevice

Removes device from the user account with removeDevice

particle.removeDevice({ deviceId: 'DEVICE_ID', auth: token }).then(function(data) {
  console.log('remove call response:', data);
}, function(err) {
  console.log('An error occurred while removing:', err);
});

renameDevice

Renames device for the user account with renameDevice

particle.renameDevice({ deviceId: 'DEVICE_ID', name: 'new-name', auth: token }).then(function(data) {
  console.log('Device renamed successfully:', data);
}, function(err) {
  console.log('An error occurred while renaming device:', err);
});

signalDevice

Send a signal to the device to shout rainbows with signalDevice

particle.signalDevice({ deviceId: 'DEVICE_ID', signal: true, auth: token }).then(function(data) {
  console.log('Device is shouting rainbows:', data);
}, function(err) {
  console.log('Error sending a signal to the device:', err);
});

Send a signal to the device to stop shouting rainbows

particle.signalDevice({ deviceId: 'DEVICE_ID', signal: false, auth: token }).then(function(data) {
  console.log('The LED is back to normal:', data);
}, function(err) {
  console.log('Error sending a signal to the device:', err);
});

sendPublicKey

Send public key for a device to the cloud with sendPublicKey

particle.sendPublicKey({ deviceId: 'DEVICE_ID', key: 'key', auth: token }).then(function(data) {
  console.log('Public key sent successfully:', data);
}, function(err) {
  console.log('Error sending public key to the device:', err);
});

Get event stream

Get event listener to an stream in the Particle cloud with getEventStream

//Get all events
particle.getEventStream({ auth: token}).then(function(stream) {
  stream.on('event', function(data) {
    console.log("Event: " + data);
  });
});

//Get your devices events
particle.getEventStream({ deviceId: 'mine', auth: token }).then(function(stream) {
  stream.on('event', function(data) {
    console.log("Event: " + data);
  });
});

//Get test event for specific device
particle.getEventStream({ deviceId: 'DEVICE_ID', name: 'test', auth: token }).then(function(stream) {
  stream.on('event', function(data) {
    console.log("Event: " + data);
  });
});

data is an object with the following properties

{
  "name":"Uptime",
  "data":"5:28:54",
  "ttl":"60",
  "published_at":"2014-MM-DDTHH:mm:ss.000Z",
  "coreid":"012345678901234567890123"
}

Publishing event

Register an event stream in the Particle cloud with publishEvent

var publishEventPr = particle.publishEvent({ name: 'test', data: {}, auth: token });

publishEventPr.then(
  function(data) {
    if (data.body.ok) { console.log("Event published succesfully") }
  },
  function(err) {
    console.log("Failed to publish event: " + err)
  }
);

Working with code

Compiling

Compiles files in the Particle cloud with compileCode

var ccPr = particle.compileCode({ files: { 'main.cpp': './project/main.cpp', 'my_lib/lib.cpp': './project/my_lib/lib.cpp' }, auth: token });

ccPr.then(
  function(data) {
    console.log('Code compilation started successfully:', data);
  }, function(err) {
    console.log('An error occurred while compiling the code:', err);
  });

Flashing

Flash firmware to a device with flashDevice

var flashPr = particle.flashDevice({ deviceId: 'DEVICE_ID',
  files: { file1: './path/to/your/file1' },
  auth: token });

flashPr.then(
  function(data) {
    console.log('Device flashing started successfully:', data);
  }, function(err) {
    console.log('An error occurred while flashing the device:', err);
  });

User management

Create user

Creates a user in the Particle cloud with createUser

particle.createUser({ username: 'example@email.com', password: 'pass' }).then(function(data) {

We try to login and get back an accessToken to verify user creation

  var loginPromise = particle.login('example@email.com', 'pass');

We'll use promises to check the result of the login process

    loginPromise.then(
      function(data) {
        console.log('Login successful! access_token:', data.access_token);
      },
      function(err) {
        console.log('Login failed:', err);
      }
    );
  }
});

List access tokens

Lists access tokens from the Particle cloud for the specified user with listAccessTokens

particle.listAccessTokens({ username: 'u@m.com', password: 'pass' }).then(function(data) {
  console.log('data on listing access tokens: ', data);
}, function(err) {
  console.log('error on listing access tokens: ', err);
});

Delete access token

Removes an access token from the Particle cloud for the specified user with deleteAccessToken

particle.deleteAccessToken({ username: 'u@m.com', password: 'pass', token: 'token' }).then(function(data) {
  console.log('data on deleting accessToken: ', data);
}, function(err) {
  console.log('error on deleting accessToken: ', err);
});

Product support

If you are a product creator you can use the Javascript library to manage devices, firmware, integrations, and more.

Many of the functions in the Jaavascript library accept a product parameter. Pass your product ID number (such as 4567) or the slug (such as myproduct-v100) to make that function act on that product.

Detailed reference

Here a full reference of every function available in the Javascript client library.

constructor

src/Particle.js:25-30

Contructor for the Cloud API wrapper.

Create a new Particle object and call methods below on it.

Parameters

  • options Object Options for this API call Options to be used for all requests (see Defaults) (optional, default {})

login

src/Particle.js:64-73

Login to Particle Cloud using an existing Particle acccount.

Parameters

  • options Object Options for this API call
    • options.username String Username for the Particle account
    • options.password String Password for the Particle account
    • options.tokenDuration Number How long the access token should last in seconds (optional, default this.tokenDuration)
    • options.context

Returns Promise

createUser

src/Particle.js:83-89

Create a user account for the Particle Cloud

Parameters

  • options Object Options for this API call
    • options.username String Email of the new user
    • options.password String Password
    • options.accountInfo String Object that contains account information fields such as user real name, company name, business account flag etc
    • options.context

Returns Promise

verifyUser

src/Particle.js:97-101

Verify new user account via verification email

Parameters

  • options Object Options for this API call
    • options.token String the string token sent in the verification email
    • options.context

Returns Promise

resetPassword

src/Particle.js:109-111

Send reset password email for a Particle Cloud user account

Parameters

  • options Object Options for this API call
    • options.username String Email of the user
    • options.context

Returns Promise

deleteAccessToken

src/Particle.js:121-125

Revoke an access token

Parameters

  • options Object Options for this API call
    • options.username String Username of the Particle cloud account that the token belongs to.
    • options.password String Password for the account
    • options.token String Access token you wish to revoke
    • options.context

Returns Promise

listAccessTokens

src/Particle.js:134-136

List all valid access tokens for a Particle Cloud account

Parameters

  • options Object Options for this API call
    • options.username String Username
    • options.password String Password
    • options.context

Returns Promise

trackingIdentity

src/Particle.js:147-149

Retrieves the information that is used to identify the current login for tracking.

Parameters

  • options Object Options for this API call (optional, default {})
    • options.auth String The access token
    • options.full Boolean When true, retrieve all information for registering a user with the tracking API. When false, retrieve only the unique tracking ID for the current login. (optional, default false)
    • options.context Object Context information.

Returns Promise<Object> Resolve the tracking identify of the current login

listDevices

src/Particle.js:164-168

List devices claimed to the account or product

Parameters

  • options Object Options for this API call
    • options.deviceId String? (Product only) Filter results to devices with this ID (partial matching)
    • options.deviceName String? (Product only) Filter results to devices with this name (partial matching)
    • options.sortAttr String? (Product only) The attribute by which to sort results. See API docs for options.
    • options.sortDir String? (Product only) The direction of sorting. See API docs for options.
    • options.page Number? (Product only) Current page of results
    • options.perPage Number? (Product only) Records per page
    • options.product String? List devices in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

getDevice

src/Particle.js:178-181

Get detailed informationa about a device

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.product String? Device in this product ID or slug
    • options.auth String Access token
    • options.context

Returns Promise

claimDevice

src/Particle.js:190-195

Claim a device to the account. The device must be online and unclaimed.

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID
    • options.auth String Access Token
    • options.requestTransfer
    • options.context

Returns Promise

addDeviceToProduct

src/Particle.js:205-210

Add a device to a product or move device out of quarantine.

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID
    • options.product String Add to this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

removeDevice

src/Particle.js:221-225

Unclaim / Remove a device from your account or product, or deny quarantine

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.deny Boolean? (Product only) Deny this quarantined device, instead of removing an already approved device
    • options.product String Remove from this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

removeDeviceOwner

src/Particle.js:235-238

Unclaim a product device its the owner, but keep it in the product

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.product String Remove from this product ID or slug
    • options.auth String Access Token
    • options.deny
    • options.context

Returns Promise

renameDevice

src/Particle.js:249-251

Rename a device

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.name String Desired Name
    • options.product String? Rename device in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

signalDevice

src/Particle.js:262-264

Instruct the device to turn on/off the LED in a rainbow pattern

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.signal Boolean Signal on or off
    • options.product String? Device in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

setDeviceNotes

src/Particle.js:275-277

Store some notes about device

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.product String? Device in this product ID or slug
    • options.auth String Access Token
    • options.notes
    • options.context

Returns Promise

markAsDevelopmentDevice

src/Particle.js:288-290

Mark device as being used in development of a product so it opts out of automatic firmware updates

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.development Boolean Set to true to mark as development, false to return to product fleet (optional, default true)
    • options.product String Device in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

lockDeviceProductFirmware

src/Particle.js:302-304

Mark device as being used in development of a product so it opts out of automatic firmware updates

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.product String Device in this product ID or slug
    • options.auth String Access Token
    • options.desiredFirmwareVersion
    • options.flash
    • options.context

Returns Promise

unlockDeviceProductFirmware

src/Particle.js:314-316

Mark device as receiving automatic firmware updates

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.product String Device in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

updateDevice

src/Particle.js:333-340

Update multiple device attributes at the same time

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.name String? Desired Name
    • options.signal Boolean Signal device on or off
    • options.development Boolean? (Product only) Set to true to mark as development, false to return to product fleet
    • options.product String? Device in this product ID or slug
    • options.auth String Access Token
    • options.notes
    • options.desiredFirmwareVersion
    • options.flash
    • options.context

Returns Promise

provisionDevice

src/Particle.js:349-351

Provision a new device for products that allow self-provisioning

Parameters

  • options Object Options for this API call
    • options.productId String Product ID where to create this device
    • options.auth String Access Token
    • options.context

Returns Promise

getClaimCode

src/Particle.js:363-366

Generate a claim code to use in the device claiming process. To generate a claim code for a product, the access token MUST belong to a customer of the product.

Parameters

  • options Object Options for this API call
    • options.iccid String? ICCID of the SIM card used in the Electron
    • options.product String? Device in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

getVariable

src/Particle.js:387-392

Get the value of a device variable

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.name String Variable name
    • options.product String? Device in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

flashDevice

src/Particle.js:403-412

Compile and flash application firmware to a device. Pass a pre-compiled binary to flash it directly to the device.

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.files Object Object containing files to be compiled and flashed. Keys should be the filenames, and the values should be a path or Buffer of the file contents.
    • options.targetVersion String System firmware version to compile against (optional, default latest)
    • options.auth String String
    • options.context

Returns Promise

flashTinker

src/Particle.js:421-430

DEPRECATED: Flash the Tinker application to a device. Instead compile and flash the Tinker source code.

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.auth String Access Token
    • options.context

Returns Promise

compileCode

src/Particle.js:441-450

Compile firmware using the Particle Cloud

Parameters

  • options Object Options for this API call
    • options.files Object Object containing files to be compiled. Keys should be the filenames, and the values should be a path or Buffer of the file contents.
    • options.platformId Number? Platform id number of the device you are compiling for. Common values are 0=Core, 6=Photon, 10=Electron.
    • options.targetVersion String System firmware version to compile against (optional, default latest)
    • options.auth String Access Token
    • options.context

Returns Promise

downloadFirmwareBinary

src/Particle.js:459-468

Download a firmware binary

Parameters

  • options Object Options for this API call
    • options.binaryId String Binary ID received from a successful compile call
    • options.auth String Access Token
    • options.context

Returns Request

sendPublicKey

src/Particle.js:479-487

Send a new device public key to the Particle Cloud

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.key (String | Buffer) Public key contents
    • options.algorithm String Algorithm used to generate the public key. Valid values are rsa or ecc. (optional, default rsa)
    • options.auth String Access Token
    • options.context

Returns Promise

callFunction

src/Particle.js:499-504

Call a device function

Parameters

  • options Object Options for this API call
    • options.deviceId String Device ID or Name
    • options.name String Function name
    • options.argument String Function argument
    • options.product String? Device in this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

getEventStream

src/Particle.js:517-541

Get a stream of events

Parameters

  • options Object Options for this API call
    • options.deviceId String? Device ID or Name, or mine to indicate only your devices.
    • options.name String? Event Name
    • options.org String? Organization Slug
    • options.product String? Events for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise If the promise resolves, the resolution value will be an EventStream object that will emit 'event' events, as well as the specific named event.

publishEvent

src/Particle.js:553-557

Publish a event to the Particle Cloud

Parameters

  • options Object Options for this API call
    • options.name String Event name
    • options.data String Event data
    • options.isPrivate Boolean Should the event be publicly available?
    • options.product String? Event for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

createWebhook

src/Particle.js:580-588

Create a webhook

Parameters

  • options Object Options for this API call
    • options.deviceId String Trigger webhook only for this device ID or Name
    • options.name String Webhook name
    • options.url String URL the webhook should hit
    • options.requestType String HTTP method to use (optional, default POST)
    • options.headers Object? Additional headers to add to the webhook
    • options.json Object? JSON data
    • options.query Object? Query string data
    • options.body String? Custom webhook request body
    • options.responseTemplate Object? Webhook response template
    • options.responseTopic Object? Webhook response topic
    • options.rejectUnauthorized Boolean? Reject invalid HTTPS certificates
    • options.webhookAuth Object? HTTP Basic Auth information
    • options.form Object? Form data
    • options.product String? Webhook for this product ID or slug
    • options.auth String Access Token
    • options.noDefaults
    • options.context

Returns Promise

deleteWebhook

src/Particle.js:598-601

Delete a webhook

Parameters

  • options Object Options for this API call
    • options.hookId String Webhook ID
    • options.product String? Webhook for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

listWebhooks

src/Particle.js:610-613

List all webhooks owned by the account or product

Parameters

  • options Object Options for this API call
    • options.product String? Webhooks for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

createIntegration

src/Particle.js:629-633

Create an integration to send events to an external service

See the API docs for details https://docs.particle.io/reference/api/#integrations-webhooks-

Parameters

  • options Object Options for this API call
    • options.integrationType String The kind of external integration. One of Webhook, AzureIotHub, GoogleCloudPubSub, GoogleMaps
    • options.event String Event that triggers the integration
    • options.deviceId String? Trigger integration only for this device ID or Name
    • options.product String? Integration for this product ID or slug
    • options.auth String Access Token
    • options.settings
    • options.context

Returns Promise

editIntegration

src/Particle.js:649-653

Edit an integration to send events to an external service

See the API docs for details https://docs.particle.io/reference/api/#integrations-webhooks-

Parameters

  • options Object Options for this API call
    • options.integrationId String The integration to edit
    • options.event String? Change the event that triggers the integration
    • options.deviceId String? Trigger integration only for this device ID or Name
    • options.product String? Integration for this product ID or slug
    • options.auth String Access Token
    • options.settings
    • options.context

Returns Promise

deleteIntegration

src/Particle.js:664-667

Delete an integration to send events to an external service

Parameters

  • options Object Options for this API call
    • options.integrationId String The integration to remove
    • options.product String? Integration for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

listIntegrations

src/Particle.js:676-679

List all integrations owned by the account or product

Parameters

  • options Object Options for this API call
    • options.product String? Integrations for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

getUserInfo

src/Particle.js:687-689

Get details about the current user

Parameters

  • options Object Options for this API call
    • options.auth String Access Token
    • options.context

Returns Promise

setUserInfo

src/Particle.js:700-708

Set details on the current user

Parameters

  • options Object Options for this API call
    • options.stripeToken String Set user's stripe token for payment
    • options.accountInfo String Set user's extended info fields (name, business account, company name, etc)
    • options.password String Change authenticated user password
    • options.auth String Access Token
    • options.context

Returns Promise

listSIMs

src/Particle.js:722-726

List SIM cards owned by a user or product

Parameters

  • options Object Options for this API call
    • options.iccid String? (Product only) Filter to SIM cards matching this ICCID
    • options.deviceId String? (Product only) Filter to SIM cards matching this device ID
    • options.deviceName String? (Product only) Filter to SIM cards matching this device name
    • options.page Number? (Product only) Current page of results
    • options.perPage Number? (Product only) Records per page
    • options.product String? SIM cards for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

getSIMDataUsage

src/Particle.js:736-741

Get data usage for one SIM card for the current billing period

Parameters

  • options Object Options for this API call
    • options.iccid String ICCID of the SIM card
    • options.product String? SIM card for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

getFleetDataUsage

src/Particle.js:750-752

Get data usage for all SIM cards in a product the current billing period

Parameters

  • options Object Options for this API call
    • options.product String SIM cards for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

activateSIM

src/Particle.js:768-778

Activate and add SIM cards to an account or product

Parameters

  • options Object Options for this API call
    • options.iccid String ICCID of the SIM card
    • options.iccids Array<String> (Product only) ICCID of multiple SIM cards to import
    • options.countryCode String The ISO country code for the SIM cards
    • options.product String? SIM cards for this product ID or slug
    • options.auth String Access Token
    • options.promoCode
    • options.context

Returns Promise

deactivateSIM

src/Particle.js:788-792

Deactivate a SIM card so it doesn't incur data usage in future months.

Parameters

  • options Object Options for this API call
    • options.iccid String ICCID of the SIM card
    • options.product String? SIM cards for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

reactivateSIM

src/Particle.js:803-807

Reactivate a SIM card the was deactivated or unpause a SIM card that was automatically paused

Parameters

  • options Object Options for this API call
    • options.iccid String ICCID of the SIM card
    • options.mbLimit Number? New monthly data limit. Necessary if unpausing a SIM card
    • options.product String? SIM cards for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

updateSIM

src/Particle.js:818-822

Update SIM card data limit

Parameters

  • options Object Options for this API call
    • options.iccid String ICCID of the SIM card
    • options.mbLimit Array Data limit in megabyte for the SIM card
    • options.product String? SIM cards for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

removeSIM

src/Particle.js:832-835

Remove a SIM card from an account so it can be activated by a different account

Parameters

  • options Object Options for this API call
    • options.iccid String ICCID of the SIM card
    • options.product String? SIM cards for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

listBuildTargets

src/Particle.js:844-850

List valid build targets to be used for compiling

Parameters

  • options Object Options for this API call
    • options.onlyFeatured Boolean Only list featured build targets (optional, default false)
    • options.auth String Access Token
    • options.context

Returns Promise

listLibraries

src/Particle.js:874-885

List firmware libraries

Parameters

  • options Object Options for this API call
    • options.page Number Page index (default, first page)
    • options.limit Number Number of items per page
    • options.filter String Search term for the libraries
    • options.sort String Ordering key for the library list
    • options.architectures Array<String> List of architectures to filter
    • options.category String Category to filter
    • options.scope String The library scope to list. Default is 'all'. Other values are- 'all' - list public libraries and my private libraries
      • 'public' - list only public libraries
      • 'private' - list only my private libraries
      • 'mine' - list my libraries (public and private)
      • 'official' - list only official libraries
      • 'verified' - list only verified libraries
      • 'featured' - list only featured libraries
    • options.excludeScopes String list of scopes to exclude
    • options.auth String Access Token
    • options.context

Returns Promise

getLibrary

src/Particle.js:899-901

Get firmware library details

Parameters

  • options Object Options for this API call
    • options.name String Name of the library to fetch
    • options.version String Version of the library to fetch (default: latest)
    • options.auth String Access Token
    • options.context

Returns Promise

getLibraryVersions

src/Particle.js:912-917

Firmware library details for each version

Parameters

  • options Object Options for this API call
    • options.name String Name of the library to fetch
    • options.page Number Page index (default, first page)
    • options.limit Number Number of items per page
    • options.auth String Access Token
    • options.context

Returns Promise

contributeLibrary

src/Particle.js:926-933

Contribute a new library version from a compressed archive

Parameters

  • options Object Options for this API call
    • options.archive String Compressed archive file containing the library sources
    • options.auth String Access Token
    • options.context

Returns Promise

publishLibrary

src/Particle.js:942-945

Publish the latest version of a library to the public

Parameters

  • options Object Options for this API call
    • options.name String Name of the library to publish
    • options.auth String Access Token
    • options.context

Returns Promise

deleteLibrary

src/Particle.js:955-957

Delete one version of a library or an entire private library

Parameters

  • options Object Options for this API call
    • options.name String Name of the library to remove
    • options.force String Key to force deleting a public library
    • options.auth String Access Token
    • options.context

Returns Promise

downloadFile

src/Particle.js:965-976

Download an external file that may not be on the API

Parameters

  • options Object Options for this API call
    • options.url String URL of the file.

Returns Promise Resolves to a buffer with the file data

listOAuthClients

src/Particle.js:985-988

List OAuth client created by the account

Parameters

  • options Object Options for this API call
    • options.product String? List clients for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

createOAuthClient

src/Particle.js:1001-1005

Create an OAuth client

Parameters

  • options Object Options for this API call
    • options.name String Name of the OAuth client
    • options.type String web, installed or web
    • options.redirect_uri String? URL to redirect after OAuth flow. Only for type web.
    • options.scope Object? Limits what the access tokens created by this client can do.
    • options.product String? Create client for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

updateOAuthClient

src/Particle.js:1017-1021

Update an OAuth client

Parameters

  • options Object Options for this API call
    • options.clientId String The OAuth client to update
    • options.name String? New Name of the OAuth client
    • options.scope Object? New scope of the OAuth client
    • options.product String? Update client linked to this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

deleteOAuthClient

src/Particle.js:1031-1034

Delete an OAuth client

Parameters

  • options Object Options for this API call
    • options.clientId String The OAuth client to update
    • options.product String? OAuth client linked to this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

listProducts

src/Particle.js:1042-1044

List products the account has access to

Parameters

  • options Object Options for this API call
    • options.auth String Access Token
    • options.context

Returns Promise

getProduct

src/Particle.js:1053-1055

Get detailed information about a product

Parameters

  • options Object Options for this API call
    • options.product String Product ID or slug
    • options.auth String Access token
    • options.context

Returns Promise

listProductFirmware

src/Particle.js:1064-1066

List product firmware versions

Parameters

  • options Object Options for this API call
    • options.product String Firmware for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

uploadProductFirmware

src/Particle.js:1079-1094

List product firmware versions

Parameters

  • options Object Options for this API call
    • options.file Object Path or Buffer of the new firmware file
    • options.version Number Version number of new firmware
    • options.title String Short identifier for the new firmware
    • options.description String? Longer description for the new firmware
    • options.product String Firmware for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

getProductFirmware

src/Particle.js:1104-1106

Get information about a product firmware version

Parameters

  • options Object Options for this API call
    • options.version Number Version number of firmware
    • options.product String Firmware for this product ID or slug
    • options.auth String Access token
    • options.context

Returns Promise

updateProductFirmware

src/Particle.js:1118-1121

Update information for a product firmware version

Parameters

  • options Object Options for this API call
    • options.version Number Version number of new firmware
    • options.title String? New title
    • options.description String? New description
    • options.product String Firmware for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

downloadProductFirmware

src/Particle.js:1131-1140

Download a product firmware binary

Parameters

  • options Object Options for this API call
    • options.version Number Version number of new firmware
    • options.product String Firmware for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Request

releaseProductFirmware

src/Particle.js:1150-1153

Release a product firmware version as the default version

Parameters

  • options Object Options for this API call
    • options.version Number Version number of new firmware
    • options.product String Firmware for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

listTeamMembers

src/Particle.js:1162-1164

List product team members

Parameters

  • options Object Options for this API call
    • options.product String Team for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

inviteTeamMember

src/Particle.js:1174-1176

Invite Particle user to a product team

Parameters

  • options Object Options for this API call
    • options.username String Username for the Particle account
    • options.product String Team for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise

removeTeamMember

src/Particle.js:1186-1188

Remove Particle user to a product team

Parameters

  • options Object Options for this API call
    • options.username String Username for the Particle account
    • options.product String Team for this product ID or slug
    • options.auth String Access Token
    • options.context

Returns Promise