{
  "info": {
    "name": "Particle API",
    "description": "Cloud API",
    "version": "1.0.0",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/"
  },
  "item": [
    {
      "name": "Authentication",
      "item": [
        {
          "name": "Get the current access token information",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/access_tokens/current",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "access_tokens",
                "current"
              ],
              "query": [],
              "variables": []
            },
            "description": "Get your currently used token."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/access_tokens/current",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "access_tokens",
                    "current"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/access_tokens/current\nHTTP/1.1 200 OK\n{\n  \"expires_at\": \"2014-04-27T06:31:08.991Z\",\n  \"client\": \"particle\",\n  \"scopes\": [],\n  \"orgs\": []\n}"
            }
          ]
        },
        {
          "name": "Generate an access token",
          "request": {
            "auth": {
              "type": "basic",
              "basic": [
                {
                  "key": "username",
                  "value": "{{oauth_client_id}}",
                  "type": "string"
                },
                {
                  "key": "password",
                  "value": "{{oauth_client_secret}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/x-www-form-urlencoded",
                "description": "Must be set to application/x-www-form-urlencoded"
              },
              {
                "key": "Authorization",
                "value": "String",
                "description": "HTTP Basic Auth where username is the OAuth client ID and password is the OAuth client secret. Any client ID will work, but we suggest particle:particle."
              }
            ],
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "client_id",
                  "value": "string",
                  "disabled": true
                },
                {
                  "key": "client_secret",
                  "value": "string",
                  "disabled": true
                },
                {
                  "key": "grant_type",
                  "value": "string",
                  "disabled": false
                },
                {
                  "key": "username",
                  "value": "string",
                  "disabled": false
                },
                {
                  "key": "password",
                  "value": "string",
                  "disabled": false
                },
                {
                  "key": "expires_in",
                  "value": 0,
                  "disabled": true
                },
                {
                  "key": "expires_at",
                  "value": "2026-02-23T09:26:11.698Z",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/oauth/token",
              "host": [
                "{{url}}"
              ],
              "path": [
                "oauth",
                "token"
              ],
              "query": [],
              "variables": []
            },
            "description": "Creates an access token that gives you access to the Cloud API. \n\nYou must give a valid OAuth client ID and secret in HTTP Basic Auth or in the client_id and client_secret parameters. For controlling your own developer account, you can use particle:particle. Otherwise use a valid OAuth Client ID and Secret. This endpoint doesn't accept JSON requests, only form encoded requests. See OAuth Clients. \n\nRefresh tokens only work for product tokens, and even then they are not particularly useful. In order to generate a new access token from the refresh token you still need the client ID and secret. Because of this, it's simpler to just generate a new token, and then you don't need to remember and keep secure the refresh token. Also refresh tokens have a lifetime of 14 days, much shorter than the default access token lifetime of 90 days."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "key": "client_id",
                      "value": "string",
                      "disabled": true
                    },
                    {
                      "key": "client_secret",
                      "value": "string",
                      "disabled": true
                    },
                    {
                      "key": "grant_type",
                      "value": "string",
                      "disabled": false
                    },
                    {
                      "key": "username",
                      "value": "string",
                      "disabled": false
                    },
                    {
                      "key": "password",
                      "value": "string",
                      "disabled": false
                    },
                    {
                      "key": "expires_in",
                      "value": 0,
                      "disabled": true
                    },
                    {
                      "key": "expires_at",
                      "value": "2026-02-23T09:26:11.700Z",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/oauth/token",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "oauth",
                    "token"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /oauth/token\nHTTP/1.1 200 OK\n{\n  \"access_token\": \"254406f79c1999af65a7df4388971354f85cfee9\",\n  \"token_type\": \"bearer\",\n  \"expires_in\": 7776000,\n  \"refresh_token\": \"b5b901e8760164e134199bc2c3dd1d228acf2d90\"\n}"
            }
          ]
        },
        {
          "name": "Delete an access token",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/access_tokens/:token",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "access_tokens",
                ":token"
              ],
              "query": [],
              "variables": [
                {
                  "key": "token",
                  "value": "string",
                  "description": "Access Token to delete",
                  "disabled": false
                }
              ]
            },
            "description": "Delete your unused or lost tokens."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/access_tokens/:token",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "access_tokens",
                    ":token"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/access_tokens/123abc\nHTTP/1.1 200 OK\n{\n  \"ok\": true\n}"
            }
          ]
        },
        {
          "name": "Delete all active access tokens",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/access_tokens",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "access_tokens"
              ],
              "query": [],
              "variables": []
            },
            "description": "Delete all your active access tokens."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/access_tokens",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "access_tokens"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/access_tokens\nHTTP/1.1 200 OK\n{\n  \"ok\": true\n}"
            }
          ]
        },
        {
          "name": "Delete current access token",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/access_tokens/current",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "access_tokens",
                "current"
              ],
              "query": [],
              "variables": []
            },
            "description": "Delete your currently used token."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/access_tokens/current",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "access_tokens",
                    "current"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/access_tokens/current\nHTTP/1.1 200 OK\n{\n  \"ok\": true\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Configuration",
      "item": [
        {
          "name": "Get product configuration",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Get the configuration values that are the default for the product"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET https://api.particle.io/v1/products/1234/config\nHTTP/1.1 200 OK\n{\n  \"configuration\": {\n    \"location\": {\n      \"radius\": 1,\n      \"interval_min\": 30,\n      \"interval_max\": 300,\n      \"min_publish\": false\n    },\n    \"imu_trig\": {\n      \"motion\": \"disable\",\n      \"high_g\": \"disable\"\n    },\n    \"rgb\": {\n      \"type\": \"tracker\",\n      \"direct\": {\n        \"red\": 0,\n        \"blue\": 255,\n        \"green\": 0,\n        \"brightness\": 255\n      }\n    }\n  }\n}"
            }
          ]
        },
        {
          "name": "Get device configuration",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "The device ID to query.",
                  "disabled": false
                }
              ]
            },
            "description": "Get the configuration values that are specific to this device"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET https://api.particle.io/v1/products/1234/config/abc123\n HTTP/1.1 200 OK\n{\n  \"configuration\": {\n    \"current\": {\n      \"imu_trig\": {\n        \"motion\": \"disable\",\n        \"high_g\": \"disable\"\n      },\n      \"location\": {\n        \"radius\": 1,\n        \"interval_min\": 30,\n        \"interval_max\": 300,\n        \"min_publish\": false\n      }\n    },\n    \"pending\": {\n      \"location\": {\n        \"radius\": 10,\n        \"interval_min\": 30,\n        \"interval_max\": 300,\n        \"min_publish\": false\n      },\n      \"imu_trig\": {\n        \"motion\": \"enable\",\n        \"high_g\": \"disable\"\n      }\n    }\n  }\n}"
            }
          ]
        },
        {
          "name": "Get product schema",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/schema+json",
                "description": "Must be set to \"application/schema+json\" for this endpoint"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Get the possible values that can be configured for this product, in JSON Schema format"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET https://api.particle.io/v1/products/1234/config\n HTTP/1.1 200 OK\n{\n   \"$schema\": \"http://json-schema.org/draft-07/schema\",\n   \"properties\": {\n     ...\n  }\n}"
            }
          ]
        },
        {
          "name": "Get device schema",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/schema+json",
                "description": "Must be set to \"application/schema+json\" for this endpoint"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "The device ID to query.",
                  "disabled": false
                }
              ]
            },
            "description": "Get the possible values that can be configured for one device in this product, in JSON Schema format"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET https://api.particle.io/v1/products/1234/config/abc123\n HTTP/1.1 200 OK\n{\n   \"$schema\": \"http://json-schema.org/draft-07/schema\",\n   \"properties\": {\n     ...\n  }\n}"
            }
          ]
        },
        {
          "name": "Set product configuration",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"deviceIds\": [\n    \"string\",\n    \"string\"\n  ]\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Set configuration values that will become the default for the product. This will also update eligible devices with this updated configuration. \n\nYou should always get the entire configuration, change values, and set the whole configuration back. In HTTP REST APIs, POST and PUT do not merge changes with the existing data."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"deviceIds\": [\n    \"string\",\n    \"string\"\n  ]\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT https://api.particle.io/v1/products/1234/config\nHTTP/1.1 202 OK\n{}"
            }
          ]
        },
        {
          "name": "Set product configuration schema",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/schema+json",
                "description": "Must be set to \"application/schema+json\" for this endpoint."
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Set configuration schema that will become the default for the product. \n\nThis must be the entire schema, including the standard Particle parts; there is no merging of changes."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT https://api.particle.io/v1/products/1234/config\nHTTP/1.1 200 OK\n{\n    \"$schema\": \"https://particle.io/draft-07/schema#\",\n    \"type\": \"object\",\n    \"title\": \"Fake Custom Schema\",\n    \"description\": \"A customized JSON schema for testing\",\n    \"required\": [\n        \"foo\"\n    ],\n    \"properties\": {\n        \"foo\": {\n            \"$id\": \"#/properties/foo\",\n            \"type\": \"integer\",\n            \"title\": \"Foo\",\n            \"description\": \"A test setting named `foo`\",\n            \"default\": 1,\n            \"examples\": [1, 2, 3],\n            \"minimum\": 0\n        },\n        \"bar\": {\n            \"$id\": \"#/properties/bar\",\n            \"type\": \"string\",\n            \"title\": \"Bar\",\n            \"description\": \"A test setting named `bar`\",\n            \"default\": \"\",\n            \"examples\": [\"one\", \"two\", \"three\"]\n        }\n    }\n}"
            }
          ]
        },
        {
          "name": "Set device configuration",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Set some configuration values for the device that will override the product default. \n\nSend an empty request to reset the device to product defaults. \n\nReturns 200, 202 or 400 for various states \n\n- 200 when the device is online and accepted the configuration changes.\n- 202 when the device is offline. We'll complete the request when it comes online again\n- 400 When the device is online, but has rejected some of the configuration keys. A list of accepted and rejected keys with device error codes is provided \n\nYou should always get the entire configuration, change values, and set the whole configuration back. In HTTP REST APIs, POST and PUT do not merge changes with the existing data."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " PUT https://api.particle.io/v1/products/1234/config/abc123\n HTTP/1.1 200 OK\n{}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " PUT https://api.particle.io/v1/products/1234/config/abc123\n HTTP/1.1 202 Accepted\n{}"
            }
          ]
        },
        {
          "name": "Set device configuration schema",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/schema+json",
                "description": "Must be set to \"application/schema+json\" for this endpoint."
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Set configuration schema for the device. \n\nThis must be the entire schema, including the standard Particle parts; there is no merging of changes."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT https://api.particle.io/v1/products/1234/config/43210\nHTTP/1.1 200 OK\n{\n    \"$schema\": \"https://particle.io/draft-07/schema#\",\n    \"type\": \"object\",\n    \"title\": \"Fake Custom Schema\",\n    \"description\": \"A customized JSON schema for testing\",\n    \"required\": [\n        \"foo\"\n    ],\n    \"properties\": {\n        \"foo\": {\n            \"$id\": \"#/properties/foo\",\n            \"type\": \"integer\",\n            \"title\": \"Foo\",\n            \"description\": \"A test setting named `foo`\",\n            \"default\": 1,\n            \"examples\": [1, 2, 3],\n            \"minimum\": 0\n        },\n        \"bar\": {\n            \"$id\": \"#/properties/bar\",\n            \"type\": \"string\",\n            \"title\": \"Bar\",\n            \"description\": \"A test setting named `bar`\",\n            \"default\": \"\",\n            \"examples\": [\"one\", \"two\", \"three\"]\n        }\n    }\n}"
            }
          ]
        },
        {
          "name": "Delete product configuration schema",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/schema+json",
                "description": "Must be set to \"application/schema+json\" for this endpoint."
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Delete configuration schema, use Tracker Edge defaults."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT https://api.particle.io/v1/products/1234/config\nHTTP/1.1 204 OK"
            }
          ]
        },
        {
          "name": "Delete device configuration schema",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/schema+json",
                "description": "Must be set to \"application/schema+json\" for this endpoint."
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "config",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "The device ID to delete the schema.",
                  "disabled": false
                }
              ]
            },
            "description": "Delete device's configuration schema, use product's."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/config/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "config",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT https://api.particle.io/v1/products/1234/config/43210\nHTTP/1.1 204 OK"
            }
          ]
        }
      ]
    },
    {
      "name": "Customers",
      "item": [
        {
          "name": "List customers for a product",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "customers"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "List Customers for a product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "customers"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/photon\nHTTP/1.1 200 OK\n{\n  \"customers\": [\n    {\n      \"id\": \"01234567890ABCDEF\",\n      \"full_name\": \"Bob Loblaw\",\n      \"username\": \"bob@loblaw.net\",\n      \"devices\": [\"0123456789abcdef01234567\"]\n    }\n  ],\n  \"devices\": [\n  \t{\n  \t\t\"id\": \"0123456789abcdef01234567\",\n  \t\t\"product_id\": 6,\n  \t\t\"last_ip_address\": \"127.0.0.1\",\n  \t\t\"firmware_version\": 1,\n  \t\t\"online\": true\n  \t}\n  ],\n  \"meta\": {\n  \t\"total_pages\": 4\n  }\n}"
            }
          ]
        },
        {
          "name": "Create a customer - Access token",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"string\",\n  \"password\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "customers"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Create a customer for a product. An access token of a user that belongs to the product is required. The email field can contain a unique identifier instead but some platform functionalities might not work (i.e. sending a password reset email)."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"string\",\n  \"password\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "customers"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/photon/customers\nHTTP/1.1 201 OK\n{\n    \"token_type\": \"bearer\",\n    \"access_token\": \"92b6d13edaab936b016d54266a46134160f087e8\",\n    \"refresh_token\": \"14b4d13edaab634b019d54265a46132160f017e8\",\n    \"expires_in\": 7776000\n}"
            }
          ]
        },
        {
          "name": "Create a customer - Client credentials",
          "request": {
            "auth": {
              "type": "basic",
              "basic": [
                {
                  "key": "username",
                  "value": "{{oauth_client_id}}",
                  "type": "string"
                },
                {
                  "key": "password",
                  "value": "{{oauth_client_secret}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "String",
                "description": "HTTP Basic Auth where username is the OAuth client ID and password is the OAuth client secret."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"client_id\": \"string\",\n  \"client_secret\": \"string\",\n  \"email\": \"string\",\n  \"password\": \"string\",\n  \"no_password\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "customers"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Create a customer for a product using OAuth client credentials grant type. This is the way you should hit the POST customers endpoint if you are creating customers from your server (two-legged authentication), or from a mobile application. In this case, you may create a customer without a password, by passing the no_password: true flag. \n\nYou must give a valid product OAuth client ID and secret in HTTP Basic Auth or in the client_id and client_secret parameters."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_id\": \"string\",\n  \"client_secret\": \"string\",\n  \"email\": \"string\",\n  \"password\": \"string\",\n  \"no_password\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "customers"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/photon/customers\nHTTP/1.1 201 OK\n{\n    \"token_type\": \"bearer\",\n    \"access_token\": \"92b6d13edaab936b016d54266a46134160f087e8\",\n    \"refresh_token\": \"14b4d13edaab634b019d54265a46132160f017e8\",\n    \"expires_in\": 7776000\n}"
            }
          ]
        },
        {
          "name": "Create a customer - Implicit",
          "request": {
            "auth": {
              "type": "basic",
              "basic": [
                {
                  "key": "username",
                  "value": "{{oauth_client_id}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "String",
                "description": "HTTP Basic Auth where username is the OAuth client ID and password is blank."
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"client_id\": \"string\",\n  \"email\": \"string\",\n  \"password\": \"string\",\n  \"response_type\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "customers"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Create a customer for a product using OAuth implicit grant type. This is the way you should hit the POST customers endpoint if you are creating customers from a web browser. After a successful POST, the customer access token will be appended as a hash to the redirect URI associated with the client credentials provided. For this grant type, you must also pass response_type: token. \n\nYou must give a valid product OAuth client ID in HTTP Basic Auth or in the client_id parameter. Do not pass the OAuth client secret when creating customers from a web browser."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_id\": \"string\",\n  \"email\": \"string\",\n  \"password\": \"string\",\n  \"response_type\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/customers",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "customers"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/photon/customers\nHTTP/1.1 201 OK"
            }
          ]
        },
        {
          "name": "Generate a customer scoped access token",
          "request": {
            "auth": {
              "type": "basic",
              "basic": [
                {
                  "key": "username",
                  "value": "{{oauth_client_id}}",
                  "type": "string"
                },
                {
                  "key": "password",
                  "value": "{{oauth_client_secret}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/x-www-form-urlencoded",
                "description": "Must be set to application/x-www-form-urlencoded"
              },
              {
                "key": "Authorization",
                "value": "String",
                "description": "HTTP Basic Auth where username is the OAuth client ID and password is the OAuth client secret."
              }
            ],
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "client_id",
                  "value": "string",
                  "disabled": true
                },
                {
                  "key": "client_secret",
                  "value": "string",
                  "disabled": true
                },
                {
                  "key": "grant_type",
                  "value": "string",
                  "disabled": false
                },
                {
                  "key": "expires_in",
                  "value": 0,
                  "disabled": true
                },
                {
                  "key": "expires_at",
                  "value": "2026-02-23T09:26:11.720Z",
                  "disabled": true
                },
                {
                  "key": "scope",
                  "value": "string",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{url}}/oauth/token",
              "host": [
                "{{url}}"
              ],
              "path": [
                "oauth",
                "token"
              ],
              "query": [],
              "variables": []
            },
            "description": "Creates a token scoped to a customer for your organization. \n\nYou must give a valid product OAuth client ID and secret in HTTP Basic Auth or in the client_id and client_secret parameters."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "urlencoded",
                  "urlencoded": [
                    {
                      "key": "client_id",
                      "value": "string",
                      "disabled": true
                    },
                    {
                      "key": "client_secret",
                      "value": "string",
                      "disabled": true
                    },
                    {
                      "key": "grant_type",
                      "value": "string",
                      "disabled": false
                    },
                    {
                      "key": "expires_in",
                      "value": 0,
                      "disabled": true
                    },
                    {
                      "key": "expires_at",
                      "value": "2026-02-23T09:26:11.721Z",
                      "disabled": true
                    },
                    {
                      "key": "scope",
                      "value": "string",
                      "disabled": true
                    }
                  ]
                },
                "url": {
                  "raw": "{{url}}/oauth/token",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "oauth",
                    "token"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /oauth/token\nHTTP/1.1 200 OK\n{\n  \"access_token\": \"254406f79c1999af65a7df4388971354f85cfee9\",\n  \"token_type\": \"bearer\",\n  \"expires_in\": 7776000,\n  \"refresh_token\": \"b5b901e8760164e134199bc2c3dd1d228acf2d90\"\n}"
            }
          ]
        },
        {
          "name": "Update customer password",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"password\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/customers/:customerEmail",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "customers",
                ":customerEmail"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                },
                {
                  "key": "customerEmail",
                  "value": "string",
                  "description": "Email of the customer account that you'd like to update",
                  "disabled": false
                }
              ]
            },
            "description": "Update the account password for a customer. Only relevant for non-shadow customers that have a password saved in Particle's system. Must be called with an access token that has access to the product, not a customer access token."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"password\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/customers/:customerEmail",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "customers",
                    ":customerEmail"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/customers/:customerEmail\nHTTP/1.1 200 OK\n\n{\"ok\": true}"
            }
          ]
        },
        {
          "name": "Delete a customer",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/customers/:customerEmail",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "customers",
                ":customerEmail"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                },
                {
                  "key": "customerEmail",
                  "value": "string",
                  "description": "Email of the customer account that you'd like to remove",
                  "disabled": false
                }
              ]
            },
            "description": "Delete a customer in a product. Will also revoke all of this customer's access tokens, pending device claim codes and activation codes."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/customers/:customerEmail",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "customers",
                    ":customerEmail"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/products/:productIdOrSlug/customers/:customerEmail\nHTTP/1.1 200 OK\n\n{\"ok\": true}"
            }
          ]
        }
      ]
    },
    {
      "name": "Devices",
      "item": [
        {
          "name": "Look up device identification from a serial number",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/serial_numbers/:serial_number",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "serial_numbers",
                ":serial_number"
              ],
              "query": [],
              "variables": [
                {
                  "key": "serial_number",
                  "value": "string",
                  "description": "The serial number printed on the barcode of the device packaging.",
                  "disabled": false
                }
              ]
            },
            "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."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/serial_numbers/:serial_number",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "serial_numbers",
                    ":serial_number"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/serial_numbers/E26AAA111111111\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"deviceID\": \"0123456789abcdef01234567\",\n  \"iccid\": \"8934076500002589174\"\n}"
            }
          ]
        },
        {
          "name": "List devices",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/devices",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices"
              ],
              "query": [],
              "variables": []
            },
            "description": "List devices the currently authenticated user has access to. By default, devices will be sorted by last_handshake_at in descending order."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/devices\nHTTP/1.1 200 OK\n[\n  {\n    \"id\": \"53ff6f0650723\",\n    \"name\": \"plumber_laser\",\n    \"last_ip_address\": \"10.0.0.1\",\n    \"last_heard\": \"2020-05-28T14:46:07.586Z\",\n    \"last_handshake_at\": \"2020-05-27T18:13:01.059Z\",\n    \"product_id\": 6,\n    \"online\": true,\n    \"platform_id\": 6,\n    \"cellular\": false,\n    \"notes\": \"laser!\",\n    \"functions\": [\n      \"fire\"\n    ],\n    \"variables\": {\n      \"power\": \"int32\"\n    },\n    \"status\": \"normal\",\n    \"serial_number\": \"PH1234\",\n    \"mac_wifi\": \"00:00:00:AA:BB:00\",\n    \"system_firmware_version\": \"1.5.0\"\n  },\n  {\n    \"id\": \"53ff291839887\",\n    \"name\": \"particle_love\",\n    \"last_ip_address\": \"10.0.0.1\",\n    \"last_heard\": \"2020-05-28T14:46:07.586Z\",\n    \"last_handshake_at\": \"2020-05-27T18:13:01.059Z\",\n    \"product_id\": 10,\n    \"online\": false,\n    \"platform_id\": 10,\n    \"notes\": null,\n    \"functions\": [],\n    \"variables\": {},\n    \"cellular\": true,\n    \"status\": \"normal\",\n    \"serial_number\": \"E261234\",\n    \"iccid\": \"1111111111111111111\",\n    \"imei\": \"333333333333333\",\n    \"system_firmware_version\": \"1.5.0\"\n  }\n]"
            }
          ]
        },
        {
          "name": "List devices in a product",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices"
              ],
              "query": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Filter results to devices with this ID (partial matching)",
                  "disabled": true
                },
                {
                  "key": "groups",
                  "value": "string",
                  "description": "Comma separated list of full group names to filter results to devices belonging to these groups only",
                  "disabled": true
                },
                {
                  "key": "deviceName",
                  "value": "string",
                  "description": "Filter results to devices with this name (partial matching)",
                  "disabled": true
                },
                {
                  "key": "serialNumber",
                  "value": "string",
                  "description": "Filter results to devices with this serial number (partial matching)",
                  "disabled": true
                },
                {
                  "key": "sortAttr",
                  "value": "string",
                  "description": "The attribute by which to sort results. Options for sorting are deviceName, deviceId, firmwareVersion, or lastConnection. By default, if no sortAttr parameter is set, devices will be sorted by last connection, in descending order",
                  "disabled": true
                },
                {
                  "key": "sortDir",
                  "value": "string",
                  "description": "The direction of sorting. Pass asc for ascending sorting or desc for descending sorting",
                  "disabled": true
                },
                {
                  "key": "quarantined",
                  "value": false,
                  "description": "include / exclude quarantined devices",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": 0,
                  "description": "Current page of results",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": 0,
                  "description": "Records per page",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "List all devices that are part of a product. Results are paginated, by default returns 25 device records per page."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/devices\nHTTP/1.1 200 OK\n{\n\t\"devices\": [\n\t \t{\n\t \t\t\"id\":\"1d002a000547343232363230\",\n\t \t\t\"name\":\"jeff_test_device\",\n\t \t\t\"last_ip_address\":\"199.230.10.194\",\n\t \t\t\"last_heard\":\"2016-06-10T15:00:07.100Z\",\n\t \t\t\"last_handshake_at\":\"2016-06-10T14:56:27.100Z\",\n\t \t\t\"product_id\":295,\n\t \t\t\"online\":false,\n\t \t\t\"platform_id\": 13,\n\t \t    \"cellular\": true,\n\t \t    \"functions\": [\n\t \t      \"cmd\"\n\t \t    ],\n\t \t    \"variables\": {\n\t \t      \"temperature\": \"double\"\n\t \t    },\n\t \t    \"status\": \"normal\",\n\t \t    \"serial_number\": \"E40KAB111111111\",\n\t \t    \"iccid\": \"89014111111111111111\",\n         \"imei\": \"352753090000000\",\n         \"mac_wifi\": \"00:00:00:AA:BB:00\",\n         \"mobile_secret\": \"WBPYG6CPLRCFK4S\",\n\t \t    \"system_firmware_version\": \"3.0.0\",\n\t \t    \"firmware_product_id\": 295,\n\t \t    \"groups\":[\"asia\",\"europe\"],\n\t \t\t\"firmware_version\":3,\n\t \t    \"desired_firmware_version\": null,\n\t \t    \"targeted_firmware_release_version\": 3,\n\t \t\t\"development\":false,\n\t \t\t\"quarantined\":false,\n\t \t\t\"denied\":false,\n\t \t\t\"owner\":\"jeff@particle.io\"\n\t \t},\n\t \t{\n\t \t\t\"id\":\"32001e000747343337373738\",\n\t \t\t\"last_ip_address\":\"199.21.86.18\",\n\t \t\t\"last_heard\":\"2016-06-10T15:00:07.100Z\",\n\t \t\t\"last_handshake_at\":\"2016-06-10T14:56:27.100Z\",\n\t \t\t\"product_id\":13,\n\t \t\t\"online\":false,\n\t \t\t\"platform_id\": 13,\n\t \t    \"cellular\": true,\n\t \t    \"status\": \"normal\",\n\t \t    \"serial_number\": \"E40KAB111111112\",\n\t \t    \"iccid\": \"89014111111111111112\",\n         \"imei\": \"352753090000001\",\n         \"mac_wifi\": \"00:00:00:AA:BB:01\",\n         \"mobile_secret\": \"VNH9JNXMXW5YY9X\",\n\t \t    \"system_firmware_version\": \"2.0.0\",\n\t \t    \"firmware_product_id\": 295,\n\t \t    \"development\": false,\n\t \t\t\"quarantined\": true,\n\t \t\t\"denied\": false\n\t \t},\n\t \t...\n\t],\n\t\"customers\": [\n\t\t{\n\t \t \tid:\"123abc3456\",\n\t\t \tusername: \"customer@gmail.com\",\n\t\t}\n\t],\n\t\"meta\": {\n\t\t\"total_pages\":1\n\t}\n}"
            }
          ]
        },
        {
          "name": "Get device information",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "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."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/devices/0123456789abcdef01234567\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"name\": \"gongbot\",\n  \"owner\": \"someone@particle.io\",\n  \"last_ip_address\": \"176.83.211.237\",\n  \"last_heard\": \"2015-07-17T22:28:40.907Z\",\n  \"last_handshake_at\": \"2015-07-15T20:08:00.456Z\",\n  \"product_id\": 13,\n  \"online\": true,\n  \"platform_id\": 13,\n  \"cellular\": true,\n  \"notes\": null,\n  \"functions\": [\n    \"gong\",\n    \"goto\"\n  ],\n  \"variables\": {\n    \"Gongs\": \"int32\"\n  },\n  \"status\": \"normal\",\n  \"serial_number\": \"AAAAAA111111111\",\n  \"iccid\": \"89314404000111111111\",\n  \"imei\": \"357520000000000\",\n  \"mac_wifi\": \"00:00:00:AA:BB:00\",\n  \"mobile_secret\": \"NVYM5RK6AHCBELA\",\n  \"system_firmware_version\": \"1.5.0\",\n  \"firmware_updates_enabled\": true,\n  \"firmware_updates_forced\": false,\n  \"device_protection\": {\n      \"status\": \"disabled\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Get product device information",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Get basic information about a given device that is part of a product \n\nSee Get device information for the response attributes"
          },
          "response": []
        },
        {
          "name": "Get a variable value",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId/:varName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId",
                ":varName"
              ],
              "query": [
                {
                  "key": "format",
                  "value": "string",
                  "description": "Specify raw if you just the value returned",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "varName",
                  "value": "string",
                  "description": "Variable name",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "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."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId/:varName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId",
                    ":varName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/devices/0123456789abcdef01234567/temperature\nHTTP/1.1 200 OK\n{\n  \"name\": \"temperature\",\n  \"result\": 46,\n  \"coreInfo\": {\n    \"name\": \"weatherman\",\n    \"deviceID\": \"0123456789abcdef01234567\",\n    \"connected\": true,\n    \"last_handshake_at\": \"2015-07-17T22:28:40.907Z\",\n  }\n}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId/:varName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId",
                    ":varName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/devices/0123456789abcdef01234567/temperature?format=raw\nHTTP/1.1 200 OK\n46"
            }
          ]
        },
        {
          "name": "Claim a device",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"string\",\n  \"request_transfer\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices"
              ],
              "query": [],
              "variables": []
            },
            "description": "Claim a new or unclaimed device to your account."
          },
          "response": []
        },
        {
          "name": "Import devices into product",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"string\",\n  \"ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"import_sims\": false,\n  \"claim_user\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Import devices into a product. Devices must be of the same platform type as the product in order to be successfully imported. Imported devices may receive an immediate OTA firmware update to the product's released firmware. \n\nImporting a device with a Particle SIM card will also import the SIM card into the product and activate the SIM card."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": \"string\",\n  \"ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"import_sims\": false,\n  \"claim_user\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/:productIdOrSlug/devices\nHTTP/1.1 200 OK\n{\n\t\"updated\":1,\n \"updatedDeviceIds\":[\"abc1234\"],\n \"existingDeviceIds\":[],\n\t\"nonmemberDeviceIds\":[],\n\t\"invalidDeviceIds\":[],\n \"protectedDeviceIds\": []\n}"
            }
          ]
        },
        {
          "name": "Call a function",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"arg\": \"string\",\n  \"format\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId/:functionName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId",
                ":functionName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "functionName",
                  "value": "string",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "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."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"arg\": \"string\",\n  \"format\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId/:functionName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId",
                    ":functionName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/devices/0123456789abcdef01234567/gong\n{ \"arg\": \"ZEN PLEASE\" }\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"name\": \"gongbot\",\n  \"connected\": true,\n  \"return_value\": 1\n}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"arg\": \"string\",\n  \"format\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId/:functionName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId",
                    ":functionName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/devices/0123456789abcdef01234567/gong\n{ \"format\": \"raw\", \"arg\": \"ZEN PLEASE\" }\nHTTP/1.1 200 OK\n1"
            }
          ]
        },
        {
          "name": "Signal a device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"signal\": 0\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Make the device conspicuous by causing its LED to flash in rainbow patterns"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"signal\": 0\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/12345\nHTTP/1.1 200 OK\n{\n  \"id\": \"12345\",\n  \"connected\": true,\n  \"signaling\": true\n}"
            }
          ]
        },
        {
          "name": "Force enable OTA updates",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firmware_updates_forced\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Force enable OTA updates on this device."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"firmware_updates_forced\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/12345\nHTTP/1.1 200 OK\n{\n  \"id\": \"12345\",\n  \"firmware_updates_forced\": true\n}"
            }
          ]
        },
        {
          "name": "Ping a device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId/ping",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId",
                "ping"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "This will ping a device, enabling you to see if your device is online or offline"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId/ping",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId",
                    "ping"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/0123456789abcdef01234567/ping\nHTTP/1.1 200 OK\n{\n  \"online\": true,\n  \"ok\": true\n}"
            }
          ]
        },
        {
          "name": "Rename a device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Rename a device, either owned by a user or a product"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/0123456789abcdef01234567\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"name\": \"phancy_photon\"\n  \"updated_at\": \"2017-03-10T20:21:49.059Z\"\n}"
            }
          ]
        },
        {
          "name": "Add device notes",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"notes\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": ""
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"notes\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/0123456789abcdef01234567\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"notes\": \"A fancy device note\",\n  \"updated_at\": \"2017-03-10T20:21:49.059Z\"\n}"
            }
          ]
        },
        {
          "name": "Remove device from product",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "ID of the device to be removed",
                  "disabled": false
                }
              ]
            },
            "description": "Remove a device from a product and re-assign to a generic Particle product. This endpoint will unclaim the device if it is owned by a customer."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/products/photon/devices/123abc\nHTTP/1.1 204 NO CONTENT"
            }
          ]
        },
        {
          "name": "Unclaim device",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "ID of the device to be unclaimed",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": true
                }
              ]
            },
            "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. \n\nWhen using this endpoint to unclaim a product device, the route looks slightly different: \n\nDELETE /v1/products/:productIdOrSlug/devices/:deviceId/owner \n\nNote the /owner at the end of the route."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/devices/12345\nHTTP/1.1 200 OK\n{\n  \"ok\": true\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Diagnostics",
      "item": [
        {
          "name": "Get last known device vitals",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/diagnostics/:deviceId/last",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "diagnostics",
                ":deviceId",
                "last"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Returns the last device vitals payload sent by the device to the Device Cloud."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/diagnostics/:deviceId/last",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "diagnostics",
                    ":deviceId",
                    "last"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/diagnostics/0123456789abcdef01234567/last\nHTTP/1.1 200 OK\n{\n  \"diagnostics\": {\n    \"updated_at\": \"2017-12-19T12:37:07.318Z\",\n    \"deviceID\": \"0123456789abcdef01234567\",\n    \"payload\": {\n      ... the [device vitals event payload](#device-vitals-event).\n    }\n  }\n}"
            }
          ]
        },
        {
          "name": "Get all historical device vitals",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "String",
                "description": "Optionally set to text/csv to return historic device vitals as a CSV"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/diagnostics/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "diagnostics",
                ":deviceId"
              ],
              "query": [
                {
                  "key": "start_date",
                  "value": "2026-02-23T09:26:11.733Z",
                  "description": "Oldest diagnostic to return, inclusive. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "end_date",
                  "value": "2026-02-23T09:26:11.733Z",
                  "description": "Newest diagnostic to return, exclusive. Date in ISO8601 format.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Returns all stored device vital records sent by the device to the Device Cloud. Device vitals records will expire after 1 month."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/diagnostics/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "diagnostics",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET /v1/diagnostics/0123456789abcdef01234567/\n HTTP/1.1 200 OK\n {\n\t\t\"diagnostics\": [\n\t\t\t{\n\t\t\t\t\"updated_at\": \"2017-12-19T12:37:07.318Z\",\n\t\t\t\t\"deviceID\": \"0123456789abcdef01234567\",\n\t\t\t\t\"payload\": {\n\t\t\t\t\t... the [device vitals event payload](#device-vitals-event).\n\t\t\t\t}\n\t\t\t},\n\t\t\t...\n\t\t]\n }"
            }
          ]
        },
        {
          "name": "Get cellular network status",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/sims/:iccid/status",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims",
                ":iccid",
                "status"
              ],
              "query": [],
              "variables": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "The ICCID of the desired SIM",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Get cellular network status for a given device. Kicks off a long running task that checks if the device/SIM has an active data session with a cell tower. Values for keys in the sim_status object will be null until the task has finished. Poll the endpoint until meta.state is complete. At this point, the sim_status object will be populated. \n\nNote that responses are cached by the cellular network providers. This means that on occasion, the real-time status of the device/SIM may not align with the results of this test."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid/status",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid",
                    "status"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/sims/:iccid/status\nHTTP/1.1 202\n{\n\t\"ok\": true,\n\t\"meta\": {\n\t\t\"created_at\": \"2018-05-29T19:31:55.000-06:00\",\n\t\t\"expires_at\": \"2018-05-29T19:34:55.000-06:00\",\n\t\t\"check_again_after\": \"2018-05-29T19:32:05.450-06:00\",\n\t\t\"state\": \"pending\",\n\t\t\"method\": \"async\",\n\t\t\"task_id\": \"1234abcd\"\n\t},\n\t\"sim_status\": {\n\t\t\"connected\": true,\n\t\t\"gsm_connection\": true,\n\t\t\"data_connection\": true,\n\t}\n}"
            }
          ]
        },
        {
          "name": "Refresh device vitals",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/diagnostics/:deviceId/update",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "diagnostics",
                ":deviceId",
                "update"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Refresh diagnostic vitals for a single device. This will instruct the device to publish a new event to the Device Cloud containing a device vitals payload. This is an asynchronous request: the HTTP request returns immediately after the request to the device is sent. In order for the device to respond with a vitals payload, it must be online and connected to the Device Cloud. \n\nThe device will respond by publishing an event named spark/device/diagnostics/update. See the description of the device vitals event."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/diagnostics/:deviceId/update",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "diagnostics",
                    ":deviceId",
                    "update"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/diagnostics/0123456789abcdef01234567/update\nHTTP/1.1 202\n{\n  \"ok\": true\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Env",
      "item": [
        {
          "name": "List environment variables",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/env",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "env"
              ],
              "query": [],
              "variables": []
            },
            "description": "List environment variables for an organization, Sandbox, product, or device."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/env",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "env"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "HTTP/1.1 200 OK\n{\n  \"last_snapshot\": {\n    \"own\": {\n      \"DATA\": { \"value\": \"odata\" },\n      \"GLOBAL_DATA\": { \"value\": \"toall\" }\n    },\n    \"rollout_at\": \"2025-12-19T21:34:29.671Z\",\n    \"rollout_by\": \"some-user-id\"\n  },\n  \"latest\": {\n    \"own\": {\n      \"DATA\": { \"value\": \"odata\" },\n      \"GLOBAL_DATA\": { \"value\": \"toall\" }\n    }\n  }\n}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/env",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "env"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "HTTP/1.1 200 OK\n{\n  \"last_snapshot\": {\n    \"inherited\": {\n      \"DATA\": { \"from\": \"Owner\", \"value\": \"odata\" },\n      \"GLOBAL_DATA\": { \"from\": \"Owner\", \"value\": \"toall\" }\n    },\n    \"own\": {\n      \"DATA\": { \"value\": \"pdata\" }\n    },\n    \"rollout_at\": \"2025-12-19T21:34:29.671Z\",\n    \"rollout_by\": \"some-user-id\"\n  },\n  \"latest\": {\n    \"inherited\": {\n      \"DATA\": { \"from\": \"Owner\", \"value\": \"odata\" },\n      \"GLOBAL_DATA\": { \"from\": \"Owner\", \"value\": \"toall\" }\n    },\n    \"own\": {\n      \"DATA\": { \"value\": \"pdata\" }\n    }\n  }\n}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/env",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "env"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "HTTP/1.1 200 OK\n{\n  \"on_device\": {\n    \"rendered\": {\n      \"SOME_DATA_ON_MY_DEVICE\": \"yay!\"\n    },\n    \"last_reported_at\": \"2025-12-19T21:34:29.671Z\"\n  },\n  \"last_snapshot\": {\n    \"inherited\": {\n      \"DATA\": { \"from\": \"Product\", \"value\": \"pdata\" },\n      \"GLOBAL_DATA\": { \"from\": \"Owner\", \"value\": \"toall\" }\n    },\n    \"own\": {\n      \"DATA\": { \"value\": \"ddata\" }\n    },\n    \"rollout_at\": \"2025-12-19T21:34:29.671Z\",\n    \"rollout_by\": \"some-user-id\"\n  },\n  \"latest\": {\n    \"inherited\": {\n      \"DATA\": { \"from\": \"Product\", \"value\": \"pdata\" },\n      \"GLOBAL_DATA\": { \"from\": \"Owner\", \"value\": \"toall\" }\n    },\n    \"own\": {\n      \"DATA\": { \"value\": \"ddata\" }\n    }\n  }\n}"
            }
          ]
        },
        {
          "name": "Render environment variables",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/env/render",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "env",
                "render"
              ],
              "query": [],
              "variables": []
            },
            "description": "Render environment variables for an organization, Sandbox, product, or device. The response is a flat key/value map of the effective variables after inheritance and overrides are applied."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/env/render",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "env",
                    "render"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "HTTP/1.1 200 OK\n{\n  \"env\": {\n    \"DATA\": \"value\",\n    \"GLOBAL_DATA\": \"toall\",\n    \"SOMETHING_ELSE\": \"something\"\n  },\n  \"last_updated_at\": \"2025-12-19T21:34:29.671Z\",\n  \"rollout_at\": \"2025-12-19T21:34:29.671Z\",\n  \"rollout_by\": \"some-user-id\"\n}"
            }
          ]
        },
        {
          "name": "Review environment variables rollout",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/env/rollout",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "env",
                "rollout"
              ],
              "query": [],
              "variables": []
            },
            "description": "Review changes that can be rolled out"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/env/rollout",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "env",
                    "rollout"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "HTTP/1.1 200 OK\n{\n  \"from_snapshot\": {\n    \"changes\": [\n      { \"op\": \"Added\", \"key\": \"MY_DATA\", \"after\": \"wowza!\" },\n      { \"op\": \"Removed\", \"key\": \"ANOTHER_ONE\", \"before\": \"woahza!\" },\n      { \"op\": \"Changed\", \"key\": \"THING_NUMBER_THREE\", \"before\": \"previous\", \"after\": \"postvious\" }\n    ],\n    \"unchanged\": {\n      \"DATA\": \"yes\",\n      \"OTHER\": \"also yes\"\n    }\n  }\n}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/env/rollout",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "env",
                    "rollout"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "HTTP/1.1 200 OK\n{\n  \"from_device\": {\n      \"changes\": [\n      { \"op\": \"Added\", \"key\": \"MY_DATA\", \"after\": \"wowza!\" },\n      { \"op\": \"Removed\", \"key\": \"ANOTHER_ONE\", \"before\": \"woahza!\" },\n      { \"op\": \"Changed\", \"key\": \"THING_NUMBER_THREE\", \"before\": \"previous\", \"after\": \"postvious\" }\n    ],\n    \"unchanged\": {\n      \"DATA\": \"yes\",\n      \"OTHER\": \"also yes\"\n    }\n  },\n  \"from_snapshot\": {\n    \"changes\": [\n      { \"op\": \"Added\", \"key\": \"MY_DATA\", \"after\": \"wowza!\" },\n      { \"op\": \"Removed\", \"key\": \"ANOTHER_ONE\", \"before\": \"woahza!\" },\n      { \"op\": \"Changed\", \"key\": \"THING_NUMBER_THREE\", \"before\": \"previous\", \"after\": \"postvious\" }\n    ],\n    \"unchanged\": {\n      \"DATA\": \"yes\",\n      \"OTHER\": \"also yes\"\n    }\n  }\n}"
            }
          ]
        },
        {
          "name": "Start environment variables rollout",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"when\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/env/rollout",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "env",
                "rollout"
              ],
              "query": [],
              "variables": []
            },
            "description": "Apply updated environment variable values and make them available to devices. \n\nWhen rolling out immediately, devices that are currently available to receive OTA updates will receive updated environment variables. Devices that are busy or offline will apply the update when they become ready. When rolling out on next connection, as devices handshake (begin new secure sessions) with the Device Cloud, they will receive updated environment variables."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"when\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/env/rollout",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "env",
                    "rollout"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "HTTP/1.1 201 Created\n{\n  \"success\": true\n}"
            }
          ]
        },
        {
          "name": "Set environment variable",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"value\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/env/:key",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "env",
                ":key"
              ],
              "query": [],
              "variables": [
                {
                  "key": "key",
                  "value": "string",
                  "description": "Environment variable name.",
                  "disabled": false
                }
              ]
            },
            "description": "Create or update a single environment variable for an organization, Sandbox, product, or device."
          },
          "response": []
        },
        {
          "name": "Bulk update environment variables",
          "request": {
            "auth": null,
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ops\": [\n    {\n      \"key\": \"value\"\n    },\n    {\n      \"key\": \"value\"\n    }\n  ]\n}"
            },
            "url": {
              "raw": "{{url}}/v1/env",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "env"
              ],
              "query": [],
              "variables": []
            },
            "description": "Apply multiple changes to environment variables for an organization, Sandbox, product, or device in a single request."
          },
          "response": []
        },
        {
          "name": "Delete environment variable",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/env/:key",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "env",
                ":key"
              ],
              "query": [],
              "variables": [
                {
                  "key": "key",
                  "value": "string",
                  "description": "Environment variable name.",
                  "disabled": false
                }
              ]
            },
            "description": "Delete a single environment variable for an organization, Sandbox, product, or device."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Events",
      "item": [
        {
          "name": "Get a stream of events",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/events/:eventPrefix",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "events",
                ":eventPrefix"
              ],
              "query": [],
              "variables": [
                {
                  "key": "eventPrefix",
                  "value": "string",
                  "description": "Filters the stream to only events starting with the specified prefix. The event prefix filter is required for this endpoint.",
                  "disabled": false
                }
              ]
            },
            "description": "Open a stream of Server Sent Events for all events. for your devices matching the filter. \n\nNote that as of April 2018, the event prefix filter is required. It was optional before."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/events/:eventPrefix",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "events",
                    ":eventPrefix"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/events/temp\nHTTP/1.1 200 OK\n:ok\n\nevent: temperature\ndata: {\"data\":\"25.34\",\"ttl\":\"60\",\"published_at\":\"2015-07-18T00:12:18.174Z\",\"coreid\":\"0123456789abcdef01234567\"}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/events/:eventPrefix",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "events",
                    ":eventPrefix"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/events\nHTTP/1.1 400 Bad Request\n{ ok: false, error: \"event prefix filter is required\" }"
            }
          ]
        },
        {
          "name": "Get a stream of your events",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/devices/events/:eventPrefix",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                "events",
                ":eventPrefix"
              ],
              "query": [],
              "variables": [
                {
                  "key": "eventPrefix",
                  "value": "string",
                  "description": "Filters the stream to only events starting with the specified prefix. Omit to get all events.",
                  "disabled": true
                }
              ]
            },
            "description": "Open a stream of Server Sent Events for all events for your devices."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices/events/:eventPrefix",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    "events",
                    ":eventPrefix"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/devices/events\nHTTP/1.1 200 OK\n:ok\n\nevent: temperature\ndata: {\"data\":\"25.34\",\"ttl\":\"60\",\"published_at\":\"2015-07-18T00:12:18.174Z\",\"coreid\":\"0123456789abcdef01234567\"}"
            }
          ]
        },
        {
          "name": "Get a stream of events for a device",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId/events/:eventPrefix",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId",
                "events",
                ":eventPrefix"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "eventPrefix",
                  "value": "string",
                  "description": "Filters the stream to only events starting with the specified prefix",
                  "disabled": true
                }
              ]
            },
            "description": "Open a stream of Server Sent Events for all events for the specified device."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId/events/:eventPrefix",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId",
                    "events",
                    ":eventPrefix"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/devices/0123456789abcdef01234567/events\nHTTP/1.1 200 OK\n:ok\n\nevent: temperature\ndata: {\"data\":\"25.34\",\"ttl\":\"60\",\"published_at\":\"2015-07-18T00:12:18.174Z\",\"coreid\":\"0123456789abcdef01234567\"}"
            }
          ]
        },
        {
          "name": "Product event stream",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/events/:eventPrefix",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "events",
                ":eventPrefix"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "eventPrefix",
                  "value": "string",
                  "description": "Filters the stream to only events starting with the specified prefix",
                  "disabled": true
                }
              ]
            },
            "description": "Open a stream of Server Sent Events for all events for a product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/events/:eventPrefix",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "events",
                    ":eventPrefix"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/photon/events\nHTTP/1.1 200 OK\n:ok\n\nevent: temperature\ndata: {\"data\":\"25.34\",\"ttl\":\"60\",\"published_at\":\"2015-07-18T00:12:18.174Z\",\"coreid\":\"0123456789abcdef01234567\"}"
            }
          ]
        },
        {
          "name": "Publish an event",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"data\": \"string\",\n  \"ttl\": 0\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/events",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                "events"
              ],
              "query": [],
              "variables": []
            },
            "description": "Publish an event"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"string\",\n  \"data\": \"string\",\n  \"ttl\": 0\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/events",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    "events"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/devices/events\nHTTP/1.1 200 OK\n{\n  \"ok\": true\n}"
            }
          ]
        },
        {
          "name": "Publish a product event",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"data\": \"string\",\n  \"ttl\": 0,\n  \"as_device_id\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/events",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "events"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Publish an event that is sent to the product's event stream"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"string\",\n  \"data\": \"string\",\n  \"ttl\": 0,\n  \"as_device_id\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/events",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "events"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/:productIdOrSlug/events\nHTTP/1.1 200 OK\n{\n  \"ok\": true\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Firmware",
      "item": [
        {
          "name": "List firmware build targets",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/build_targets",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "build_targets"
              ],
              "query": [
                {
                  "key": "featured",
                  "value": false,
                  "description": "When true, show most relevant (featured) build targets only.",
                  "disabled": false
                }
              ],
              "variables": []
            },
            "description": "Lists the firmware versions for all platforms that can be used as build targets during firmware compilation. \n\nNote: This endpoint does not require an access token."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/build_targets",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "build_targets"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " PUT /v1/build_targets\n HTTP/1.1 200 OK\n {\n   \"targets\": [\n     {\n       \"platforms\": [\n         0,\n         10,\n         8,\n         6\n       ],\n       \"prereleases\": [],\n       \"firmware_vendor\": \"Particle\",\n       \"version\": \"0.6.1\"\n     }\n   ],\n   \"platforms\": {\n     \"Core\": 0,\n     \"Photon\": 6,\n     \"P1\": 8,\n     \"Electron\": 10\n   },\n   \"default_versions\": {\n     \"0\": \"0.7.0\",\n     \"6\": \"2.3.1\",\n     \"8\": \"2.3.1\",\n     \"10\": \"2.3.1\"\n    }\n }\nAs of April, 2023, an access token is no longer required to call this API."
            }
          ]
        },
        {
          "name": "Compile source code",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"file\": \"string\",\n  \"platform_id\": 0,\n  \"product_id\": \"string\",\n  \"build_target_version\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/binaries",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "binaries"
              ],
              "query": [],
              "variables": []
            },
            "description": "Compile source code into a binary for a device"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"file\": \"string\",\n  \"platform_id\": 0,\n  \"product_id\": \"string\",\n  \"build_target_version\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/binaries",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "binaries"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/binaries\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"binary_id\": \"5734a5d4a71c2601243809e6\",\n  \"binary_url\": \"/v1/binaries/5734a5d4a71c2601243809e6\",\n  \"build_target_version\": \"1.5.1\",\n  \"expires_at\": \"2016-05-13T15:48:27.997Z\",\n  \"sizeInfo\": \"   text\\t   data\\t    bss\\t    dec\\t    hex\\tfilename\\n  91780\\t    952\\t   9368\\t 102100\\t  18ed4\\t\"\n}"
            }
          ]
        },
        {
          "name": "Flash a device with source code",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"file\": \"string\",\n  \"build_target_version\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Update the device firmware from source"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"file\": \"string\",\n  \"build_target_version\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/0123456789abcdef01234567\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"message\": \"Update started\"\n}"
            }
          ]
        },
        {
          "name": "Flash a device with a pre-compiled binary",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"file\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Update the device firmware from a binary"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"file\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/0123456789abcdef01234567\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"status\": \"Update started\"\n}"
            }
          ]
        },
        {
          "name": "Flash a device with a bundle",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"file\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Update the device firmware from a bundle"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"file\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/devices/0123456789abcdef01234567\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"status\": \"Update started\"\n}"
            }
          ]
        },
        {
          "name": "Lock product device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"desired_firmware_version\": 0,\n  \"flash\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": false
                }
              ]
            },
            "description": "Locks a product device to a specific version of product firmware. This device will download and run this firmware if it is not already running it the next time it connects to the cloud. You can optionally trigger an immediate update to this firmware for devices that are currently online"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"desired_firmware_version\": 0,\n  \"flash\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/devices/12345\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"desired_firmware_version\": 1,\n  \"updated_at\": \"2017-03-10T20:21:49.059Z\"\n}"
            }
          ]
        },
        {
          "name": "Unlock product device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"desired_firmware_version\": 0\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": false
                }
              ]
            },
            "description": "Unlocks a product device from receiving and running a specific version of product firmware. The device will now be eligible to receive released firmware in the product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"desired_firmware_version\": 0\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/devices/12345\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"desired_firmware_version\": null\n  \"updated_at\": \"2017-03-10T20:21:49.059Z\"\n}"
            }
          ]
        },
        {
          "name": "Mark product development device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"development\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Mark a device in a product fleet as a development device. Once marked as a development device, it will opt-out from receiving automatic product firmware updates. This includes both locked firmware as well as released firmware."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"development\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/devices/12345\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"development\": true\n  \"updated_at\": \"2017-03-10T20:21:49.059Z\"\n}"
            }
          ]
        },
        {
          "name": "Unmark product development device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"development\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Unmark a device in a product fleet as a development device. Once unmarked, the device will opt-in to receiving automatic product firmware updates. This includes both locked firmware as well as released firmware."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"development\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/devices/12345\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"development\": false\n  \"updated_at\": \"2017-03-10T20:21:49.059Z\"\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "FleetHealth",
      "item": [
        {
          "name": "Get online devices metrics",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/online",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "metrics",
                "online"
              ],
              "query": [
                {
                  "key": "start_date",
                  "value": "2026-02-23T09:26:11.742Z",
                  "description": "DateTime to start on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "end_date",
                  "value": "2026-02-23T09:26:11.742Z",
                  "description": "DateTime to end on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "bucket_size",
                  "value": 0,
                  "description": "Number of seconds for each bucket, defaults to 900 (15 minutes). Must be greater than 15.",
                  "disabled": true
                },
                {
                  "key": "product_fw",
                  "value": 0,
                  "description": "Filter for this product firmware version.",
                  "disabled": true
                },
                {
                  "key": "device_os_version",
                  "value": "string",
                  "description": "Filter for this Device OS version.",
                  "disabled": true
                },
                {
                  "key": "device_group",
                  "value": "string",
                  "description": "Filter for this device group.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Reports the number of devices online in this product. \n\nEach time bucket contains: \n\n- count: the number of devices with an active cloud connection. \n\nDevices that recently went offline (due to being powered off or losing network connectivity) will be counted as online until the device misses sending a keep-alive message to the cloud. This is typically 25 seconds for Wi-Fi networks and 23 minutes for cellular networks. \n\nCan be filtered to include only devices with a certain firmware version, Device OS version or in a certain group."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/online",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "metrics",
                    "online"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/12345/metrics/online\nHTTP/1.1 200 OK\n{\n  \"online\": [\n    {\n      \"time\": \"2024-04-01T00:00:00.000Z\",\n      \"count\": 37\n    },\n    {\n      \"time\": \"2024-04-01T01:00:00.000Z\",\n      \"count\": 42\n    },\n    ...\n  ]\n}"
            }
          ]
        },
        {
          "name": "Get event traffic health metrics",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/events",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "metrics",
                "events"
              ],
              "query": [
                {
                  "key": "start_date",
                  "value": "2026-02-23T09:26:11.743Z",
                  "description": "DateTime to start on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "end_date",
                  "value": "2026-02-23T09:26:11.743Z",
                  "description": "DateTime to end on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "bucket_size",
                  "value": 0,
                  "description": "Number of seconds for each bucket, defaults to 900 (15 minutes). Must be greater than 15.",
                  "disabled": true
                },
                {
                  "key": "product_fw",
                  "value": 0,
                  "description": "Filter for this product firmware version.",
                  "disabled": true
                },
                {
                  "key": "device_os_version",
                  "value": "string",
                  "description": "Filter for this Device OS version.",
                  "disabled": true
                },
                {
                  "key": "device_group",
                  "value": "string",
                  "description": "Filter for this device group.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Reports each time a device publishes an event in this product. \n\nEach time bucket contains counts of: \n\n- received: the cloud received an event from a device. \n\nCan be filtered to include only events from devices with a certain firmware version, Device OS version or in a certain group."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/events",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "metrics",
                    "events"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/12345/metrics/events\nHTTP/1.1 200 OK\n{\n  \"events\": [\n    {\n      \"time\": \"2024-04-01T00:00:00.000Z\",\n      \"received\": 256\n    },\n    {\n      \"time\": \"2024-04-01T01:00:00.000Z\",\n      \"received\": 1024\n    },\n    ...\n  ]\n}"
            }
          ]
        },
        {
          "name": "Get integration traffic health metrics",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/integration",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "metrics",
                "integration"
              ],
              "query": [
                {
                  "key": "start_date",
                  "value": "2026-02-23T09:26:11.744Z",
                  "description": "DateTime to start on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "end_date",
                  "value": "2026-02-23T09:26:11.745Z",
                  "description": "DateTime to end on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "bucket_size",
                  "value": 0,
                  "description": "Number of seconds for each bucket, defaults to 900 (15 minutes). Must be greater than 15.",
                  "disabled": true
                },
                {
                  "key": "product_fw",
                  "value": 0,
                  "description": "Filter for this product firmware version.",
                  "disabled": true
                },
                {
                  "key": "device_os_version",
                  "value": "string",
                  "description": "Filter for this Device OS version.",
                  "disabled": true
                },
                {
                  "key": "device_group",
                  "value": "string",
                  "description": "Filter for this device group.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Reports outbound integration requests that are sent on behalf of this product fleet and the outcome. \n\nEach time bucket contains counts of (keys with a value of 0 will be omitted): \n\n- success: the integration request was accepted by the destination service (2xx response code).\n- failure: the integration request was rejected by the destination service (network error, 4xx or 5xx response code) after 3 attempts.\n- sleep (skipped): the integration request was not attempted because there have been too many previous failures in rapid succession. \n\nCan be filtered to include only integrations triggered by devices with a certain firmware version, Device OS version or in a certain group."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/integration",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "metrics",
                    "integration"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/12345/metrics/integration\nHTTP/1.1 200 OK\n{\n  \"integrations\": [\n    {\n      \"time\": \"2024-04-01T00:00:00.000Z\",\n      \"success\": 40,\n      \"failure\": 3,\n      \"sleep\": 1\n    },\n    {\n      \"time\": \"2024-04-01T01:00:00.000Z\",\n      \"success\": 40,\n      \"failure\": 3,\n      \"sleep\": 1\n    },\n    ...\n  ]\n}"
            }
          ]
        },
        {
          "name": "Get cloud function call health metrics",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/functions",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "metrics",
                "functions"
              ],
              "query": [
                {
                  "key": "start_date",
                  "value": "2026-02-23T09:26:11.746Z",
                  "description": "DateTime to start on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "end_date",
                  "value": "2026-02-23T09:26:11.746Z",
                  "description": "DateTime to end on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "bucket_size",
                  "value": 0,
                  "description": "Number of seconds for each bucket, defaults to 900 (15 minutes). Must be greater than 15.",
                  "disabled": true
                },
                {
                  "key": "product_fw",
                  "value": 0,
                  "description": "Filter for this product firmware version.",
                  "disabled": true
                },
                {
                  "key": "device_os_version",
                  "value": "string",
                  "description": "Filter for this Device OS version.",
                  "disabled": true
                },
                {
                  "key": "device_group",
                  "value": "string",
                  "description": "Filter for this device group.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Reports each time a Particle.function() in firmware is called on a device in this product and the outcome. \n\nEach time bucket contains counts of (keys with a value of 0 will be omitted): \n\n- success: the target device successfully received and responded to the function call.\n- failure: the target device was unable to process the function call, or was unreachable by the cloud.\n- offline: the function call attempt was skipped because the device was not connected to the cloud at the time the call was made. \n\nCan be filtered to include only function calls for devices with a certain firmware version, Device OS version or in a certain group."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/functions",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "metrics",
                    "functions"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/12345/metrics/functions\nHTTP/1.1 200 OK\n{\n  \"functions\": [\n    {\n      \"time\": \"2024-04-01T00:00:00.000Z\",\n      \"success\": 10,\n      \"failure\": 3,\n      \"offline\": 42\n    },\n    {\n      \"time\": \"2024-04-01T01:00:00.000Z\",\n      \"success\": 10,\n      \"failure\": 3,\n      \"offline\": 42\n    },\n    ...\n  ]\n}"
            }
          ]
        },
        {
          "name": "Get cloud variable request health metrics",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/variables",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "metrics",
                "variables"
              ],
              "query": [
                {
                  "key": "start_date",
                  "value": "2026-02-23T09:26:11.748Z",
                  "description": "DateTime to start on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "end_date",
                  "value": "2026-02-23T09:26:11.748Z",
                  "description": "DateTime to end on (inclusive), defaults to the current time. Date in ISO8601 format.",
                  "disabled": true
                },
                {
                  "key": "bucket_size",
                  "value": 0,
                  "description": "Number of seconds for each bucket, defaults to 900 (15 minutes). Must be greater than 15.",
                  "disabled": true
                },
                {
                  "key": "product_fw",
                  "value": 0,
                  "description": "Filter for this product firmware version.",
                  "disabled": true
                },
                {
                  "key": "device_os_version",
                  "value": "string",
                  "description": "Filter for this Device OS version.",
                  "disabled": true
                },
                {
                  "key": "device_group",
                  "value": "string",
                  "description": "Filter for this device group.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Reports each time a Particle.variable() in firmware is read on a device in this product and the outcome. \n\nEach time bucket contains counts of (keys with a value of 0 will be omitted): \n\n- success: the target device successfully received and responded to the variable request.\n- failure: the target device was unable to process the variable request, or was unreachable by the cloud.\n- offline: the variable request was skipped because the device was not connected to the cloud at the time the call was made. \n\nCan be filtered to include only variable requests for devices with a certain firmware version, Device OS version or in a certain group."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/metrics/variables",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "metrics",
                    "variables"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/12345/metrics/variables\nHTTP/1.1 200 OK\n{\n  \"variables\": [\n    {\n      \"time\": \"2024-04-01T00:00:00.000Z\",\n      \"success\": 10,\n      \"failure\": 3,\n      \"offline\": 42\n    },\n    {\n      \"time\": \"2024-04-01T01:00:00.000Z\",\n      \"success\": 10,\n      \"failure\": 3,\n      \"offline\": 42\n    },\n    ...\n  ]\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Groups",
      "item": [
        {
          "name": "Get device group",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/groups/:groupName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "groups",
                ":groupName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "groupName",
                  "value": "string",
                  "description": "The group name to fetch",
                  "disabled": false
                }
              ]
            },
            "description": "Retrieve full info on a specific product group, including its device count."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/groups/:groupName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "groups",
                    ":groupName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/groups/group_a\nHTTP/1.1 200 OK\n{\n  \"group\": {\n    \"name\":\"group_a\",\n    \"description\":\"first group A\",\n    \"color\":\"#e74c3c\",\n    \"fw_version\":1,\n    \"device_count\":3\n  }\n}"
            }
          ]
        },
        {
          "name": "List device groups",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/groups",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "groups"
              ],
              "query": [
                {
                  "key": "name",
                  "value": "string",
                  "description": "String to filter group names by. Partial string matching.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "List the group objects that exist in the product. Optionally, filter by group name (partial match)."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/groups",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "groups"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/groups?name=gr\nHTTP/1.1 200 OK\n{\n  \"groups\": [\n    {\n      \"name\":\"group_a\",\n      \"description\":\"the A group\",\n      \"fw_version\":3,\n      \"color\":\"#34495e\"\n    },\n    {\n      \"name\":\"group_b\",\n      \"description\": \"the B group\",\n      \"color\":\"#34495e\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Impact of taking action",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/impact",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "impact"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Understand the number of devices that would receive an over-the-air update as a result of taking an action related to device groups. \n\nCurrently, this endpoint supports understanding the impact of releasing/unreleasing firmware to one or more device groups. Pass edit_groups_for_firmware as the action parameter when calling the endpoint."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/impact",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "impact"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/impact\nHTTP/1.1 200 OK\n{\n   devices: {\n     firmware_update: {\n       total: 123,\n       by_version: [\n         {\n\t          version: 1,\n\t\t\t  total: 25\n         },\n         {\n\t\t       ...\n         }\n       ]\n     }\n   }\n}"
            }
          ]
        },
        {
          "name": "Create device group",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"color\": \"string\",\n  \"description\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/groups",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "groups"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Create a new device group withinin a product"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"string\",\n  \"color\": \"string\",\n  \"description\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/groups",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "groups"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/:productIdOrSlug/groups\nHTTP/1.1 201 Created\n{\n  \"group\": {\n    \"name\": \"group_a\",\n    \"description\": \"the A group\",\n    \"color\": \"#34495e\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Edit device group",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"color\": \"string\",\n  \"description\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/groups/:groupName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "groups",
                ":groupName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "groupName",
                  "value": "string",
                  "description": "The group name to edit",
                  "disabled": false
                }
              ]
            },
            "description": "Edit attributes of a specific device group. You must pass one of name, color, or description."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"string\",\n  \"color\": \"string\",\n  \"description\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/groups/:groupName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "groups",
                    ":groupName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/groups/group_a\nHTTP/1.1 200 OK\n{\n  \"group\": {\n    \"name\":\"double_agent\",\n    \"description\":\"group description\",\n    \"color\":\"#e74c3c\",\n    \"fw_version\":1,\n    \"device_count\":3\n  }\n}"
            }
          ]
        },
        {
          "name": "Assign groups to a device",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"groups\": [\n    {\n      \"key\": \"value\"\n    },\n    {\n      \"key\": \"value\"\n    }\n  ]\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Update group memberships for an individual device. This is an absolute endpoint, meaning that regardless of previous group memberships, the group names passed to this endpoint will be the ones assigned to the device. \n\nIf you pass a group name that does not yet exist, it will be created and assigned to the device."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"groups\": [\n    {\n      \"key\": \"value\"\n    },\n    {\n      \"key\": \"value\"\n    }\n  ]\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/devices/12345\nHTTP/1.1 200 OK\n{\n  \"id\": \"0123456789abcdef01234567\",\n  \"groups\": [\"europe\", \"asia\"]\n  \"updated_at\": \"2017-03-10T20:21:49.059Z\"\n}"
            }
          ]
        },
        {
          "name": "Batch assign groups to devices",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"string\",\n  \"devices\": [\n    {\n      \"key\": \"value\"\n    },\n    {\n      \"key\": \"value\"\n    }\n  ],\n  \"metadata\": {\n    \"key\": \"value\",\n    \"add\": [\n      {\n        \"key\": \"value\"\n      },\n      {\n        \"key\": \"value\"\n      }\n    ],\n    \"remove\": [\n      {\n        \"key\": \"value\"\n      },\n      {\n        \"key\": \"value\"\n      }\n    ]\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Assign groups to devices in a product as a batch action. Groups can either be added or removed from all devices passed to the endpoint."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"string\",\n  \"devices\": [\n    {\n      \"key\": \"value\"\n    },\n    {\n      \"key\": \"value\"\n    }\n  ],\n  \"metadata\": {\n    \"key\": \"value\",\n    \"add\": [\n      {\n        \"key\": \"value\"\n      },\n      {\n        \"key\": \"value\"\n      }\n    ],\n    \"remove\": [\n      {\n        \"key\": \"value\"\n      },\n      {\n        \"key\": \"value\"\n      }\n    ]\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/devices\nHTTP/1.1 200 OK\n{\n  \"ok\": true\n}"
            }
          ]
        },
        {
          "name": "Delete device group",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/groups/:groupName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "groups",
                ":groupName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "groupName",
                  "value": "string",
                  "description": "The group name to delete",
                  "disabled": false
                }
              ]
            },
            "description": "Delete device group. All devices that belong to this group will be removed from the deleted group."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/groups/:groupName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "groups",
                    ":groupName"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/products/:productIdOrSlug/groups/group_a\nHTTP/1.1 204 NO CONTENT"
            }
          ]
        }
      ]
    },
    {
      "name": "Integrations",
      "item": [
        {
          "name": "List integrations",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/integrations",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "List all integrations. Pay special attention to the integration_type attribute of each integration, which will let you know whether the integration is a Webhook, an Azure IoT Hub integration, or a Google Cloud Platform integration. \n\nIf you would like to only list webhooks (integrations with type: 'Webhook'), you can use a slightly different endpoint: \n\nGET /v1/webhooks"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/integrations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/integrations\nHTTP/1.1 200 OK\n[\n\t{\n\t\t\"id\":\"12345\",\n\t\t\"event\":\"eventName\",\n\t\t\"created_at\":\"2017-03-14T17:57:46.316Z\",\n\t\t\"integration_type\":\"Webhook\",\n\t\t\"url\":\"https://weather.com\",\n\t\t\"requestType\":\"POST\"\n\t}\n]"
            }
          ]
        },
        {
          "name": "Get integration",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/integrations/:integrationId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations",
                ":integrationId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "integrationId",
                  "value": "string",
                  "description": "The ID of the desired integration",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Get a single integration. Pay special attention to the integration_type attribute of each integration, which will let you know whether the integration is a Webhook, an Azure IoT Hub integration, a Google Cloud Platform integration, or a Google Maps integration."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/integrations/:integrationId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations",
                    ":integrationId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/integrations/12345\nHTTP/1.1 200 OK\n{\n\t\"integration\": {\n\t\t\"id\":\"12345\",\n\t\t\"event\":\"eventName\",\n\t    \"name\": \"Check weather\",\n\t\t\"created_at\":\"2017-03-14T17:57:46.316Z\",\n\t\t\"logs\": [...],\n\t\t\"integration_type\":\"Webhook\",\n\t\t\"url\":\"https://weather.com\",\n\t\t\"requestType\":\"POST\"\n\t}\n}"
            }
          ]
        },
        {
          "name": "Test an integration",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": \"string\",\n  \"device_id\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations/:integrationId/test",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations",
                ":integrationId",
                "test"
              ],
              "query": [],
              "variables": [
                {
                  "key": "integrationId",
                  "value": "string",
                  "description": "The ID of the desired integration",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Send a test event that triggers the integration. Helps build confidence that an integration is configured properly."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"data\": \"string\",\n  \"device_id\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations/:integrationId/test",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations",
                    ":integrationId",
                    "test"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/integrations/1234/test\nHTTP/1.1 200 OK\n{\n\t  pass: true,\n\t  data: null\n}"
            }
          ]
        },
        {
          "name": "Create a webhook",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"url\": \"string\",\n  \"name\": \"string\",\n  \"requestType\": \"string\",\n  \"deviceID\": \"string\",\n  \"body\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"form\": {\n    \"key\": \"value\"\n  },\n  \"query\": {\n    \"key\": \"value\"\n  },\n  \"auth\": {\n    \"key\": \"value\"\n  },\n  \"headers\": {\n    \"key\": \"value\"\n  },\n  \"responseTopic\": \"string\",\n  \"errorResponseTopic\": \"string\",\n  \"responseTemplate\": \"string\",\n  \"noDefaults\": false,\n  \"disabled\": false,\n  \"rejectUnauthorized\": false,\n  \"template\": \"string\",\n  \"parameters\": [\n    0,\n    1\n  ],\n  \"secrets\": [\n    0,\n    1\n  ],\n  \"use_env\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "A webhook is a flexible type of integration that allows you to interact with a wide variety of external tools and services. Create a webhook either for devices you own as a Particle developer, or for your product fleet. For more info, check out the webhooks guide."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"url\": \"string\",\n  \"name\": \"string\",\n  \"requestType\": \"string\",\n  \"deviceID\": \"string\",\n  \"body\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"form\": {\n    \"key\": \"value\"\n  },\n  \"query\": {\n    \"key\": \"value\"\n  },\n  \"auth\": {\n    \"key\": \"value\"\n  },\n  \"headers\": {\n    \"key\": \"value\"\n  },\n  \"responseTopic\": \"string\",\n  \"errorResponseTopic\": \"string\",\n  \"responseTemplate\": \"string\",\n  \"noDefaults\": false,\n  \"disabled\": false,\n  \"rejectUnauthorized\": false,\n  \"template\": \"string\",\n  \"parameters\": [\n    0,\n    1\n  ],\n  \"secrets\": [\n    0,\n    1\n  ],\n  \"use_env\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " POST /v1/webhooks\n HTTP/1.1 201 Created\n\n {\n\t  \"ok\": true\n\t  \"id\": \"12345\",\n\t  \"url\": \"https://samplesite.com\",\n\t  \"event\": \"hello\",\n\t  \"name\": \"hello for samplesite.com\",\n\t  \"created_at\": \"2016-04-28T17:06:33.123Z\",\n\t  \"hookUrl\": \"https://api.particle.io/v1/webhooks/12345\"\n }"
            }
          ]
        },
        {
          "name": "Enable Azure IoT Hub integration",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"hub_name\": \"string\",\n  \"name\": \"string\",\n  \"policy_name\": \"string\",\n  \"policy_key\": \"string\",\n  \"deviceID\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"disabled\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Enable an integration with Azure IoT Hub. For more details, check out the tutorial."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"hub_name\": \"string\",\n  \"name\": \"string\",\n  \"policy_name\": \"string\",\n  \"policy_key\": \"string\",\n  \"deviceID\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"disabled\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/integrations\nHTTP/1.1 201 Created\n{\n\t\"id\":\"1\",\n\t\"event\":\"foo\",\n\t\"created_at\":\"2017-03-16T19:54:54.570Z\",\n\t\"integration_type\":\"AzureIotHub\",\n\t\"hub_name\":\"your-iot-hub-name\",\n  \"name\": \"foo for yout-iot-hub-name\",\n\t\"policy_name\":\"iothubowner\",\n\t\"policy_key\": \"123abc\",\n\t\"ok\":true,\n\t\"integrationUrl\": \"https://api.particle.io/v1/integrations/1\"\n}"
            }
          ]
        },
        {
          "name": "Enable Google Cloud Platform integration",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"topic\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"disabled\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Enable an integration with Google Cloud Platform. For more details, check out the tutorial."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"topic\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"disabled\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/integrations\nHTTP/1.1 201 Created\n{\n\t\"id\":\"1\",\n\t\"event\":\"foo\",\n\t\"created_at\":\"2017-03-16T19:54:54.570Z\",\n\t\"integration_type\":\"GoogleCloudPubSub\",\n\t\"topic\": \"your/topic/name\",\n  \"name\": \"foo for name\",\n\t\"ok\":true,\n\t\"integrationUrl\": \"https://api.particle.io/v1/integrations/1\"\n}"
            }
          ]
        },
        {
          "name": "Enable Google Maps integration",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"api_key\": \"string\",\n  \"deviceID\": \"string\",\n  \"disabled\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Enable an integration with Google Maps. For more details, check out the tutorial."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"integration_type\": \"string\",\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"api_key\": \"string\",\n  \"deviceID\": \"string\",\n  \"disabled\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/integrations\nHTTP/1.1 201 Created\n{\n\t\"id\":\"1\",\n\t\"event\":\"foo\",\n  \"name': \"foo for Google Maps\",\n\t\"created_at\":\"2017-03-16T19:54:54.570Z\",\n\t\"integration_type\":\"GoogleMaps\",\n\t\"ok\":true,\n\t\"api_key\": \"123abc\",\n\t\"integrationUrl\": \"https://api.particle.io/v1/integrations/1\"\n}"
            }
          ]
        },
        {
          "name": "Edit a Webhook",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"string\",\n  \"deviceID\": \"string\",\n  \"url\": \"string\",\n  \"name\": \"string\",\n  \"requestType\": \"string\",\n  \"body\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"form\": {\n    \"key\": \"value\"\n  },\n  \"query\": {\n    \"key\": \"value\"\n  },\n  \"auth\": {\n    \"key\": \"value\"\n  },\n  \"headers\": {\n    \"key\": \"value\"\n  },\n  \"responseTopic\": \"string\",\n  \"errorResponseTopic\": \"string\",\n  \"responseTemplate\": \"string\",\n  \"noDefaults\": false,\n  \"disabled\": false,\n  \"rejectUnauthorized\": false,\n  \"template\": \"string\",\n  \"use_env\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations/:integrationId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations",
                ":integrationId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "integrationId",
                  "value": "string",
                  "description": "The ID of the desired integration",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Edit a Webhook. Subsequent triggering of this integration will be sent with the new attributes. \n\nThe configuration replaces the entire previous webhook configuration. It does not merge in changes."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"string\",\n  \"deviceID\": \"string\",\n  \"url\": \"string\",\n  \"name\": \"string\",\n  \"requestType\": \"string\",\n  \"body\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"form\": {\n    \"key\": \"value\"\n  },\n  \"query\": {\n    \"key\": \"value\"\n  },\n  \"auth\": {\n    \"key\": \"value\"\n  },\n  \"headers\": {\n    \"key\": \"value\"\n  },\n  \"responseTopic\": \"string\",\n  \"errorResponseTopic\": \"string\",\n  \"responseTemplate\": \"string\",\n  \"noDefaults\": false,\n  \"disabled\": false,\n  \"rejectUnauthorized\": false,\n  \"template\": \"string\",\n  \"use_env\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations/:integrationId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations",
                    ":integrationId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/integrations/12345\nHTTP/1.1 200 OK\n{\n\t\"integration\": {\n\t\t\"id\":\"12345\",\n\t\t\"event\":\"foo\",\n\t    \"name\": \"Check weather\",\n\t\t\"created_at\":\"2017-03-14T17:57:46.316Z\",\n\t\t\"integration_type\":\"Webhook\",\n\t\t\"url\":\"https://weather.com\",\n\t\t\"requestType\":\"POST\"\n\t}\n}"
            }
          ]
        },
        {
          "name": "Edit Azure IoT Hub Integration",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"hub_name\": \"string\",\n  \"policy_name\": \"string\",\n  \"policy_key\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"disabled\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations/:integrationId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations",
                ":integrationId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "integrationId",
                  "value": "string",
                  "description": "The ID of the desired integration",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Edit an Azure IoT Hub integration. Subsequent triggering of this integration will be sent with the new attributes. \n\nThe configuration replaces the entire previous webhook configuration. It does not merge in changes."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"hub_name\": \"string\",\n  \"policy_name\": \"string\",\n  \"policy_key\": \"string\",\n  \"json\": {\n    \"key\": \"value\"\n  },\n  \"disabled\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations/:integrationId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations",
                    ":integrationId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/integrations/12345\nHTTP/1.1 200 OK\n{\n\t\"integration\": {\n\t\t\"id\":\"12345\",\n\t\t\"event\":\"foo\",\n\t\t\"created_at\":\"2017-03-14T17:57:46.316Z\",\n\t\t\"integration_type\":\"AzureIotHub\",\n\t\t\"hub_name\": \"your_iot_hub\",\n\t    \"name\": \"Send to Azure\",\n\t\t\"policy_name\": \"policy_name\"\n\t\t\"policy_key\": \"123abc\"\n\t}\n}"
            }
          ]
        },
        {
          "name": "Edit Google Cloud Platform Integration",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"topic\": \"string\",\n  \"disabled\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations/:integrationId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations",
                ":integrationId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "integrationId",
                  "value": "string",
                  "description": "The ID of the desired integration",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Edit a Google Cloud platform integration. Subsequent triggering of this integration will be sent with the new attributes. \n\nThe configuration replaces the entire previous webhook configuration. It does not merge in changes."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"topic\": \"string\",\n  \"disabled\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations/:integrationId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations",
                    ":integrationId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/integrations/12345\nHTTP/1.1 200 OK\n{\n\t\"integration\": {\n\t\t\"id\":\"12345\",\n\t\t\"event\":\"foo\",\n\t\t\"created_at\":\"2017-03-14T17:57:46.316Z\",\n\t\t\"integration_type\":\"GoogleCloudPubSub\",\n\t    \"name\": \"Send to Google\",\n\t\t\"topic\": \"your/topic/name\"\n\t}\n}"
            }
          ]
        },
        {
          "name": "Edit Google Maps Integration",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"api_key\": \"string\",\n  \"disabled\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/integrations/:integrationId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations",
                ":integrationId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "integrationId",
                  "value": "string",
                  "description": "The ID of the desired integration",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Edit a Google Maps integration. Subsequent triggering of this integration will be sent with the new attributes. \n\nThe configuration replaces the entire previous webhook configuration. It does not merge in changes."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"string\",\n  \"name\": \"string\",\n  \"deviceID\": \"string\",\n  \"api_key\": \"string\",\n  \"disabled\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/integrations/:integrationId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations",
                    ":integrationId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/integrations/12345\nHTTP/1.1 200 OK\n{\n\t\"integration\": {\n\t\t\"id\":\"12345\",\n\t\t\"event\":\"foo\",\n\t\t\"created_at\":\"2017-03-14T17:57:46.316Z\",\n\t\t\"integration_type\":\"GoogleMaps\",\n\t    \"name\": \"Send to Google Maps\",\n\t\t\"api_key\": \"123abc\"\n\t}\n}"
            }
          ]
        },
        {
          "name": "Delete an integration",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/integrations/:integrationId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "integrations",
                ":integrationId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "integrationId",
                  "value": "string",
                  "description": "The ID of the desired integration",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug (only for product webhooks)",
                  "disabled": true
                }
              ]
            },
            "description": "Delete an integration and immediate stop it from triggering. The integration can belong to a user or to a product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/integrations/:integrationId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "integrations",
                    ":integrationId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/webhooks\nHTTP/1.1 204 No Content"
            }
          ]
        }
      ]
    },
    {
      "name": "Ledger",
      "item": [
        {
          "name": "List ledger instance versions",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue/versions",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName",
                "instances",
                ":scopeValue",
                "versions"
              ],
              "query": [
                {
                  "key": "replaced_before",
                  "value": "string",
                  "description": "List only versions replaced before this date",
                  "disabled": true
                },
                {
                  "key": "replaced_after",
                  "value": "string",
                  "description": "List only versions replaced after this date",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                },
                {
                  "key": "scopeValue",
                  "value": "string",
                  "description": "Scope value",
                  "disabled": false
                }
              ]
            },
            "description": "Lists all ledger instance versions."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue/versions",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName",
                    "instances",
                    ":scopeValue",
                    "versions"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/ledgers/:ledgerName/instances/:scopeValue/versions\nHTTP/1.1 200 OK\n{\n  \"versions\": [\n    {\n      \"name\": \"prodledger\",\n      \"scope\": {\n        \"type\": \"Product\",\n        \"value\": \"123\",\n        \"name\": \"My Product\"\n      },\n      \"size_bytes\": 1234,\n      \"data\": {},\n      \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n      \"created_at\": \"2023-01-01T00:00:00.000Z\",\n    }, {\n      \"name\": \"prodledger\",\n      \"scope\": {\n        \"type\": \"Product\",\n        \"value\": \"123\",\n      },\n      \"size_bytes\": 1234,\n      \"data\": {},\n      \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n      \"created_at\": \"2023-01-01T00:00:00.000Z\",\n      \"replaced_at\": \"2023-11-28T15:02:04.799Z\"\n    }\n  ],\n  \"meta\": {\n    \"has_more\": false\n   }\n}"
            }
          ]
        },
        {
          "name": "List ledger definitions",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers"
              ],
              "query": [
                {
                  "key": "page",
                  "value": 0,
                  "description": "Page number",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": 0,
                  "description": "Number of definitions per page",
                  "disabled": true
                },
                {
                  "key": "archived",
                  "value": false,
                  "description": "Filter for archived definitions",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Lists all ledger definitions belonging to the Sandbox or organization."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/ledgers\nHTTP/1.1 200 OK\n{\n  \"ledgers\": [\n    {\n      \"scope\": \"Owner\",\n      \"name\": \"My Ledger\",\n      \"description\": \"My Ledger Description\",\n      \"direction\": \"Downstream\",\n      \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n      \"created_at\": \"2023-01-01T00:00:00.000Z\",\n      \"archived_at\": \"2023-01-01T00:00:00.000Z\" | null\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"per_page\": 100,\n    \"total_pages\": 1,\n    \"total\": 1\n   }\n}"
            }
          ]
        },
        {
          "name": "Get ledger definition",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                }
              ]
            },
            "description": "Returns the specified ledger definition."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/ledgers/:ledgerName\nHTTP/1.1 200 OK\n{\n  \"ledger\": {\n    \"scope\": \"Owner\",\n    \"name\": \"My Ledger\",\n    \"description\": \"My Ledger Description\",\n    \"direction\": \"Downstream\",\n    \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n    \"created_at\": \"2023-01-01T00:00:00.000Z\",\n    \"archived_at\": \"2023-01-01T00:00:00.000Z\" | null\n  }\n}"
            }
          ]
        },
        {
          "name": "List ledger instances",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName/instances",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName",
                "instances"
              ],
              "query": [
                {
                  "key": "page",
                  "value": 0,
                  "description": "Page number",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": 0,
                  "description": "Number of instances per page",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                }
              ]
            },
            "description": "Lists all ledger instances."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName/instances",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName",
                    "instances"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/ledgers/:ledgerName/instances\nHTTP/1.1 200 OK\n{\n  \"instances\": [\n    {\n      \"name\": \"prodledger\",\n      \"scope\": {\n        \"type\": \"Product\",\n        \"value\": \"123\",\n        \"name\": \"My Product\"\n      },\n      \"size_bytes\": 1234,\n      \"data\": {},\n      \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n      \"created_at\": \"2023-01-01T00:00:00.000Z\",\n    }, {\n      \"name\": \"prodledger\",\n      \"scope\": {\n        \"type\": \"Product\",\n        \"value\": \"456\",\n        \"not_owned\": true\n      },\n      \"size_bytes\": 1234,\n      \"data\": {},\n      \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n      \"created_at\": \"2023-01-01T00:00:00.000Z\",\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"per_page\": 100,\n    \"total_pages\": 1,\n    \"total\": 1\n   }\n}"
            }
          ]
        },
        {
          "name": "Get ledger instance",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName",
                "instances",
                ":scopeValue"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                },
                {
                  "key": "scopeValue",
                  "value": "string",
                  "description": "Scope value",
                  "disabled": false
                }
              ]
            },
            "description": "Returns the specified ledger instance."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName",
                    "instances",
                    ":scopeValue"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/ledgers/:ledgerName/instances/:scopeValue\nHTTP/1.1 200 OK\n{\n  \"instance\": {\n    \"scope\": {\n      \"type\": \"Product\",\n      \"value\": \"123\",\n    },\n    \"name\": \"prodledger\",\n    \"size_bytes\": 1234,\n    \"data\": {},\n    \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n    \"created_at\": \"2023-01-01T00:00:00.000Z\",\n  }\n}"
            }
          ]
        },
        {
          "name": "Get ledger instance version",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue/versions/:version",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName",
                "instances",
                ":scopeValue",
                "versions",
                ":version"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                },
                {
                  "key": "scopeValue",
                  "value": "string",
                  "description": "Scope value",
                  "disabled": false
                },
                {
                  "key": "version",
                  "value": "string",
                  "description": "Version ID",
                  "disabled": false
                }
              ]
            },
            "description": "Returns the specified version of a ledger instance."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue/versions/:version",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName",
                    "instances",
                    ":scopeValue",
                    "versions",
                    ":version"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/ledgers/:ledgerName/instances/:scopeValue/versions/:version\nHTTP/1.1 200 OK\n{\n  \"instance\": {\n    \"scope\": {\n      \"type\": \"Product\",\n      \"value\": \"123\",\n    },\n    \"name\": \"prodledger\",\n    \"size_bytes\": 1234,\n    \"data\": {},\n    \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n    \"created_at\": \"2023-01-01T00:00:00.000Z\",\n  }\n}"
            }
          ]
        },
        {
          "name": "Create a new ledger definition",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"definition\": {\n    \"key\": \"value\"\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/ledgers",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Creates a ledger definition."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"definition\": {\n    \"key\": \"value\"\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/ledgers",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/ledgers\nHTTP/1.1 201 Created\n{\n  \"ledger\": {\n    \"scope\": \"Owner\",\n    \"name\": \"My Ledger\",\n    \"description\": \"My Ledger Description\",\n    \"direction\": \"Downstream\",\n    \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n    \"created_at\": \"2023-01-01T00:00:00.000Z\",\n    \"archived_at\": \"2023-01-01T00:00:00.000Z\" | null\n  }\n}"
            }
          ]
        },
        {
          "name": "Update ledger definition",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"definition\": {\n    \"key\": \"value\"\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                }
              ]
            },
            "description": "Updates the ledger definition."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"definition\": {\n    \"key\": \"value\"\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/ledgers/:ledgerName\nHTTP/1.1 201 Created\n{\n  \"ledger\": {\n    \"scope\": \"Owner\",\n    \"name\": \"My Ledger\",\n    \"description\": \"My Ledger Description\",\n    \"direction\": \"Downstream\",\n    \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n    \"created_at\": \"2023-01-01T00:00:00.000Z\",\n    \"archived_at\": \"2023-01-01T00:00:00.000Z\" | null\n  }\n}"
            }
          ]
        },
        {
          "name": "Set the ledger instance data",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": {\n    \"key\": \"value\"\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName",
                "instances",
                ":scopeValue"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                },
                {
                  "key": "scopeValue",
                  "value": "string",
                  "description": "Scope value",
                  "disabled": false
                }
              ]
            },
            "description": "Sets the data of the specified ledger instance."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"data\": {\n    \"key\": \"value\"\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName",
                    "instances",
                    ":scopeValue"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/ledgers/:ledgerName/instances/:scopeValue\nHTTP/1.1 201 Created\n{\n  \"instance\": {\n    \"scope\": {\n      \"type\": \"Product\",\n      \"value\": \"123\",\n    },\n    \"name\": \"prodledger\",\n    \"size_bytes\": 1234,\n    \"data\": {\n      \"foo\": \"bar\"\n    },\n    \"updated_at\": \"2023-01-01T00:00:00.000Z\",\n    \"created_at\": \"2023-01-01T00:00:00.000Z\",\n  }\n}"
            }
          ]
        },
        {
          "name": "Archive a ledger definition",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                }
              ]
            },
            "description": "Archives a ledger definition."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/ledgers/:ledgerName\nHTTP/1.1 204 No content"
            }
          ]
        },
        {
          "name": "Delete ledger instance",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "ledgers",
                ":ledgerName",
                "instances",
                ":scopeValue"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "ledgerName",
                  "value": "string",
                  "description": "Ledger name",
                  "disabled": false
                },
                {
                  "key": "scopeValue",
                  "value": "string",
                  "description": "Scope value",
                  "disabled": false
                }
              ]
            },
            "description": "Deletes the specified ledger instance."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/ledgers/:ledgerName/instances/:scopeValue",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "ledgers",
                    ":ledgerName",
                    "instances",
                    ":scopeValue"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/ledgers/:ledgerName/instances/:scopeValue\nHTTP/1.1 204 No content"
            }
          ]
        }
      ]
    },
    {
      "name": "Location",
      "item": [
        {
          "name": "Query fleet-wide locations for devices within a product",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/fleet_locations",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "fleet_locations"
              ],
              "query": [
                {
                  "key": "device_id",
                  "value": "string",
                  "description": "Device ID prefix to include in the query",
                  "disabled": true
                },
                {
                  "key": "device_name",
                  "value": "string",
                  "description": "Device name prefix to include in the query",
                  "disabled": true
                },
                {
                  "key": "groups",
                  "value": [
                    "string",
                    "string"
                  ],
                  "description": "Array of group names to include in the query",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Get the latest location data for all the devices in a product to get a fleet-wide summary of device location."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/fleet_locations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "fleet_locations"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET https://api.particle.io/v1/products/1234/fleet_locations\nHTTP/1.1 200 OK\n{\n  \"locations\": [{\n    \"device_id\": \"1234567890abcdef\",\n    \"product_id\": 343,\n    \"device_name\" : \"deploy-truck32\",\n    \"gps_lock\": true,\n    \"last_heard\": \"2020-12-07T21:07:12Z\",\n    \"groups\": [\"us-east\", \"trucks\"],\n    \"timestamps\": [\n      \"2020-12-07T21:07:12Z\",\n    ],\n    \"geometry\": {\n      \"type\": \"Point\",\n      \"coordinates\": [\n        34.518699645996094,\n        31.504855323809403\n      ]\n    }\n  }, {\n    \"device_id\": \"deadbeef123456\",\n    \"product_id\": 343,\n    \"groups\": [\"us-east\"],\n    \"device_name\": \"service-truck11\",\n    \"timestamp\": \"2020-12-07T21:07:12Z\",\n    \"gps_lock\": true,\n    \"last_heard\": \"2020-12-07T21:07:12Z\",\n    \"geometry\": {\n      \"type\": \"Point\",\n      \"coordinates\": [\n        33.548699645996094,\n        30.804855323809403\n      ]\n    },\n  }]\n}"
            }
          ]
        },
        {
          "name": "Query location for devices within a product",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/locations",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "locations"
              ],
              "query": [
                {
                  "key": "date_range",
                  "value": "string",
                  "description": "Start and end date in ISO8601 format, separated by comma, to query. Omitting date_range will return last known location.",
                  "disabled": true
                },
                {
                  "key": "rect_bl",
                  "value": "string",
                  "description": "Bottom left of the rectangular bounding box to query. Latitude and longitude separated by comma.",
                  "disabled": true
                },
                {
                  "key": "rect_tr",
                  "value": "string",
                  "description": "Top right of the rectangular bounding box to query. Latitude and longitude separated by comma.",
                  "disabled": true
                },
                {
                  "key": "device_id",
                  "value": "string",
                  "description": "Device ID prefix to include in the query",
                  "disabled": true
                },
                {
                  "key": "device_name",
                  "value": "string",
                  "description": "Device name prefix to include in the query",
                  "disabled": true
                },
                {
                  "key": "groups",
                  "value": [
                    "string",
                    "string"
                  ],
                  "description": "Array of group names to include in the query",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": 0,
                  "description": "Page of results to display. Defaults to 1",
                  "disabled": true
                },
                {
                  "key": "per_page",
                  "value": 0,
                  "description": "Number of results per page. Defaults to 20. Maximum of 100",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                }
              ]
            },
            "description": "Get latest or historical location data for devices. Date range and bounding box can be specified to narrow the query."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/locations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "locations"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET https://api.particle.io/v1/products/1234/locations\nHTTP/1.1 200 OK\n{\n  \"locations\": [{\n    \"device_id\": \"1234567890abcdef\",\n    \"product_id\": 343,\n    \"device_name\" : \"service-truck7\",\n    \"groups\": [\"us-east\", \"trucks\"],\n    \"gps_lock\": true,\n    \"last_heard\": \"2020-12-05T20:06:12Z\",\n    \"timestamps\": [\n      \"2020-12-05T20:03:40Z\",\n      \"2020-12-05T20:04:23Z\",\n      \"2020-12-05T20:05:44Z\",\n      \"2020-12-05T20:06:12Z\",\n    ],\n    \"online\": false,\n    \"geometry\": {\n      \"type\": \"LineString\",\n      \"coordinates\": [[\n        34.518699645996094,\n        31.504855323809403\n      ],[\n        34.528699645996094,\n        31.604855323809403\n      ],[\n        34.538699645996094,\n        31.704855323809403\n      ],[\n        34.548699645996094,\n        31.804855323809403\n      ]]\n    }\n  }, {\n    \"device_id\": \"deadbeef123456\",\n    \"product_id\": 343,\n    \"device_name\": \"service-truck11\",\n    \"groups\": [\"us-east\"],\n    \"gps_lock\": true,\n    \"last_heard\": \"2020-12-05T20:06:12Z\",\n    \"timestamps\": [\n      \"2020-12-05T20:04:23Z\",\n      \"2020-12-05T20:05:44Z\",\n      \"2020-12-05T20:06:12Z\",\n    ],\n    \"online\": true,\n    \"geometry\": {\n      \"type\": \"LineString\",\n      \"coordinates\": [[\n        33.518699645996094,\n        30.504855323809403\n      ], [\n        33.528699645996094,\n        30.604855323809403\n      ], [\n        33.538699645996094,\n        30.704855323809403\n      ]]\n    },\n  }],\n  \"meta\": {\n    \"page\" : 1,\n    \"per_page\" : 20,\n    \"total_pages\" : 5,\n    \"devices_found\" : 100,\n  }\n}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/locations",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "locations"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET https://api.particle.io/v1/products/1234/locations\nHTTP/1.1 200 OK\n{\n  \"locations\": [{\n    \"device_id\": \"1234567890abcdef\",\n    \"product_id\": 343,\n    \"device_name\" : \"deploy-truck32\",\n    \"gps_lock\": true,\n    \"last_heard\": \"2020-12-07T21:07:12Z\",\n    \"groups\": [\"us-east\", \"trucks\"],\n    \"timestamps\": [\n      \"2020-12-07T21:07:12Z\",\n    ],\n    \"geometry\": {\n      \"type\": \"Point\",\n      \"coordinates\": [\n        34.518699645996094,\n        31.504855323809403\n      ]\n    }\n  }, {\n    \"device_id\": \"deadbeef123456\",\n    \"product_id\": 343,\n    \"groups\": [\"us-east\"],\n    \"device_name\": \"service-truck11\",\n    \"timestamp\": \"2020-12-07T21:07:12Z\",\n    \"gps_lock\": true,\n    \"last_heard\": \"2020-12-07T21:07:12Z\",\n    \"geometry\": {\n      \"type\": \"Point\",\n      \"coordinates\": [\n        33.548699645996094,\n        30.804855323809403\n      ]\n    },\n  }],\n  \"meta\": {\n    \"page\" : 1,\n    \"total_pages\" : 1,\n    \"per_page\" : 20,\n    \"devices_found\" : 2,\n  }\n}"
            }
          ]
        },
        {
          "name": "Query location for one device within a product",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/locations/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "locations",
                ":deviceId"
              ],
              "query": [
                {
                  "key": "date_range",
                  "value": "string",
                  "description": "Start and end date in ISO8601 format, separated by comma, to query. Omitting date_range will return last known location.",
                  "disabled": true
                },
                {
                  "key": "rect_bl",
                  "value": "string",
                  "description": "Bottom left of the rectangular bounding box to query. Latitude and longitude separated by comma.",
                  "disabled": true
                },
                {
                  "key": "rect_tr",
                  "value": "string",
                  "description": "Top right of the rectangular bounding box to query. Latitude and longitude separated by comma.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug.",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Device ID",
                  "disabled": false
                }
              ]
            },
            "description": "Get last known or historical location data for one device. Date range and bounding box can be specified to narrow down the query. Properties and custom data will be returned by default."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/locations/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "locations",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET https://api.particle.io/v1/products/1234/locations/123456\nHTTP/1.1 200 OK\n{\n  \"location\": {\n    \"device_id\": \"1234567890abcdef\",\n    \"device_name\" : \"ice-cream-truck3\",\n    \"product_id\": 343,\n    \"gps_lock\" : true,\n    \"last_heard\" : \"2020-12-05T20:06:120Z\",\n    \"groups\": [\"us-east\", \"truck\"],\n    \"timestamps\": [\n      \"2020-12-05T20:03:40Z\",\n      \"2020-12-05T20:04:23Z\",\n      \"2020-12-05T20:05:44Z\",\n      \"2020-12-05T20:06:120Z\"\n    ],\n    \"online\": true,\n    \"geometry\": {\n      \"type\": \"LineString\",\n      \"coordinates\": [[\n        34.518699645996094,\n        31.504855323809403\n      ],[\n        34.528699645996094,\n        31.604855323809403\n      ],[\n        34.538699645996094,\n        31.704855323809403\n      ],[\n        34.548699645996094,\n        31.804855323809403\n      ]]\n    },\n    \"properties\": [{\n        \"hd\" : 36.6,\n        \"acc_h\": 5.0,\n        \"speed\": 13.5,\n        \"temp\": 77.4\n    },{\n        \"hd\" : 37.6,\n        \"acc_h\": 6.0,\n        \"speed\": 13.5,\n        \"temp\": 69.4\n    },{\n        \"hd\" : 41.6,\n        \"acc_h\": 11.8,\n        \"speed\": 16.5,\n        \"temp\": 75.4\n    },{\n        \"hd\" : 42.6,\n        \"acc_h\": 7.9,\n        \"speed\": 15.5,\n        \"temp\": 78.4\n    }]\n  },\n  \"meta\": {}\n}"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/locations/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "locations",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET https://api.particle.io/v1/products/1234/locations/123456\nHTTP/1.1 200 OK\n{\n  \"location\": {\n    \"device_id\": \"1234567890abcdef\",\n    \"device_name\" : \"ice-cream-truck3\",\n    \"product_id\": 343,\n    \"groups\": [\"us-east\", \"truck\"],\n    \"gps_lock\" : true,\n    \"last_heard\" : \"2020-12-05T20:06:120Z\",\n    \"timestamps\": [\"2020-12-05T20:06:120Z\"],\n    \"geometry\": {\n      \"type\": \"Point\",\n      \"coordinates\": [\n     \t34.548699645996094,\n        31.804855323809403\n      ]\n    },\n   \"properties\": [{\n        \"hd\" : 36.6,\n        \"acc_h\": 5.0,\n        \"speed\": 13.5,\n        \"temp\": 77.4\n    }]\n  },\n  \"meta\": {}\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Logic",
      "item": [
        {
          "name": "Get logic function stats",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/logic/functions/:logicFunctionId/stats",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions",
                ":logicFunctionId",
                "stats"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "logicFunctionId",
                  "value": "string",
                  "description": "Logic function ID",
                  "disabled": false
                }
              ]
            },
            "description": "Returns the specified logic function stats."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/logic/functions/:logicFunctionId/stats",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions",
                    ":logicFunctionId",
                    "stats"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/logic/functions/:logicFunctionId/stats\nHTTP/1.1 200 OK\n{\n   \"logic_function_stats\": [\n     {\n       \"date\": \"20231106\",\n       \"success\": 175,\n       \"failure\": 168,\n       \"timeout\": 0\n     }\n   ]\n}"
            }
          ]
        },
        {
          "name": "List logic functions",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/logic/functions",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions"
              ],
              "query": [
                {
                  "key": "today_stats",
                  "value": false,
                  "description": "Include today's stats",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Lists all logic functions belonging to the specified Sandbox or organization."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/logic/functions",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/logic/functions?today_stats=true\nHTTP/1.1 200 OK\n{\n  \"logic_functions\": [\n    {\n      \"id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n      \"owner_id\": \"user:deadbeef\",\n      \"version\": 4,\n      \"enabled\": false,\n      \"name\": \"My Logic Function\",\n      \"description\": \"\",\n      \"template_slug\": null,\n      \"source\": {\n        \"type\": \"JavaScript\",\n        \"code\": \"export default function main() {}\"\n      },\n      \"created_at\": \"2023-08-08T18:37:20.355177Z\",\n      \"updated_at\": \"2023-10-25T21:10:44.240143Z\",\n      \"created_by\": \"user:deadbeef\",\n      \"updated_by\": \"user:deadbeef\",\n      \"logic_triggers\": [\n        {\n          \"id\": \"08c6cfc4-e7d6-4b75-aa9e-8690d5c7aa5d\",\n          \"type\": \"Scheduled\",\n          \"logic_function_id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n          \"enabled\": true,\n          \"version\": 4,\n          \"cron\": \"0 0 0 0 0\",\n          \"start_at\": \"2023-10-25T21:10:44.268743Z\",\n          \"end_at\": null,\n          \"last_scheduled_at\": \"2023-10-25T21:15:00Z\",\n          \"next_unscheduled_at\": \"2023-10-25T21:20:00Z\"\n        }\n      ],\n      \"today_stats\": {\n        \"success\": 0,\n        \"failure\": 0,\n        \"timeout\": 0\n      }\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Get logic function",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/logic/functions/:logicFunctionId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions",
                ":logicFunctionId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "logicFunctionId",
                  "value": "string",
                  "description": "Logic function ID",
                  "disabled": false
                }
              ]
            },
            "description": "Returns the specified logic function."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/logic/functions/:logicFunctionId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions",
                    ":logicFunctionId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/logic/functions/:logicFunctionId\nHTTP/1.1 200 OK\n{\n  \"logic_function\": {\n    \"id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n    \"owner_id\": \"user:deadbeef\",\n    \"version\": 4,\n    \"enabled\": false,\n    \"name\": \"My Logic Function\",\n    \"description\": \"\",\n    \"template_slug\": null,\n    \"source\": {\n      \"type\": \"JavaScript\",\n      \"code\": \"export default function main() {}\"\n    },\n    \"created_at\": \"2023-08-08T18:37:20.355177Z\",\n    \"updated_at\": \"2023-10-25T21:10:44.240143Z\",\n    \"created_by\": \"user:deadbeef\",\n    \"updated_by\": \"user:deadbeef\",\n    \"logic_triggers\": [\n      {\n        \"id\": \"08c6cfc4-e7d6-4b75-aa9e-8690d5c7aa5d\",\n        \"type\": \"Scheduled\",\n        \"logic_function_id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n        \"enabled\": true,\n        \"version\": 4,\n        \"cron\": \"0 0 0 0 0\",\n        \"start_at\": \"2023-10-25T21:10:44.268743Z\",\n        \"end_at\": null,\n        \"last_scheduled_at\": \"2023-10-25T21:15:00Z\",\n        \"next_unscheduled_at\": \"2023-10-25T21:20:00Z\"\n      }\n    ]\n  }\n}"
            }
          ]
        },
        {
          "name": "List logic functions runs",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/logic/functions/:logicFunctionId/runs",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions",
                ":logicFunctionId",
                "runs"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "logicFunctionId",
                  "value": "string",
                  "description": "Logic function ID",
                  "disabled": false
                }
              ]
            },
            "description": "Lists all runs for the specified logic function."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/logic/functions/:logicFunctionId/runs",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions",
                    ":logicFunctionId",
                    "runs"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/logic/functions/:logicFunctionId/runs\nHTTP/1.1 200 OK\n{\n  \"logic_runs\": [\n    {\n      \"id\": \"f1540276-63df-44a7-9f1b-b0dfec9640ea\",\n      \"owner_id\": \"user:deadbeef\",\n      \"logic_function_id\": \"f3635877-3106-49c0-84ea-28781d9371fe\",\n      \"logic_trigger_type\": \"Scheduled\",\n      \"logic_trigger_id\": \"899944c2-ff3f-4f6a-a135-c4bc624ec382\",\n      \"status\": \"Success\",\n      \"started_at\": \"2023-11-07T18:20:59.462214Z\",\n      \"finished_at\": \"2023-11-07T18:20:59.581605Z\",\n      \"log_filename\": \"user:deadbeef/function-f3635877-3106-49c0-84ea-28781d9371fe/Scheduled-899944c2-ff3f-4f6a-a135-c4bc624ec382/1699381259462:1699381259581_1f32a920-7690-41c0-9585-0bbcab7846e9.json\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Get logic function run",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/logic/functions/:logicFunctionId/runs/:logicRunId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions",
                ":logicFunctionId",
                "runs",
                ":logicRunId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "logicFunctionId",
                  "value": "string",
                  "description": "Logic function ID",
                  "disabled": false
                },
                {
                  "key": "logicRunId",
                  "value": "string",
                  "description": "Logic run ID",
                  "disabled": false
                }
              ]
            },
            "description": "Returns the specified logic function run."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/logic/functions/:logicFunctionId/runs/:logicRunId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions",
                    ":logicFunctionId",
                    "runs",
                    ":logicRunId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/logic/functions/:logicFunctionId/runs/:logicRunId\nHTTP/1.1 200 OK\n{\n  \"logic_run\": {\n    \"id\": \"f1540276-63df-44a7-9f1b-b0dfec9640ea\",\n    \"owner_id\": \"users:deadbeef\",\n    \"logic_function_id\": \"f3635877-3106-49c0-84ea-28781d9371fe\",\n    \"logic_trigger_type\": \"Scheduled\",\n    \"logic_trigger_id\": \"899944c2-ff3f-4f6a-a135-c4bc624ec382\",\n    \"status\": \"Success\",\n    \"started_at\": \"2023-11-07T18:20:59.462214Z\",\n    \"finished_at\": \"2023-11-07T18:20:59.581605Z\",\n    \"log_filename\": \"users:deadbeef/function-f3635877-3106-49c0-84ea-28781d9371fe/Scheduled-899944c2-ff3f-4f6a-a135-c4bc624ec382/1699381259462:1699381259581_1f32a920-7690-41c0-9585-0bbcab7846e9.json\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Get logic function run logs",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/logic/functions/:logicFunctionId/runs/:logicRunId/logs",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions",
                ":logicFunctionId",
                "runs",
                ":logicRunId",
                "logs"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "logicFunctionId",
                  "value": "string",
                  "description": "Logic function ID",
                  "disabled": false
                },
                {
                  "key": "logicRunId",
                  "value": "string",
                  "description": "Logic run ID",
                  "disabled": false
                }
              ]
            },
            "description": "Returns the specified logic function run logs."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/logic/functions/:logicFunctionId/runs/:logicRunId/logs",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions",
                    ":logicFunctionId",
                    "runs",
                    ":logicRunId",
                    "logs"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/logic/functions/:logicFunctionId/runs/:logicRunId/logs\nHTTP/1.1 200 OK\n{\n  \"logic_run_logs\": {\n    \"logs\": [\n      {\n        \"level\": \"Info\",\n        \"timestamp\": \"2023-11-07T18:20:59.470Z\",\n        \"args\": [\n          \"Hello\"\n        ]\n      }\n    ]\n  }\n}"
            }
          ]
        },
        {
          "name": "Execute logic function",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"source\": {\n    \"key\": \"value\",\n    \"type\": \"string\",\n    \"code\": \"string\"\n  },\n  \"event\": {\n    \"key\": \"value\",\n    \"event_data\": \"string\",\n    \"device_id\": \"string\",\n    \"product_id\": \"string\"\n  },\n  \"api_username\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/logic/execute",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "execute"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Executes the provided logic function."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"source\": {\n    \"key\": \"value\",\n    \"type\": \"string\",\n    \"code\": \"string\"\n  },\n  \"event\": {\n    \"key\": \"value\",\n    \"event_data\": \"string\",\n    \"device_id\": \"string\",\n    \"product_id\": \"string\"\n  },\n  \"api_username\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/logic/execute",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "execute"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/logic/execute\nHTTP/1.1 200 OK\n{\n  \"result\": {\n    \"status\": \"Success\",\n    \"logs\": []\n  }\n}"
            }
          ]
        },
        {
          "name": "Create a new logic function",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"logic_function\": {\n    \"key\": \"value\"\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/logic/functions",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Creates a logic function."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"logic_function\": {\n    \"key\": \"value\"\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/logic/functions",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/logic/functions\nHTTP/1.1 201 Created\n{\n  \"logic_function\": {\n    \"id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n    \"owner_id\": \"user:deadbeef\",\n    \"version\": 4,\n    \"enabled\": false,\n    \"name\": \"My Logic Function\",\n    \"description\": \"\",\n    \"template_slug\": null,\n    \"source\": {\n      \"type\": \"JavaScript\",\n      \"code\": \"export default function main() {}\"\n    },\n    \"created_at\": \"2023-08-08T18:37:20.355177Z\",\n    \"updated_at\": \"2023-10-25T21:10:44.240143Z\",\n    \"created_by\": \"user:deadbeef\",\n    \"updated_by\": \"user:deadbeef\",\n    \"logic_triggers\": [\n      {\n        \"id\": \"08c6cfc4-e7d6-4b75-aa9e-8690d5c7aa5d\",\n        \"type\": \"Scheduled\",\n        \"logic_function_id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n        \"enabled\": true,\n        \"version\": 4,\n        \"cron\": \"0 0 0 0 0\",\n        \"start_at\": \"2023-10-25T21:10:44.268743Z\",\n        \"end_at\": null,\n        \"last_scheduled_at\": \"2023-10-25T21:15:00Z\",\n        \"next_unscheduled_at\": \"2023-10-25T21:20:00Z\"\n      }\n    ]\n  }\n}"
            }
          ]
        },
        {
          "name": "Update logic function",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"logic_function\": {\n    \"key\": \"value\"\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/logic/functions/:logicFunctionId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions",
                ":logicFunctionId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "logicFunctionId",
                  "value": "string",
                  "description": "Logic function ID",
                  "disabled": false
                }
              ]
            },
            "description": "Updates the logic function."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"logic_function\": {\n    \"key\": \"value\"\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/logic/functions/:logicFunctionId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions",
                    ":logicFunctionId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/logic/functions/:logicFunctionId\nHTTP/1.1 201 Created\n{\n  \"logic_function\": {\n    \"id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n    \"owner_id\": \"user:deadbeef\",\n    \"version\": 4,\n    \"enabled\": false,\n    \"name\": \"My Logic Function\",\n    \"description\": \"\",\n    \"template_slug\": null,\n    \"source\": {\n      \"type\": \"JavaScript\",\n      \"code\": \"export default function main() {}\"\n    },\n    \"created_at\": \"2023-08-08T18:37:20.355177Z\",\n    \"updated_at\": \"2023-10-25T21:10:44.240143Z\",\n    \"created_by\": \"user:deadbeef\",\n    \"updated_by\": \"user:deadbeef\",\n    \"logic_triggers\": [\n      {\n        \"id\": \"08c6cfc4-e7d6-4b75-aa9e-8690d5c7aa5d\",\n        \"type\": \"Scheduled\",\n        \"logic_function_id\": \"79c1c82b-6dc5-49a1-b678-559b3e53a44d\",\n        \"enabled\": true,\n        \"version\": 4,\n        \"cron\": \"0 0 0 0 0\",\n        \"start_at\": \"2023-10-25T21:10:44.268743Z\",\n        \"end_at\": null,\n        \"last_scheduled_at\": \"2023-10-25T21:15:00Z\",\n        \"next_unscheduled_at\": \"2023-10-25T21:20:00Z\"\n      }\n    ],\n    \"today_stats\": {\n      \"success\": 0,\n      \"failure\": 0,\n      \"timeout\": 0\n    }\n  }\n}"
            }
          ]
        },
        {
          "name": "Delete logic function",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/logic/functions/:logicFunctionId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "logic",
                "functions",
                ":logicFunctionId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug. Organization endpoint only.",
                  "disabled": true
                },
                {
                  "key": "logicFunctionId",
                  "value": "string",
                  "description": "Logic function ID",
                  "disabled": false
                }
              ]
            },
            "description": "Deletes the specified logic function."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/logic/functions/:logicFunctionId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "logic",
                    "functions",
                    ":logicFunctionId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/logic/functions/:logicFunctionId\nHTTP/1.1 204 No content"
            }
          ]
        }
      ]
    },
    {
      "name": "OAuth",
      "item": [
        {
          "name": "List clients",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/clients",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "clients"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Get a list of all existing OAuth clients, either owned by the authenticated user or clients associated with a product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/clients",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "clients"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/clients\nHTTP/1.1 200 OK\n{\n\t\"ok\":true,\n\t\"clients\": [\n\t\t{\n\t\t\t\"name\":\"server\",\n\t\t\t\"type\":\"installed\",\n\t\t\t\"id\":\"server-999\"\n\t\t},\n\t\t{\n\t\t\t\"name\":\"Mobile App\",\n\t\t\t\"type\":\"installed\",\n\t\t\t\"id\":\"mobile-app-1234\"\n\t\t}\n\t]\n}"
            }
          ]
        },
        {
          "name": "Create a client",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"redirect_uri\": \"string\",\n  \"scope\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/clients",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "clients"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Create an OAuth client that represents an app. \n\nUse type=installed for most web and mobile apps. If you want to have Particle users login to their account on Particle in order to give your app access to their devices, then you can go through the full OAuth authorization code grant flow using type=web. This is the same way you authorize it is similar to the way you give any app access to your Facebook or Twitter account. \n\nYour client secret will never be displayed again! Save it in a safe place. \n\nIf you use type=web then you will also need to pass a redirect_uri parameter in the POST body. This is the URL where users will be redirected after telling Particle they are willing to give your app access to their devices. \n\nThe scopes provided only contain the object and action parts, skipping the domain which is being infered from the context. \n\nIf you are building a web or mobile application for your Particle product, you should use the product-specific endpoint for creating a client (POST /v1/products/:productIdOrSlug/clients). This will grant this client (and access tokens generated by this client) access to product-specific behaviors like calling functions and checking variables on product devices, creating customers, and generating customer scoped access tokens."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"redirect_uri\": \"string\",\n  \"scope\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/clients",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "clients"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/clients\nHTTP/1.1 200 OK\n{\n\t\"ok\": true,\n\t\"client\": {\n\t\t\"name\": \"MyApp\",\n\t\t\"type\": \"installed\",\n\t\t\"id\": \"myapp-2146\",\n\t\t\"secret\": \"615c620d647b6e1dab13bef1695c120b0293c342\"\n\t}\n}"
            }
          ]
        },
        {
          "name": "Update a client",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"string\",\n  \"scope\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/clients/:clientId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "clients",
                ":clientId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "clientId",
                  "value": "string",
                  "description": "The client ID to update",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Update the name or scope of an existing OAuth client."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"string\",\n  \"scope\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/clients/:clientId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "clients",
                    ":clientId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/clients/client-123\nHTTP/1.1 200 OK\n{\n\t\"ok\": true,\n\t\"client\": {\n\t\t\"name\": \"My App 2\",\n\t\t\"type\": \"installed\",\n\t\t\"id\": \"myapp-2146\",\n\t\t\"secret\": \"615c620d647b6e1dab13bef1695c120b0293c342\"\n\t}\n}"
            }
          ]
        },
        {
          "name": "Delete a client",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/clients/:clientId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "clients",
                ":clientId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "clientId",
                  "value": "string",
                  "description": "The client ID to delete",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only.",
                  "disabled": true
                }
              ]
            },
            "description": "Remove an OAuth client"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/clients/:clientId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "clients",
                    ":clientId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/clients/:clientId\nHTTP/1.1 204 No Content"
            }
          ]
        }
      ]
    },
    {
      "name": "Organizations",
      "item": [
        {
          "name": "List organizations",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs"
              ],
              "query": [],
              "variables": []
            },
            "description": "List organizations the currently authenticated user has access to"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/orgs",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "orgs"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/orgs\nHTTP/1.1 200 OK\n{\n\t \"organizations\": [\n       {\n\t\t\t\"id\":\"9980222caf8bad191600019b\",\n\t\t\t\"slug\":\"particle\",\n\t\t\t\"name\": \"Particle\"\n\t\t},\n       ...\n  ]\n}"
            }
          ]
        },
        {
          "name": "Retrieve an organization",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs/:orgIdOrSlug",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgIdOrSlug"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Retrieve details for an organization."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/orgs/:orgIdOrSlug",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "orgs",
                    ":orgIdOrSlug"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/orgs/particle\nHTTP/1.1 200 OK\n{\n  \"organization\": {\n    \"id\": \"9980222caf8bad191600019b\",\n    \"slug\": \"particle\",\n    \"name\": \"Particle\"\n  }\n}"
            }
          ]
        },
        {
          "name": "List organization products",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs/:orgIdOrSlug/products",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgIdOrSlug",
                "products"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Organization ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "List products which belong the the organization"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/orgs/:orgIdOrSlug/products",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "orgs",
                    ":orgIdOrSlug",
                    "products"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/orgs/particle/products\nHTTP/1.1 200 OK\n{\n  \"products\": [{\n    \"id\": 12345,\n    \"platform_id\": 10,\n    \"name\": \"My Product\",\n    \"slug\": \"my-product\",\n    \"description\": \"My test product\",\n    \"org\": \"Particle\",\n    \"organization_id\": \"9980222caf8bad191600019b\",\n    \"groups\": [\n      \"one\",\n      \"two\"\n    ],\n    \"settings\": {\n        \"location\": {},\n        \"known_application\": {\n            \"opt_in\": true\n        },\n        \"quarantine\": false\n    }\n  }]\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "ProductFirmware",
      "item": [
        {
          "name": "Get product firmware",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/:version",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "firmware",
                ":version"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "version",
                  "value": 0,
                  "description": "Version number of firmware to retrieve",
                  "disabled": false
                }
              ]
            },
            "description": "Get a specific version of product firmware"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/:version",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "firmware",
                    ":version"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/firmware/1\nHTTP/1.1 200 OK\n{\n\t\"_id\":\"58c09bc7df2b9a4d223d9c22\",\n\t\"version\":1,\n\t\"title\":\"My Firmware\",\n\t\"description\":\"Sample firmware description\",\n\t\"name\":\"firmware.bin\",\n\t\"size\":7952,\n\t\"product_default\":false,\n\t\"uploaded_on\":\"2017-03-09T00:03:19.181Z\",\n\t\"product_id\":295,\n \"mandatory\":false,\n\t\"uploaded_by\":{\n\t\t\"username\":\"jeff@particle.io\",\n\t\t...\n\t}\n}"
            }
          ]
        },
        {
          "name": "List all product firmwares",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/firmware",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "firmware"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "List all versions of product firmware"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/firmware",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "firmware"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/firmware\nHTTP/1.1 200 OK\n[\n    {\n\t \t\"_id\":\"58c09bc7df2b9a4d223d9c22\",\n\t \t\"version\":1,\n\t \t\"title\":\"My Firmware\",\n\t \t\"description\":\"Sample firmware description\",\n\t \t\"name\":\"firmware.bin\",\n\t \t\"size\":7952,\n\t \t\"product_default\":false,\n\t \t\"uploaded_on\":\"2017-03-09T00:03:19.181Z\",\n\t \t\"product_id\":295,\n\t \t\"uploaded_by\":{\n\t \t\t\"username\":\"jeff@particle.io\",\n\t \t},\n\t    \"groups\":{\n\t\t    [\"asia\",\"europe\",\"america\"],\n\t\t},\n\t    \"device_count\":200\n\t },\n    ...\n]"
            }
          ]
        },
        {
          "name": "Download firmware binary",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/:version/binary",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "firmware",
                ":version",
                "binary"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "version",
                  "value": 0,
                  "description": "Version number of firmware to retrieve",
                  "disabled": false
                }
              ]
            },
            "description": "Retrieve and download the original binary of a version of product firmware."
          },
          "response": []
        },
        {
          "name": "Upload product firmware",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"version\": 0,\n  \"title\": \"string\",\n  \"productIdOrSlug\": \"string\",\n  \"description\": \"string\",\n  \"mandatory\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/firmware",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "firmware"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Upload a new firmware version to a product"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"version\": 0,\n  \"title\": \"string\",\n  \"productIdOrSlug\": \"string\",\n  \"description\": \"string\",\n  \"mandatory\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/firmware",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "firmware"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/:productIdOrSlug/firmware\nHTTP/1.1 201 Created\n{\n\t\"_id\":\"58c09bc7df2b9a4d223d9c22\",\n\t\"version\":1,\n\t\"title\":\"My Firmware\",\n\t\"description\":\"Sample firmware description\",\n\t\"name\":\"firmware.bin\",\n\t\"size\":7952,\n\t\"current\":false\n\t\"uploaded_on\":\"2017-03-09T00:03:19.181Z\",\n\t\"product_id\":295,\n\t\"uploaded_by\":{\n\t\t\"username\":\"jeff@particle.io\",\n\t\t...\n\t}\n}"
            }
          ]
        },
        {
          "name": "Edit product firmware",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"string\",\n  \"description\": \"string\",\n  \"mandatory\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/:version",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "firmware",
                ":version"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "version",
                  "value": "string",
                  "description": "Version number of the firmware to edit",
                  "disabled": false
                }
              ]
            },
            "description": "Edit a specific product firmware version"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"title\": \"string\",\n  \"description\": \"string\",\n  \"mandatory\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/:version",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "firmware",
                    ":version"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/firmware/1\nHTTP/1.1 200 OK\n{\n\t\"_id\":\"58c09bc7df2b9a4d223d9c22\",\n\t\"version\":1,\n\t\"title\":\"New title\",\n\t\"description\":\"New description\",\n\t\"name\":\"firmware.bin\",\n\t\"size\":7952,\n\t\"current\":false\n\t\"uploaded_on\":\"2017-03-09T00:03:19.181Z\",\n\t\"product_id\":295,\n\t\"uploaded_by\":{\n\t\t\"username\":\"jeff@particle.io\",\n\t\t...\n\t}\n}"
            }
          ]
        },
        {
          "name": "Release product firmware",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"version\": 0,\n  \"product_default\": false,\n  \"groups\": \"string\",\n  \"intelligent\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/release",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "firmware",
                "release"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "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. \n\nYou can also release firmware to specific groups for more fine-grained firmware management. \n\nNote: 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."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"version\": 0,\n  \"product_default\": false,\n  \"groups\": \"string\",\n  \"intelligent\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/release",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "firmware",
                    "release"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/products/:productIdOrSlug/firmware/release\nHTTP/1.1 200 OK\n{\n\t\"updated_at\": \"2017-07-20T23:53:15.298Z\",\n\t\"version\":1,\n\t\"title\":\"New title\",\n\t\"size\":7952,\n\t\"product_default\":false,\n\t\"uploaded_on\":\"2017-03-09T00:03:19.181Z\",\n\t\"product_id\":295,\n\t\"uploaded_by\":{\n\t\t\"username\":\"jeff@particle.io\",\n\t},\n\t\"groups\": [\"foo\", \"bar\", \"baz\"],\n\t\"intelligent\": true\n}"
            }
          ]
        },
        {
          "name": "Delete unreleased firmware binary",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/:version",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "firmware",
                ":version"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                },
                {
                  "key": "version",
                  "value": 0,
                  "description": "Version number of firmware to delete",
                  "disabled": false
                }
              ]
            },
            "description": "Delete a version of product firmware that has never been released."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/firmware/:version",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "firmware",
                    ":version"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/products/:productIdOrSlug/firmware/1\nHTTP/1.1 204 No Content"
            }
          ]
        }
      ]
    },
    {
      "name": "Products",
      "item": [
        {
          "name": "List products",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/user/products",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user",
                "products"
              ],
              "query": [],
              "variables": []
            },
            "description": "List products the currently authenticated user has access to"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/user/products",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user",
                    "products"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/user/products\nHTTP/1.1 200 OK\n{\n  \"products\": [{\n    \"id\": 12345,\n    \"platform_id\": 10,\n    \"name\": \"My Product\",\n    \"slug\": \"my-product\",\n    \"description\": \"My test product\",\n    \"user\": \"me@example.com\"\n    \"groups\": [\n      \"one\",\n      \"two\"\n    ],\n    \"settings\": {\n        \"location\": {},\n        \"known_application\": {\n            \"opt_in\": true\n        },\n        \"quarantine\": false\n    }\n  }]\n}"
            }
          ]
        },
        {
          "name": "Retrieve a product",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Retrieve details for a product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/photon\nHTTP/1.1 200 OK\n{\n  \"product\": {\n    \"id\": 12345,\n    \"platform_id\": 10,\n    \"name\": \"My Product\",\n    \"slug\": \"my-product\",\n    \"description\": \"My test product\",\n    \"user\": \"me@example.com\"\n    \"groups\": [\n      \"one\",\n      \"two\"\n    ],\n    \"settings\": {\n        \"location\": {},\n        \"known_application\": {\n            \"opt_in\": true\n        },\n        \"quarantine\": false\n    },\n    \"device_protection\": \"disabled\"\n  }\n}"
            }
          ]
        },
        {
          "name": "List team members",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/team",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "team"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "List all team members that are part of a given product. Also, will retrieve all API users for all the products inside the org"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/team",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "team"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/team\nHTTP/1.1 200 OK\n{\n\t \"ok\": true.\n\t \"team\": [\n       {\n\t\t\t\"_id\":\"9980222caf8bad191600019b\",\n\t\t\t\"username\":\"jeff@particle.io\",\n\t\t\t\"no_mfa\": true,\n\t\t\t\"scim_provisioned\": true,\n\t\t\t\"no_password\": true\n\t\t},\n\t\t{\n         \"username\": \"test-product-api-user+abc1234@api.particle.io\",\n         \"friendly_name\": \"test-product-api-user\",\n         \"scopes\": [ \"products:list\" ],\n         \"is_programmatic\": true,\n         \"product_id\": 123456\n    },\n     ...\n  ]\n}"
            }
          ]
        },
        {
          "name": "Invite team member",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"username\": \"string\",\n  \"role\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/team",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "team"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Invite a new member to a product team. Invitee will receive an email with a link to accept the invitation and join the team."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"username\": \"string\",\n  \"role\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/team",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "team"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/:productIdOrSlug/team\nHTTP/1.1 200 OK\n{\n\t \"ok\": true,\n\t \"invited\": {\n\t\t\"username\": \"test@example.com\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Create an API user",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"friendly_name\": \"string\",\n  \"scopes\": [\n    \"string\",\n    \"string\"\n  ]\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/team",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "team"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Create an API user with specified scopes. This API user will have a single non-expiring access token."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"friendly_name\": \"string\",\n  \"scopes\": [\n    \"string\",\n    \"string\"\n  ]\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/team",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "team"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/:productIdOrSlug/team\nHTTP/1.1 200 OK\n{\n\t \"ok\": true,\n\t \"created\": {\n\t\t\"username\": \"mytoken+sdfdsfdse34@api.particle.io\",\n     \"is_programmatic\": true,\n     \"tokens\": [\n       \"token\": \"abc123\"\n     ]\n  }\n}"
            }
          ]
        },
        {
          "name": "Update team member",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/team/:username",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "team",
                ":username"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                },
                {
                  "key": "username",
                  "value": "string",
                  "description": "Username of the team member to be updated",
                  "disabled": false
                }
              ]
            },
            "description": "Update a current team member."
          },
          "response": []
        },
        {
          "name": "Regenerate programmatic user's token",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/team/:username/token",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "team",
                ":username",
                "token"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                },
                {
                  "key": "username",
                  "value": "string",
                  "description": "Username of the team member to be updated",
                  "disabled": false
                }
              ]
            },
            "description": "Regenerate programmatic users token"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/team/:username/token",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "team",
                    ":username",
                    "token"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " POST /v1/products/photon/team/test+prg123@example.com/team\n HTTP/1.1 200 OK\n {\n\t  \"ok\": true,\n\t  \"updated\":{\n\t\t\"username\": \"test+prg123@example.com\",\n\t\t\"tokens\": [\n\t\t\t{\n\t\t      \"token\": \"abc.123\"\n\t\t  }\n    ]\n\t}\n }"
            }
          ]
        },
        {
          "name": "Remove team member",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/team/:username",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "team",
                ":username"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                },
                {
                  "key": "username",
                  "value": "string",
                  "description": "Username of the team member to be removed",
                  "disabled": false
                }
              ]
            },
            "description": "Remove a current team member."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/team/:username",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "team",
                    ":username"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " DELETE /v1/products/photon/team/jeff@particle.io\n HTTP/1.1 200 OK\n {\n\t  \"ok\": true\n }"
            }
          ]
        }
      ]
    },
    {
      "name": "Quarantine",
      "item": [
        {
          "name": "Approve a quarantined device",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Approve a quarantined device. This will immediately release the device from quarantine and allow it to publish events, receive firmware updates, etc."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/photon/devices\n{ \"id\": \"123abc\" }\nHTTP/1.1 200 OK"
            }
          ]
        },
        {
          "name": "Deny a quarantined device",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "devices",
                ":deviceId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or Slug",
                  "disabled": false
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "ID of the device to be denied",
                  "disabled": false
                }
              ]
            },
            "description": "Deny a quarantined device"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/devices/:deviceId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "devices",
                    ":deviceId"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/products/photon/devices/123abc\n{ deny: true }\nHTTP/1.1 204 NO CONTENT"
            }
          ]
        }
      ]
    },
    {
      "name": "Search",
      "item": [
        {
          "name": "Search your organization",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs/:orgIdOrSlug/search",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgIdOrSlug",
                "search"
              ],
              "query": [
                {
                  "key": "text",
                  "value": "string",
                  "description": "The search text.",
                  "disabled": false
                },
                {
                  "key": "type",
                  "value": "string",
                  "description": "The type of search. Accepted values are: device, product, and sim.",
                  "disabled": true
                }
              ],
              "variables": []
            },
            "description": "Search your organization for devices, products, and SIMs. \n\nReturns at most 10 results per type."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/orgs/:orgIdOrSlug/search",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "orgs",
                    ":orgIdOrSlug",
                    "search"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/orgs/particle/search?text=alpha\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"results\": [\n    {\n      \"type\": \"device\",\n      \"org\": \"particle\",\n      \"orgName\": \"Particle\",\n      \"device\": {\n        \"id\": \"1234567890abcdef\",\n        \"name\": \"Alpha Device\",\n        \"product_id\": \"prod123\",\n        \"product_name\": \"Alpha Product\"\n      }\n    }\n  ],\n  \"hasMore\": false\n}"
            }
          ]
        },
        {
          "name": "Search your Sandbox",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/user/search",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user",
                "search"
              ],
              "query": [
                {
                  "key": "text",
                  "value": "string",
                  "description": "The search text.",
                  "disabled": false
                },
                {
                  "key": "type",
                  "value": "string",
                  "description": "The type of search. Accepted values are: device, product, and sim.",
                  "disabled": true
                }
              ],
              "variables": []
            },
            "description": "Search your Sandbox for devices, products, and SIMs. \n\nReturns at most 10 results per type."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/user/search",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user",
                    "search"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/user/search?text=alpha\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"results\": [\n    {\n      \"type\": \"device\",\n      \"device\": {\n        \"id\": \"1234567890abcdef\",\n        \"name\": \"Alpha Device\",\n        \"product_id\": \"prod123\",\n        \"product_name\": \"Alpha Product\"\n      }\n    }\n  ],\n  \"hasMore\": false\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Secrets",
      "item": [
        {
          "name": "List cloud secrets",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/secrets",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "secrets"
              ],
              "query": [],
              "variables": []
            },
            "description": "List cloud secrets in the Sandbox or organization"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/secrets",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "secrets"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/secrets\nHTTP/1.1 200 OK\n{\n  \"secrets\": [{\n    \"name\": \"MY_API_KEY\",\n    \"created_at\": \"2024-05-22T19:24:25.789Z\",\n    \"updated_at\": \"2024-05-22T19:24:25.789Z\",\n    \"last_accessed_at\": null,\n    \"integrations\": [\n       {\n         \"name\": \"my integration\",\n         \"id\": \"654346685db1b2cc1905d499\"\n       }\n    ],\n    \"logic_functions\": []\n  }]\n}"
            }
          ]
        },
        {
          "name": "Get cloud secret by name",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/secrets/:secretName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "secrets",
                ":secretName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "secretName",
                  "value": "string",
                  "description": "Name of the secret to query",
                  "disabled": false
                }
              ]
            },
            "description": "Get details of a cloud secret in the Sandbox or organization"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/secrets/:secretName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "secrets",
                    ":secretName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/secrets/MY_API_KEY\nHTTP/1.1 200 OK\n{\n  \"secret\": {\n    \"name\": \"MY_API_KEY\",\n    \"created_at\": \"2024-05-22T19:24:25.789Z\",\n    \"updated_at\": \"2024-05-22T19:24:25.789Z\",\n    \"last_accessed_at\": null,\n    \"integrations\": [\n       {\n         \"name\": \"my integration\",\n         \"id\": \"654346685db1b2cc1905d499\"\n       }\n    ],\n    \"logic_functions\": []\n  }\n}"
            }
          ]
        },
        {
          "name": "Create a cloud secret",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"secret\": {\n    \"key\": \"value\",\n    \"name\": \"string\",\n    \"value\": \"string\"\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/secrets",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "secrets"
              ],
              "query": [],
              "variables": []
            },
            "description": "Create a cloud secret in the Sandbox or organization. \n\nThe name of the secret must be unique within the Sandbox or organization."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"secret\": {\n    \"key\": \"value\",\n    \"name\": \"string\",\n    \"value\": \"string\"\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/secrets",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "secrets"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/secrets\nHTTP/1.1 201 Created\n{\n  \"secret\": {\n    \"name\": \"MY_API_KEY\",\n    \"created_at\": \"2024-05-22T19:24:25.789Z\",\n    \"updated_at\": \"2024-05-22T19:24:25.789Z\",\n    \"last_accessed_at\": null,\n    \"integrations\": [],\n    \"logic_functions\": []\n  }\n}"
            }
          ]
        },
        {
          "name": "Create or Update the value of a cloud secret",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"secret\": {\n    \"key\": \"value\",\n    \"value\": \"string\"\n  }\n}"
            },
            "url": {
              "raw": "{{url}}/v1/secrets/:secretName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "secrets",
                ":secretName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "secretName",
                  "value": "string",
                  "description": "Name of the secret to update",
                  "disabled": false
                }
              ]
            },
            "description": "Creates or Updates the value of a cloud secret in the Sandbox or organization."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"secret\": {\n    \"key\": \"value\",\n    \"value\": \"string\"\n  }\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/secrets/:secretName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "secrets",
                    ":secretName"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/secrets/MY_API_KEY\nHTTP/1.1 200 OK\n{\n  \"secret\": {\n    \"name\": \"MY_API_KEY\",\n    \"created_at\": \"2024-05-22T19:24:25.789Z\",\n    \"updated_at\": \"2024-05-22T19:24:25.789Z\",\n    \"last_accessed_at\": null,\n    \"integrations\": [],\n    \"logic_functions\": []\n  }\n}"
            }
          ]
        },
        {
          "name": "Delete a cloud secret",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/secrets/:secretName",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "secrets",
                ":secretName"
              ],
              "query": [],
              "variables": [
                {
                  "key": "secretName",
                  "value": "string",
                  "description": "Name of the secret to delete",
                  "disabled": false
                }
              ]
            },
            "description": "Delete a cloud secret in the Sandbox or organization. \n\nThe secret must not be used by any integrations or Logic Functions. Remove the secret from all integrations and Logic Functions before deleting it."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/secrets/:secretName",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "secrets",
                    ":secretName"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/secrets/MY_API_KEY\nHTTP/1.1 204 No Content"
            }
          ]
        }
      ]
    },
    {
      "name": "ServiceAgreements",
      "item": [
        {
          "name": "Get user service agreements",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/user/service_agreements",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user",
                "service_agreements"
              ],
              "query": [
                {
                  "key": "include_usage_summary",
                  "value": false,
                  "description": "Set to false to exclude current_usage_summary from the response. Defaults to true. Requires service_agreements.usage_summary:get scope.",
                  "disabled": true
                }
              ],
              "variables": []
            },
            "description": "Get the service agreements related to a user"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/user/service_agreements",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user",
                    "service_agreements"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET /v1/users/service_agreements\n HTTP/1.1 200 OK\n{\n\t\"data\":[\n\t\t\t{\n\t\t\t\t\"id\":\"1\",\n\t\t\t\t\"type\":\"service_agreement\",\n\t\t\t\t\"attributes\":{\n\t\t\t\t\t\"owner_id\":\"abc123\",\n\t\t\t\t\t\"owner_type\":\"individual\",\n\t\t\t\t\t\"name\":\"Sandbox\",\n\t\t\t\t\t\"agreement_type\":\"developer\",\n\t\t\t\t\t\"duration\":\"monthly\",\n\t\t\t\t\t\"state\":\"active\",\n\t\t\t\t\t\"starts_on\":\"2021-04-08\",\n\t\t\t\t\t\"ends_on\":null,\n\t\t\t\t\t\"current_billing_period_start\":\"2021-04-08\",\n\t\t\t\t\t\"current_billing_period_end\":\"2021-05-07\",\n\t\t\t\t\t\"next_billing_period_start\":\"2021-05-08\",\n\t\t\t\t\t\"current_usage_summary\":{\n\t\t\t\t\t\t\"device_limit_reached\":false,\n\t\t\t\t\t\t\"connectivity\":{\n\t\t\t\t\t\t\t\"all\":{\n\t\t\t\t\t\t\t\t\"owned_devices\":0,\n\t\t\t\t\t\t\t\t\"billable_devices\":0,\n\t\t\t\t\t\t\t\t\"device_data\":0,\n\t\t\t\t\t\t\t\t\"device_messages\":0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"wifi\":{\n\t\t\t\t\t\t\t\t\"owned_devices\":0,\n\t\t\t\t\t\t\t\t\"billable_devices\":0,\n\t\t\t\t\t\t\t\t\"device_data\":null,\n\t\t\t\t\t\t\t\t\"device_messages\":0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"cellular\":{\n\t\t\t\t\t\t\t\t\"owned_devices\":0,\n\t\t\t\t\t\t\t\t\"billable_devices\":0,\n\t\t\t\t\t\t\t\t\"device_data\":0,\n\t\t\t\t\t\t\t\t\"device_messages\":0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"asset_tracker\":{\n\t\t\t\t\t\t\t\t\"owned_devices\":0,\n\t\t\t\t\t\t\t\t\"billable_devices\":0,\n\t\t\t\t\t\t\t\t\"device_data\":0,\n\t\t\t\t\t\t\t\t\"device_messages\":0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"pricing_terms\":{\n\t\t\t\t\t\t\"rates\":{\n\t\t\t\t\t\t\t\"all_platforms\":{\n\t\t\t\t\t\t\t\t\"duration\":\"monthly\",\n\t\t\t\t\t\t\t\t\"per_block\":0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"pricing_model_version\":\"tier2021.1\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"device\":{\n\t\t\t\t\t\t\t\"name\":\"commercial_model:developer:device\",\n\t\t\t\t\t\t\t\"duration\":\"monthly\",\n\t\t\t\t\t\t\t\"max_devices\":100\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"messaging\":{\n\t\t\t\t\t\t\t\"name\":\"commercial_model:developer:messaging\",\n\t\t\t\t\t\t\t\"duration\":\"monthly\",\n\t\t\t\t\t\t\t\"max_messages\":100000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"device_data\":{\n\t\t\t\t\t\t\t\"uom\":\"bytes\",\n\t\t\t\t\t\t\t\"name\":\"commercial_model:developer:device_data\",\n\t\t\t\t\t\t\t\"duration\":\"monthly\",\n\t\t\t\t\t\t\t\"max_data\":45000000,\n\t\t\t\t\t\t\t\"device_data\":45000000,\n\t\t\t\t\t\t\t\"devices_cap\":45000000,\n\t\t\t\t\t\t\t\"cap_exception\":true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}"
            }
          ]
        },
        {
          "name": "Get organization service agreements",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs/:orgIdOrSlug/service_agreements",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgIdOrSlug",
                "service_agreements"
              ],
              "query": [
                {
                  "key": "include_usage_summary",
                  "value": false,
                  "description": "Set to false to exclude current_usage_summary from the response. Defaults to true. Requires service_agreements.usage_summary:get scope.",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "orgIdOrSlug",
                  "value": "string",
                  "description": "Org ID or Slug",
                  "disabled": false
                }
              ]
            },
            "description": "Get the service agreements related to an organization"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/orgs/:orgIdOrSlug/service_agreements",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "orgs",
                    ":orgIdOrSlug",
                    "service_agreements"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET /v1/orgs/particle/service_agreements\n HTTP/1.1 200 OK\n {\n\t\t\"data\":[{\n\t\t\t\"id\":\"1\",\n\t\t\t\"type\":\"service_agreement\",\n\t\t\t\"attributes\":{\n\t\t\t\t\"owner_id\":\"abc123\",\n\t\t\t\t\"owner_type\":\"organization\",\n\t\t\t\t\"name\":\"Enterprise Plan\",\n\t\t\t\t\"agreement_type\":\"enterprise\",\n\t\t\t\t\"duration\":\"annual\",\n\t\t\t\t\"state\":\"active\",\n\t\t\t\t\"starts_on\":\"2021-01-01\",\n\t\t\t\t\"ends_on\":\"2026-01-01\",\n\t\t\t\t\"current_billing_period_start\":\"2021-01-01\",\n\t\t\t\t\"current_billing_period_end\":\"2021-12-31\",\n\t\t\t\t\"next_billing_period_start\":\"2022-01-01\",\n\t\t\t\t\"current_usage_summary\":{\n\t\t\t\t\t\"device_limit_reached\":false,\n\t\t\t\t\t\"connectivity\":{\n\t\t\t\t\t\t\"all\":{\n\t\t\t\t\t\t\t\"owned_devices\":1,\n\t\t\t\t\t\t\t\"billable_devices\":1,\n\t\t\t\t\t\t\t\"device_data\":56789012,\n\t\t\t\t\t\t\t\"device_messages\":1234567\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"wifi\":{\n\t\t\t\t\t\t\t\"owned_devices\":1,\n\t\t\t\t\t\t\t\"billable_devices\":1,\n\t\t\t\t\t\t\t\"device_data\":null,\n\t\t\t\t\t\t\t\"device_messages\":123456\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"cellular\":{\n\t\t\t\t\t\t\t\"owned_devices\":1,\n\t\t\t\t\t\t\t\"billable_devices\":1,\n\t\t\t\t\t\t\t\"device_data\":12345,\n\t\t\t\t\t\t\t\"device_messages\":123456\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"asset_tracker\":{\n\t\t\t\t\t\t\t\"owned_devices\":1,\n\t\t\t\t\t\t\t\"billable_devices\":1,\n\t\t\t\t\t\t\t\"device_data\":12345678,\n\t\t\t\t\t\t\t\"device_messages\":123456\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"pricing_terms\":{\n\t\t\t\t\t\"device_data\":{\n\t\t\t\t\t\t\"uom\":\"bytes\",\n\t\t\t\t\t\t\"name\":\"commercial_model:enterprise:device_data\",\n\t\t\t\t\t\t\"cellular\":{\n\t\t\t\t\t\t\t\"max_data\":12000000000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"duration\":\"annual\",\n\t\t\t\t\t\t\"asset_tracker\":{\n\t\t\t\t\t\t\t\"max_data\":12000000000\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"rates\":{\n\t\t\t\t\t\t\"wifi\":{\n\t\t\t\t\t\t\t\"tier\":0,\n\t\t\t\t\t\t\t\"duration\":\"annual\",\n\t\t\t\t\t\t\t\"list_price\":1234\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"cellular\":{\n\t\t\t\t\t\t\t\"tier\":3,\n\t\t\t\t\t\t\t\"duration\":\"annual\",\n\t\t\t\t\t\t\t\"list_price\":1234\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"asset_tracker\":{\n\t\t\t\t\t\t\t\"tier\":3,\n\t\t\t\t\t\t\t\"duration\":\"annual\",\n\t\t\t\t\t\t\t\"list_price\":123456\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"pricing_model_version\":\"tier2021.1\"\n\t\t\t\t\t},\n\t\t\t\t\t\"messaging\":{\n\t\t\t\t\t\t\"name\":\"commercial_model:enterprise:messaging\",\n\t\t\t\t\t\t\"wifi\":{\n\t\t\t\t\t\t\t\"max_messages\":46800000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"cellular\":{\n\t\t\t\t\t\t\t\"max_messages\":182400000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"duration\":\"annual\",\n\t\t\t\t\t\t\"asset_tracker\":{\n\t\t\t\t\t\t\t\"max_messages\":237120000\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"device\":{\n\t\t\t\t\t\t\"name\":\"commercial_model:enterprise:device\",\n\t\t\t\t\t\t\"wifi\":{\n\t\t\t\t\t\t\t\"max_devices\":1500\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"cellular\":{\n\t\t\t\t\t\t\t\"max_devices\":1810\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"duration\":\"monthly\",\n\t\t\t\t\t\t\"asset_tracker\":{\n\t\t\t\t\t\t\t\"max_devices\":1810\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"support\":{\n\t\t\t\t\t\t\"account_rep\":\"support@example.com\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t]\n}"
            }
          ]
        },
        {
          "name": "Get a user usage report",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/user/usage_reports/:usageReportId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user",
                "usage_reports",
                ":usageReportId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "usageReportId",
                  "value": 0,
                  "description": "The usage report ID",
                  "disabled": false
                }
              ]
            },
            "description": "Get a single usage report related to the user. Expect \"download_url\" to be present only when the usage report has an \"available\" state."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/user/usage_reports/:usageReportId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user",
                    "usage_reports",
                    ":usageReportId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET /v1/user/usage_reports/:usageReportId\n HTTP/1.1 200 OK\n{\n\"data\": {\n  \"id\": \"1\",\n  \"type\": \"usage_report\",\n  \"attributes\": {\n    \"state\": \"pending\",\n    \"service_agreement_id\": 1,\n    \"date_period_start\": \"2022-01-01\",\n    \"date_period_end\": \"2022-02-01\",\n    \"created_at\": \"2022-01-18 13:43:23 -0800\",\n    \"expires_at\": null,\n    \"report_type\": \"devices\",\n    \"report_params\": {\n      \"devices\": [\n        \"device1\",\n        \"device2\"\n      ],\n      \"products\": [],\n      \"recipient_list\": [\n        \"your@email.com\"\n      ]\n    },\n    \"download_url\": null\n  }\n}"
            }
          ]
        },
        {
          "name": "Get an org usage report",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs/:orgSlugOrId/usage_reports/:usageReportId",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgSlugOrId",
                "usage_reports",
                ":usageReportId"
              ],
              "query": [],
              "variables": [
                {
                  "key": "usageReportId",
                  "value": 0,
                  "description": "The usage report ID",
                  "disabled": false
                },
                {
                  "key": "orgSlugOrId",
                  "value": "string",
                  "description": "Organization Slug or ID",
                  "disabled": false
                }
              ]
            },
            "description": "Get a single usage report related to an organization. Expect \"download_url\" to be present only when the usage report has an \"available\" state. \n\nThe user must be an active member of the organization."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/orgs/:orgSlugOrId/usage_reports/:usageReportId",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "orgs",
                    ":orgSlugOrId",
                    "usage_reports",
                    ":usageReportId"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " GET /v1/orgs/:orgSlugOrId/usage_reports/:usageReportId\n HTTP/1.1 200 OK\n{\n\"data\": {\n  \"id\": \"1\",\n  \"type\": \"usage_report\",\n  \"attributes\": {\n    \"state\": \"pending\",\n    \"service_agreement_id\": 1,\n    \"date_period_start\": \"2022-01-01\",\n    \"date_period_end\": \"2022-02-01\",\n    \"created_at\": \"2022-01-18 13:43:23 -0800\",\n    \"expires_at\": null,\n    \"report_type\": \"devices\",\n    \"report_params\": {\n      \"devices\": [\n        \"device1\",\n        \"device2\"\n      ],\n      \"products\": [],\n      \"recipient_list\": [\n        \"your@email.com\"\n      ]\n    },\n    \"download_url\": null\n  }\n}"
            }
          ]
        },
        {
          "name": "Get notifications for current usage period",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/user/service_agreements/:serviceAgreementId/notifications",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user",
                "service_agreements",
                ":serviceAgreementId",
                "notifications"
              ],
              "query": [],
              "variables": [
                {
                  "key": "serviceAgreementId",
                  "value": "string",
                  "description": "Service agreement ID",
                  "disabled": false
                }
              ]
            },
            "description": "Get user notifications related to a specific service agreement \n\n- Usage reached a certain threshold (70%, 90%, 100%)\n- Service was paused\n- Service was unpaused"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/user/service_agreements/:serviceAgreementId/notifications",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user",
                    "service_agreements",
                    ":serviceAgreementId",
                    "notifications"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/user/service_agreements/1234/notifications\n HTTP/1.1 200 OK\n{\n\"data\":[\n{\n\t\t\"id\": \"fff25e4e-7457-4c3c-8f6e-c9d6dfc01110\",\n\t\t\"type\": \"notification\",\n\t\t\"attributes\": {\n\t\t\t\t\"state\": \"completed\",\n\t\t\t\t\"event_name\": \"developer:usage_activity:automatic_unpause\",\n\t\t\t\t\"time_period\": \"2022-01-22\",\n\t\t\t\t\"created_at\": \"2022-01-22 00:01:00 -0800\",\n\t\t\t\t\"resource_id\": \"59\",\n\t\t\t\t\"resource_type\": \"ServiceAgreement\",\n\t\t\t\t\"details\": {\n\t\t\t\t\t\t\t\"event_type\": \"automatic_unpause\",\n\t\t\t\t\t\t\t\"hierarchy_info\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"automatic_unpause\",\n\t\t\t\t\t\t\t\t\t\"priority\": 7\n\t\t\t\t\t\t\t},\n\t\t\t\t\"device_pause_date\": \"2022-01-22T00:01:00.567-08:00\",\n\t\t\t\t\"next_billing_period_start\": \"2022-02-22\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t]\n\t}"
            }
          ]
        },
        {
          "name": "Create a user usage report",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"report_type\": \"string\",\n  \"date_period_start\": \"string\",\n  \"date_period_end\": \"string\",\n  \"devices\": [\n    \"string\",\n    \"string\"\n  ],\n  \"products\": [\n    \"string\",\n    \"string\"\n  ]\n}"
            },
            "url": {
              "raw": "{{url}}/v1/user/service_agreements/:serviceAgreementId/usage_reports",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user",
                "service_agreements",
                ":serviceAgreementId",
                "usage_reports"
              ],
              "query": [],
              "variables": [
                {
                  "key": "serviceAgreementId",
                  "value": 0,
                  "description": "Service Agreement ID",
                  "disabled": false
                }
              ]
            },
            "description": "Request a new usage report related to the user service agreement. \n\nThe usage report will be processed asynchronously. Expect its \"state\" to change throughout time."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"report_type\": \"string\",\n  \"date_period_start\": \"string\",\n  \"date_period_end\": \"string\",\n  \"devices\": [\n    \"string\",\n    \"string\"\n  ],\n  \"products\": [\n    \"string\",\n    \"string\"\n  ]\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/user/service_agreements/:serviceAgreementId/usage_reports",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user",
                    "service_agreements",
                    ":serviceAgreementId",
                    "usage_reports"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " POST /v1/user/service_agreements/:serviceAgreementId/usage_reports/\n HTTP/1.1 202 OK\n{\n\"data\": {\n  \"id\": \"1\",\n  \"type\": \"usage_report\",\n  \"attributes\": {\n    \"state\": \"pending\",\n    \"service_agreement_id\": 1,\n    \"date_period_start\": \"2022-01-01\",\n    \"date_period_end\": \"2022-01-31\",\n    \"created_at\": \"2022-01-18 13:43:23 -0800\",\n    \"expires_at\": null,\n    \"report_type\": \"devices\",\n    \"report_params\": {\n      \"devices\": [\n        \"device1\",\n        \"device2\"\n      ],\n      \"products\": [],\n      \"recipient_list\": [\n        \"your@email.com\"\n      ]\n    },\n    \"download_url\": null\n  }\n}"
            }
          ]
        },
        {
          "name": "Create an org usage report",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"report_type\": \"string\",\n  \"date_period_start\": \"string\",\n  \"date_period_end\": \"string\",\n  \"devices\": [\n    \"string\",\n    \"string\"\n  ],\n  \"products\": [\n    \"string\",\n    \"string\"\n  ]\n}"
            },
            "url": {
              "raw": "{{url}}/v1/orgs/:orgSlugOrId/service_agreements/:serviceAgreementId/usage_reports",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgSlugOrId",
                "service_agreements",
                ":serviceAgreementId",
                "usage_reports"
              ],
              "query": [],
              "variables": [
                {
                  "key": "orgSlugOrId",
                  "value": "string",
                  "description": "Organization Slug or ID",
                  "disabled": false
                },
                {
                  "key": "serviceAgreementId",
                  "value": 0,
                  "description": "Service Agreement ID",
                  "disabled": false
                }
              ]
            },
            "description": "Request a new usage report related to the organization service agreement. \n\nThe usage report will be processed asynchronously. Expect its \"state\" to change throughout time. \n\nThe user must be an active member of the organization."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"report_type\": \"string\",\n  \"date_period_start\": \"string\",\n  \"date_period_end\": \"string\",\n  \"devices\": [\n    \"string\",\n    \"string\"\n  ],\n  \"products\": [\n    \"string\",\n    \"string\"\n  ]\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/orgs/:orgSlugOrId/service_agreements/:serviceAgreementId/usage_reports",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "orgs",
                    ":orgSlugOrId",
                    "service_agreements",
                    ":serviceAgreementId",
                    "usage_reports"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": " POST /v1/orgs/:orgSlugOrId/service_agreements/:serviceAgreementId/usage_reports/\n HTTP/1.1 202 OK\n{\n\"data\": {\n  \"id\": \"1\",\n  \"type\": \"usage_report\",\n  \"attributes\": {\n    \"state\": \"pending\",\n    \"service_agreement_id\": 1,\n    \"date_period_start\": \"2022-01-01\",\n    \"date_period_end\": \"2022-01-31\",\n    \"created_at\": \"2022-01-18 13:43:23 -0800\",\n    \"expires_at\": null,\n    \"report_type\": \"devices\",\n    \"report_params\": {\n      \"devices\": [\n        \"device1\",\n        \"device2\"\n      ],\n      \"products\": [],\n      \"recipient_list\": [\n        \"your@email.com\"\n      ]\n    },\n    \"download_url\": null\n  }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Sims",
      "item": [
        {
          "name": "List SIM cards",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/sims",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims"
              ],
              "query": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "Filter results to SIMs with this ICCID (partial matching)",
                  "disabled": true
                },
                {
                  "key": "deviceId",
                  "value": "string",
                  "description": "Filter results to SIMs with this associated device ID (partial matching)",
                  "disabled": true
                },
                {
                  "key": "deviceName",
                  "value": "string",
                  "description": "Filter results to SIMs with this associated device name (partial matching)",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": 0,
                  "description": "Current page of results",
                  "disabled": true
                },
                {
                  "key": "perPage",
                  "value": 0,
                  "description": "Records per page",
                  "disabled": true
                }
              ],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Get a list of the SIM cards owned by an individual or a product. The product endpoint is paginated, by default returns 25 SIM card records per page."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/sims",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/sims\nHTTP/1.1 200 OK\n{\n\t\"sims\": [\n\t \t{\n\n\t\t\t\"_id\":\"8934076500002589174\",\n\t\t\t\"activations_count\":1,\n\t\t\t\"base_country_code\":\"US\",\n\t\t\t\"base_monthly_rate\":299,\n\t\t\t\"deactivations_count\":0,\n\t\t\t\"first_activated_on\":\"2017-01-27T23:10:16.994Z\",\n\t\t\t\"last_activated_on\":\"2017-01-27T23:10:16.994Z\",\n\t\t\t\"last_activated_via\":\"user_setup\",\n\t\t\t\"last_status_change_action\":\"activate\",\n\t\t\t\"last_status_change_action_error\":\"no\",\n\t\t\t\"msisdn\":\"345901000485300\",\n\t\t\t\"overage_monthly_rate\":99,\n\t\t\t\"status\":\"active\",\n\t\t\t\"stripe_plan_slug\":\"KickstarterElectronPlan\",\n\t\t\t\"updated_at\":\"2017-01-27T23:10:22.622Z\",\n\t\t\t\"user_id\":\"5580999caf8bad191600019b\",\n\t\t\t\"carrier\":\"telefonica\",\n\t\t\t\"last_device_id\":\"123abc\",\n\t\t\t\"last_device_name\":\"foo_bar_baz\"\n\t\t},\n\t\t...\n\t]\n}"
            }
          ]
        },
        {
          "name": "Get SIM information",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/sims/:iccid",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims",
                ":iccid"
              ],
              "query": [],
              "variables": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "Filter results to SIMs with this ICCID (partial matching) Product endpoint only",
                  "disabled": true
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve a SIM card owned by an individual or a product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/sims/8934076500002589174\nHTTP/1.1 200 OK\n{\n  {\n    \"_id\":\"8934076500002589174\",\n    \"activations_count\":1,\n    \"base_country_code\":\"US\",\n    \"base_monthly_rate\":299,\n    \"deactivations_count\":0,\n    \"first_activated_on\":\"2017-01-27T23:10:16.994Z\",\n    \"last_activated_on\":\"2017-01-27T23:10:16.994Z\",\n    \"last_activated_via\":\"user_setup\",\n    \"last_status_change_action\":\"activate\",\n    \"last_status_change_action_error\":\"no\",\n    \"msisdn\":\"345901000485300\",\n    \"overage_monthly_rate\":99,\n    \"status\":\"active\",\n    \"stripe_plan_slug\":\"KickstarterElectronPlan\",\n    \"updated_at\":\"2017-01-27T23:10:22.622Z\",\n    \"user_id\":\"5580999caf8bad191600019b\",\n    \"carrier\":\"telefonica\",\n    \"last_device_id\":\"123abc\",\n    \"last_device_name\":\"foo_bar_baz\",\n    \"owner\": \"someone@particle.io\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Get data usage",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/sims/:iccid/data_usage",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims",
                ":iccid",
                "data_usage"
              ],
              "query": [],
              "variables": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "The ICCID of the desired SIM",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Get SIM card data usage for the current billing period, broken out by day. Note that date usage reports can be delayed by up to 1 hour."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid/data_usage",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid",
                    "data_usage"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/sims/:iccid/data_usage\nHTTP/1.1 200 OK\n{\n\t\"iccid\":\"8934076500002589174\",\n\t\"usage_by_day\": [\n\t\t{\n\t\t\t\"date\":\"2017-02-24\",\n\t\t\t\"mbs_used\":0.98,\n\t\t\t\"mbs_used_cumulative\":0.98\n\t\t},\n\t\t{\n\t\t\t\"date\":\"2017-02-25\",\n\t\t\t\"mbs_used\":0.50,\n\t\t\t\"mbs_used_cumulative\":1.48\n\t\t},\n\t\t...\n\t]\n}"
            }
          ]
        },
        {
          "name": "Get data usage for product fleet",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/sims/data_usage",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "sims",
                "data_usage"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Get fleet-wide SIM card data usage for a product in the current billing period, broken out by day. Daily usage totals represent an aggregate of all SIM cards that make up the product. Data usage reports can be delayed until the next day, and occasionally by several days."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/sims/data_usage",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "sims",
                    "data_usage"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/products/:productIdOrSlug/sims/data_usage\nHTTP/1.1 200 OK\n{\n\t\"total_mbs_used\":200.00,\n\t\"total_active_sim_cards\":2000,\n\t\"usage_by_day\": [\n\t\t{\n\t\t\t\"date\":\"2017-03-01\",\n\t\t\t\"mbs_used\":100.00,\n\t\t\t\"mbs_used_cumulative\":100.00\n\t\t},\n\t\t{\n\t\t\t\"date\":\"2017-03-02\",\n\t\t\t\"mbs_used\":100.00,\n\t\t\t\"mbs_used_cumulative\":200.00\n\t\t},\n\t\t...\n\t]\n}"
            }
          ]
        },
        {
          "name": "Import and activate product SIMs",
          "request": {
            "auth": null,
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sims\": [\n    \"string\",\n    \"string\"\n  ]\n}"
            },
            "url": {
              "raw": "{{url}}/v1/products/:productIdOrSlug/sims",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "products",
                ":productIdOrSlug",
                "sims"
              ],
              "query": [],
              "variables": [
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug",
                  "disabled": false
                }
              ]
            },
            "description": "Import a group of SIM cards into a product. SIM cards will be activated upon import. Either pass an array of ICCIDs or include a file containing a list of SIM cards. \n\nImport and activation will be queued for processing. You will receive an email with the import results when all SIM cards have been processed. \n\nImporting a SIM card associated with a device will also import the device into the product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sims\": [\n    \"string\",\n    \"string\"\n  ]\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/products/:productIdOrSlug/sims",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "products",
                    ":productIdOrSlug",
                    "sims"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/products/:productIdOrSlug/sims\nHTTP/1.1 200 OK\n{\n  ok: true\n}"
            }
          ]
        },
        {
          "name": "Activate SIM",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/sims/:iccid",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims",
                ":iccid"
              ],
              "query": [],
              "variables": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "The ICCID of the SIM to update",
                  "disabled": false
                }
              ]
            },
            "description": "Activates a SIM card for the first time. \n\nCan not be used to activate Product SIM cards. Use the product import endpoint instead."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/sims/12345\nHTTP/1.1 200 OK"
            }
          ]
        },
        {
          "name": "Deactivate SIM",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/sims/:iccid",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims",
                ":iccid"
              ],
              "query": [],
              "variables": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "The ICCID of the SIM to update",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Deactivates a SIM card, disabling its ability to connect to a cell tower. Devices with deactivated SIM cards are not billable."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/sims/12345\nHTTP/1.1 200 OK"
            }
          ]
        },
        {
          "name": "Reactivate SIM",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/sims/:iccid",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims",
                ":iccid"
              ],
              "query": [],
              "variables": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "The ICCID of the SIM to update",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Re-enables a SIM card to connect to a cell tower. Do this if you'd like to reactivate a SIM that you have deactivated."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/sims/12345\nHTTP/1.1 200 OK"
            }
          ]
        },
        {
          "name": "Release SIM from account",
          "request": {
            "auth": null,
            "method": "DELETE",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/sims/:iccid",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "sims",
                ":iccid"
              ],
              "query": [],
              "variables": [
                {
                  "key": "iccid",
                  "value": "string",
                  "description": "The ICCID of the desired SIM",
                  "disabled": false
                },
                {
                  "key": "productIdOrSlug",
                  "value": "string",
                  "description": "Product ID or slug. Product endpoint only",
                  "disabled": true
                }
              ]
            },
            "description": "Remove a SIM card from an account, disassociating the SIM card from a user or a product. The SIM will also be deactivated. \n\nOnce the SIM card has been released, it can be claimed by a different user, or imported into a different product."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/sims/1234\nHTTP/1.1 204 No Content"
            },
            {
              "name": "Response",
              "originalRequest": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/sims/:iccid",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "sims",
                    ":iccid"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "DELETE /v1/sims/1234\nHTTP/1.1 202 Accepted"
            }
          ]
        }
      ]
    },
    {
      "name": "Team",
      "item": [
        {
          "name": "Read SCIM user",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs/:orgIdOrSlug/team/provision/Users/:user_id",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgIdOrSlug",
                "team",
                "provision",
                "Users",
                ":user_id"
              ],
              "query": [],
              "variables": []
            },
            "description": ""
          },
          "response": []
        },
        {
          "name": "Modify SCIM user",
          "request": {
            "auth": null,
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/orgs/:orgIdOrSlug/team/provision/Users/:user_id",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "orgs",
                ":orgIdOrSlug",
                "team",
                "provision",
                "Users",
                ":user_id"
              ],
              "query": [],
              "variables": []
            },
            "description": ""
          },
          "response": []
        }
      ]
    },
    {
      "name": "User",
      "item": [
        {
          "name": "Get user",
          "request": {
            "auth": null,
            "method": "GET",
            "header": [],
            "body": null,
            "url": {
              "raw": "{{url}}/v1/user",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user"
              ],
              "query": [],
              "variables": []
            },
            "description": "Return the user resource for the currently authenticated user."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": null,
                "url": {
                  "raw": "{{url}}/v1/user",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user"
                  ]
                }
              },
              "status": "OK",
              "code": "200",
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "GET /v1/user\nHTTP/1.1 200 OK\n{\n  \"username\": \"testuser@particle.io\",\n  \"account_info\": {\n    \"first_name\": \"Test\",\n    \"last_name\": \"User\",\n    \"business_account\": false\n  },\n  scim_provisioned: false,\n  no_password: false,\n  \"mfa\": {\n    \"enabled\": false\n  },\n  \"wifi_device_count\": 0,\n  \"cellular_device_count\": 0\n}"
            }
          ]
        },
        {
          "name": "Forgot password",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"username\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/user/password-reset",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user",
                "password-reset"
              ],
              "query": [],
              "variables": []
            },
            "description": "Create a new password reset token and send the user an email with the token. This endpoint is rate-limited to prevent abuse. \n\nNote: This endpoint does not require an access token."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"username\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/user/password-reset",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user",
                    "password-reset"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "POST /v1/user/password-reset\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"message\": \"Password reset email sent.\"\n}"
            }
          ]
        },
        {
          "name": "Update user",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"password\": \"string\",\n  \"username\": \"string\",\n  \"account_info\": {\n    \"key\": \"value\"\n  },\n  \"current_password\": \"string\",\n  \"invalidate_tokens\": false\n}"
            },
            "url": {
              "raw": "{{url}}/v1/user",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user"
              ],
              "query": [],
              "variables": []
            },
            "description": "Update the logged-in user. Allows changing email, password and other account information."
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"password\": \"string\",\n  \"username\": \"string\",\n  \"account_info\": {\n    \"key\": \"value\"\n  },\n  \"current_password\": \"string\",\n  \"invalidate_tokens\": false\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/user",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/user\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"message\": \"User's password updated.\"\n}"
            }
          ]
        },
        {
          "name": "Delete user",
          "request": {
            "auth": null,
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"password\": \"string\"\n}"
            },
            "url": {
              "raw": "{{url}}/v1/user",
              "host": [
                "{{url}}"
              ],
              "path": [
                "v1",
                "user"
              ],
              "query": [],
              "variables": []
            },
            "description": "Delete the logged-in user. Allows removing user account and artifacts from Particle system"
          },
          "response": [
            {
              "name": "Response",
              "originalRequest": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"password\": \"string\"\n}"
                },
                "url": {
                  "raw": "{{url}}/v1/user",
                  "host": [
                    "{{url}}"
                  ],
                  "path": [
                    "v1",
                    "user"
                  ]
                }
              },
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "PUT /v1/user\nHTTP/1.1 200 OK\n{\n  \"ok\": true,\n  \"message\": \"User's account has been deleted.\"\n}"
            }
          ]
        }
      ]
    }
  ],
  "variables": [
    {
      "key": "url",
      "value": "https://api.particle.io"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{access_token}}",
        "type": "string"
      }
    ]
  }
}