{"info":{"_postman_id":"be3d5400-0ddd-3b63-9741-3ab219923325","name":"Speedify for Teams API","description":"<html><head></head><body><p>The Speedify for Teams API is used to query information and manage user accounts in your Speedify team. The API is a RESTful API that uses HTTP requests and provides responses in a JSON format and using HTTP status codes.</p>\n<h1 id=\"getting-started\">Getting Started</h1>\n\n<ol><li><div>First, you need a <a href=\"http://speedify.com/enterprise/for-teams/\">Speedify for Teams account</a>.</div></li><li><div>Once you get a Speedify for Teams account, login instructions will be emailed to you. Using those you can then login to the admin console and go to <a href=\"https://my.speedify.com/api\">https://my.speedify.com/api</a></div></li><li><div>The Speedify API uses API keys to authenticate and authorize requests. Generate one by clicking the red + button on the right side of the table</div></li><li><div>Enter a description that will let you recognize what the key is used for and then click 'Generate Key'</div></li><li><div>Copy the newly generated key and use it in your application to call the Speedify for Teams API. See the <a href=\"#authentication\">Authentication </a>section for more details.</div></li></ol>\n\n<h1 id=\"versioning\">Versioning</h1>\n\n<p>All end points begin with a version number indicated by v1, v2, etc. New end points and non-breaking changes will be added to the API without any changes in the version number. Any breaking changes will result in a new version number. The older version will continue to be supported for an amount of time that will be determined when the new version is released.</p>\n<h1 id=\"authentication\">Authentication</h1>\n\n<p>The Speedify for Teams API requires an api key (that you generated and copied in the Getting Started section) sent in the \"x-api-key\" header to authenticate requests.<br>This API key should be kept private; do not add the key to public repositories or in places where a non-team user might have access to it. If you suspect that a key has been leaked, you can revoke it from the</p>\n<p><a href=\"https://my.speedify.com/api\">admin console</a></p>\n<p>.<br>Legacy scripts that use HTTP Basic Authentication are still supported.</p>\n<p>In the sample requests provided, the basic authentication credentials are part of the URL. You can also use the appropriate method in your language to send basic auth credentials instead of sending it as part of the URL. For example, in curl:</p>\n<p><code>curl -H \"x-api-key: [api-key]\" url</code></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Getting Started","slug":"getting-started"},{"content":"Versioning","slug":"versioning"},{"content":"Authentication","slug":"authentication"}],"owner":"279986","collectionId":"be3d5400-0ddd-3b63-9741-3ab219923325","publishedId":"6taakbV","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2017-09-12T12:23:21.000Z"},"item":[{"name":"Teams","item":[{"name":"Team Info","event":[{"listen":"test","script":{"id":"2f57b121-7c05-4789-8d2b-2ef5d9759680","exec":["tests[\"Status code is 200\"] = responseCode.code === 200;","","tests[\"Response time is less than 500ms\"] = responseTime < 500;","","var jsonData = JSON.parse(responseBody);","tests[\"Body contains teamId\"] = responseBody.has(\"teamId\");","tests[\"Body contains date_generated\"] = responseBody.has(\"dateGenerated\");","tests[\"Body contains teamName\"] = responseBody.has(\"teamName\");","tests[\"Body contains masterUserid\"] = responseBody.has(\"masterUserid\");","tests[\"Body contains referenceId\"] = responseBody.has(\"referenceId\");","","tests[\"teamId matches\"] = jsonData.teamId === parseInt(globals.team_id, 10);","tests[\"masterUserid matches\"] = jsonData.masterUserid === parseInt(globals.master_userid, 10);"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"72cc0f08-617e-44d5-2194-61f4f54e332b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/","description":"<p>Get basic information about your team including details about the subscription that is tied to your Speedify for Teams account.</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul><li><div>200 No Error</div></li></ul>\n\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>teamId</td>\n<td>integer</td>\n<td>Unique ID that references the team</td>\n</tr>\n<tr>\n<td>dateGenerated</td>\n<td>string</td>\n<td>Date the team was created</td>\n</tr>\n<tr>\n<td>teamName</td>\n<td>string</td>\n<td>Name of the team</td>\n</tr>\n<tr>\n<td>masterUserid</td>\n<td>string</td>\n<td>Userid of the main admin of the team</td>\n</tr>\n<tr>\n<td>subscription</td>\n<td>object</td>\n<td>Object with information about the team's subscription</td>\n</tr>\n<tr>\n<td>subscription.referenceId</td>\n<td>string</td>\n<td>Subscription referenceId</td>\n</tr>\n<tr>\n<td>subscription.active</td>\n<td>integer</td>\n<td>Status of the subscription. If it is 1, the subscription is active. If 0, the subscription has been deactivated and the team no longer has unlimited data.</td>\n</tr>\n<tr>\n<td>subscription.url</td>\n<td>string</td>\n<td>The URL used to manage payment and billing address aspects of the subscription.</td>\n</tr>\n<tr>\n<td>subscription.seats</td>\n<td>integer</td>\n<td>Number of seats available to the team. This value dictates the total number of members, including guests, that a team can have. This can be changed using the /seats end point.</td>\n</tr>\n<tr>\n<td>subscription.nextPeriodDate</td>\n<td>string</td>\n<td>Date when the subscription will be renewed. Format: YYYY-MM-DDTHH:mm:ss.000Z</td>\n</tr>\n<tr>\n<td>subscription.endDate</td>\n<td>string</td>\n<td>Date the subscritpion will end. Most auto-renewing subscriptions do not have an end date and the values will be 0000-00-00 00:00:00. If a subscription is canceled or the subscription is set to be valid only for a certain number of periods, the end date will be set to a date in the future. Format: YYYY-MM-DDTHH:mm:ss.000Z.</td>\n</tr>\n</tbody>\n</table>\n</div><li><div>403 Forbidden</div></li>\n\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Value</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Standard error code for the problem. Eg: ERROR_FORBIDDEN</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>User friendly description of the error</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams",""],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"44f79fa9-4f19-27ea-aad1-13b71a0f9097","name":"200 - OK","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\n    \"teamId\": 56328,\n    \"dateGenerated\": \"2017-03-10T14:39:48.000Z\",\n    \"teamName\": \"Test Team 001\",\n    \"masterUserid\": 21474550,\n    \"subscription\": {\n        \"referenceId\": \"CON170207-2840-94312S\",\n        \"active\": 1,\n        \"url\": \"https://sites.fastspring.com/speedify/order/s/CON170207-2847-37127S\",\n        \"seats\": 50,\n        \"nextPeriodDate\": \"2017-08-07T00:00:00.000Z\",\n        \"endDate\": \"0000-00-00 00:00:00\"\n    }\n}"},{"id":"80f858a0-8557-fb76-f3d8-ad7fed0c9903","name":"403 - Forbidden","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":"0","body":"{\n    \"type\": \"ERROR_FORBIDDEN\",\n    \"message\": \"You are not allowed to access this resource\"\n}"}],"_postman_id":"72cc0f08-617e-44d5-2194-61f4f54e332b"},{"name":"Team Members","event":[{"listen":"test","script":{"id":"04abc63a-76ad-45a0-b42d-c137d1b3690b","exec":["tests[\"Response time is less than 500ms\"] = responseTime < 500;","","tests[\"Status code is 200\"] = responseCode.code === 200;","","var jsonData = JSON.parse(responseBody);","tests[\"Total matches 1\"] = jsonData.total >= 1;","tests[\"Total matches array size\"] = jsonData.total === jsonData.members.length;"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"b32d7eb7-fb04-1928-6e0b-bb89abc2003e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/members","description":"<p>Get information about the members of your team including Speedify usage stats for each user.</p>\n<h6>RESPONSES</h6>\n<ul>\n<li>200 No Error</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>total</td>\n    <td>integer</td>\n    <td>true</td>\n    <td>Total number of members in this team</td>\n  </tr>\n  <tr>\n    <td>members</td>\n    <td>Array of Objects</td>\n    <td>true</td>\n    <td>Date the team was created. Format: YYYY-MM-DDTHH:mm:ss.000Z</td>\n  </tr>\n  <tr>\n    <td>members[x].userid</td>\n    <td>integer</td>\n    <td>true</td>\n    <td>Unique id for this user</td>\n  </tr>\n  <tr>\n    <td>members[x].email</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Email address of the user</td>\n  </tr>\n  <tr>\n    <td>members[x].firstname</td>\n    <td>string</td>\n    <td>false</td>\n    <td>First name</td>\n  </tr>\n  <tr>\n    <td>members[x].lastname</td>\n    <td>string</td>\n    <td>false</td>\n    <td>Last name</td>\n  </tr>\n  <tr>\n    <td>members[x].role</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Role the user has in the team. Limited to: admin - the user can add and remove users, request API keys, change seats, user - the user can access Speedify and deicate servers, guest - the user can access Speedify and dedicated servers (no difference with user for now)</td>\n  </tr>\n  <tr>\n    <td>members[x].dateAdded</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Date the user was added to the team. Format: YYYY-MM-DDTHH:mm:ss.000Z </td>\n  </tr>\n  <tr>\n    <td>members[x].speedify</td>\n    <td>object</td>\n    <td>true</td>\n    <td>Object containing information about Speedfy usage for this user</td>\n  </tr>\n  <tr>\n    <td>members[x].speedify.usageBytesThisPeriod</td>\n    <td>number</td>\n    <td>true</td>\n    <td>Number of bytes the user has used while connected to Speedify in this period.</td>\n  </tr>\n  <tr>\n    <td>members[x].speedify.usageMinutesThisPeriod</td>\n    <td>number</td>\n    <td>true</td>\n    <td>Minutes the user has used while connected to Speedify in this period.</td>\n  </tr>\n    <tr>\n    <td>members[x].speedify.lastUsageReport</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Last time the user was connected to a server and sent a usage report. Format: YYYY-MM-DDTHH:mm:ss.000Z</td>\n  </tr>\n</table>\n<li>403 Forbidden</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>type</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Standard error code for the problem. Eg: ERROR_FORBIDDEN</td>\n  </tr>\n    <tr>\n    <td>message</td>\n    <td>string</td>\n    <td>true</td>\n    <td>User friendly description of the error</td>\n  </tr>\n</table></ul>","urlObject":{"path":["v1","teams","members"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"1b3763ae-622e-980a-50ba-8b07e9869adf","name":"200 - OK","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/members"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"20633","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 15:30:03 GMT","description":""},{"key":"ETag","value":"W/\"5099-1CUfnLKpQNQDddQC/Bk0ww\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"1054","body":"{\n    \"total\": 2,\n    \"members\": [\n        {\n            \"userid\": 264650114,\n            \"email\": \"{{email_2}}\",\n            \"firstname\": \"Test\",\n            \"lastname\": \"User\",\n            \"role\": \"user\",\n            \"dateAdded\": \"2017-08-22T16:15:28.000Z\",\n            \"speedify\": {\n                \"usageBytesThisPeriod\": 0,\n                \"usageMinutesThisPeriod\": 0,\n                \"lastUsageReport\": null\n            }\n        },\n        {\n            \"userid\": 7012319761,\n            \"email\": \"{{email}}\",\n            \"firstname\": \"Test\",\n            \"lastname\": \"User\",\n            \"role\": \"admin\",\n            \"dateAdded\": \"2017-03-10T17:04:25.000Z\",\n            \"speedify\": {\n                \"usageBytesThisPeriod\": 980740,\n                \"usageMinutesThisPeriod\": 38,\n                \"lastUsageReport\": \"2017-08-24T17:05:40.000Z\"\n            }\n        }\n    ]\n}"},{"id":"d9b4e0f3-bba9-9745-d382-326fabf3261f","name":"403 - Forbidden","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/members"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"91","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 15:31:17 GMT","description":""},{"key":"ETag","value":"W/\"5b-GkywNNhiJzrhWHRm4FWA0w\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"345","body":"{\n  \"type\": \"ERROR_FORBIDDEN\",\n  \"message\": \"You are not allowed to access this resource\"\n}"}],"_postman_id":"b32d7eb7-fb04-1928-6e0b-bb89abc2003e"},{"name":"Server List","event":[{"listen":"test","script":{"id":"e7801219-e82a-4de2-9306-97820321fc09","exec":["tests[\"Response time is less than 500ms\"] = responseTime < 500;","","tests[\"Status code is 200\"] = responseCode.code === 200;","","var jsonData = JSON.parse(responseBody);","tests[\"Length >= 1\"] = jsonData.length >= 1;",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"580c6e59-040a-452a-a443-7cb662d2b995","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/servers","description":"<p>Get information about the servers available to your team.</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul><li><p>200 No Error</p></li><table><tbody><tr><th>Key</th><th>Type</th><th>Required</th><th>Description</th></tr><tr><td>total</td><td>integer</td><td>true</td><td>Total number of members in this team</td></tr><tr><td>servers</td><td>Array of Objects</td><td>true</td><td>Date the team was created. Format: YYYY-MM-DDTHH:mm:ss.000Z</td></tr><tr><td>servers[x].id</td><td>string</td><td>true</td><td>Unique id for this server</td></tr><tr><td>servers[x].currentState</td><td>string</td><td>true</td><td>Current state of the server (ONLINE/OFFLINE/UNAVAILABLE)</td></tr><tr><td>servers[x].publicIP</td><td>Array of strings</td><td>true</td><td>Array of public IPv4 addresses of the server</td></tr><tr><td>servers[x].private</td><td>string</td><td>true</td><td>\"true\" if server is reserved for team members only, \"false\" if server is public</td></tr><tr><td>servers[x].country</td><td>string</td><td>true</td><td>Two-letter country code for server location, prefixed with \"private\" if the server is private</td></tr><tr><td>servers[x].city</td><td>string</td><td>true</td><td>City the server is located in</td></tr><tr><td>servers[x].num</td><td>string</td><td>true</td><td>Numeric identifier for the server in that city</td></tr><tr><td>servers[x].dc</td><td>string</td><td>true</td><td>Datacenter the server is located in, in \"provider-city\" format</td></tr></tbody></table><li><p>403 Forbidden</p></li><table><tbody><tr><th>Key</th><th>Type</th><th>Required</th><th>Description</th></tr><tr><td>type</td><td>string</td><td>true</td><td>Standard error code for the problem. Eg: ERROR_FORBIDDEN</td></tr><tr><td>message</td><td>string</td><td>true</td><td>User friendly description of the error</td></tr></tbody></table></ul>","urlObject":{"path":["v1","teams","servers"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"0ce3c150-7c8c-4116-9551-abbc32fcd992","name":"200 - OK","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/servers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"20633","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 15:30:03 GMT","description":""},{"key":"ETag","value":"W/\"5099-1CUfnLKpQNQDddQC/Bk0ww\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"1054","body":"{\n  \"total\": 2,\n  \"servers\": [\n    {\n      \"id\": \"76f88ada70b785c052bcfbc3121f66c28b5302762e4bf4fea9ffa2c7c95fee92\",\n      \"pVersion\": \"4\",\n      \"mType\": \"1\",\n      \"currentState\": \"ONLINE\",\n      \"date\": \"Tue, 08 Aug 2023 10:00:19 GMT\",\n      \"publicIP\": [\n        \"1.2.3.4\"\n      ],\n      \"apiPort\": 443,\n      \"longName\": \"Private USA - Chicago #2\",\n      \"currentUsers\": 11,\n      \"version\": \"7.15.0-75b3611983b9ebcefaa11beae63ec62b608096d3\",\n      \"revision\": \"\",\n      \"hostName\": \"ssm-host-us-chicago-2.somedomain.com\",\n      \"torrent\": \"no\",\n      \"latitude\": \"41.878114\",\n      \"longitude\": \"-87.629798\",\n      \"private\": \"yes\",\n      \"premiumOnly\": \"no\",\n      \"country\": \"privateus\",\n      \"city\": \"chicago\",\n      \"num\": \"2\",\n      \"dc\": \"vultr-chicago\",\n      \"expectedUpBw\": \"300\",\n      \"expectedDownBw\": \"300\",\n      \"connectedUsers\": 0,\n      \"machineStats\": {\n        \"cpu\": 0.0040160642570282335,\n        \"load\": 0.01,\n        \"memory\": 0.3600771724645464,\n        \"network\": {\n          \"up\": 3.395555555555556e-07,\n          \"down\": 3.391111111111111e-07\n        }\n      },\n      \"unifiedMetric\": 0.11222810683869461\n    },\n    {\n      \"id\": \"ac71c706dc575c3ff3053c2ce7d1f94c36d69dd5c29cd12a272d448405fd2fa6\",\n      \"pVersion\": \"4\",\n      \"mType\": \"1\",\n      \"currentState\": \"ONLINE\",\n      \"date\": \"Tue, 08 Aug 2023 09:58:15 GMT\",\n      \"publicIP\": [\n        \"5.6.7.8\"\n      ],\n      \"apiPort\": 443,\n      \"longName\": \"Singapore - Singapore #3\",\n      \"currentUsers\": 11,\n      \"version\": \"7.15.0-75b3611983b9ebcefaa11beae63ec62b608096d3\",\n      \"revision\": \"\",\n      \"hostName\": \"ssm-host-sg-singapore-3.somedomain.com\",\n      \"torrent\": \"no\",\n      \"latitude\": \"1.280094\",\n      \"longitude\": \"103.850949\",\n      \"private\": \"no\",\n      \"premiumOnly\": \"no\",\n      \"country\": \"sg\",\n      \"city\": \"singapore\",\n      \"num\": \"3\",\n      \"dc\": \"do-singapore\",\n      \"expectedUpBw\": \"500\",\n      \"expectedDownBw\": \"500\",\n      \"connectedUsers\": 0,\n      \"machineStats\": {\n        \"cpu\": 0.014084507042253449,\n        \"load\": 0,\n        \"memory\": 0.3663267476485324,\n        \"network\": {\n          \"up\": 1.8245333333333333e-06,\n          \"down\": 1.3733333333333335e-06\n        }\n      },\n      \"unifiedMetric\": 0.1141241062205691\n    }\n  ]\n}"},{"id":"297d25eb-f49a-4bb6-893f-8b0f1182d832","name":"403 - Forbidden","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api-url}}/v1/teams/servers"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"91","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 15:31:17 GMT","description":""},{"key":"ETag","value":"W/\"5b-GkywNNhiJzrhWHRm4FWA0w\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"345","body":"{\n  \"type\": \"ERROR_FORBIDDEN\",\n  \"message\": \"You are not allowed to access this resource\"\n}"}],"_postman_id":"580c6e59-040a-452a-a443-7cb662d2b995"},{"name":"Add Team Member","event":[{"listen":"test","script":{"id":"f4a7109d-0810-475c-8e31-db41bcb35ae7","exec":["tests[\"Status code is 200\"] = responseCode.code === 200;","","tests[\"Response time is less than 500ms\"] = responseTime < 500;","","var jsonData = JSON.parse(responseBody);","tests[\"Body contains userid\"] = responseBody.has(\"userid\");","tests[\"Body contains role\"] = responseBody.has(\"role\");","tests[\"Body contains teamId\"] = responseBody.has(\"teamId\");","tests[\"Body contains email\"] = responseBody.has(\"email\");","","tests[\"role matches\"] = jsonData.role === globals.role;","tests[\"teamId matches\"] = jsonData.teamId === globals.team_id;"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"77aafb9f-3f27-87a7-e0cf-0ee7e9a2fb0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"{{email}}\",\n    \"role\": \"{{role}}\",\n    \"firstName\": \"{{firstname}}\",\n    \"lastName\": \"{{lastname}}\"\n}"},"url":"{{api-url}}/v1/teams/members","description":"<p>Add a member to your team. This user will then have unlimited usage as long as your subscription is valid and have access to all the dedicated servers for your team. A user with the role 'admin' will also have access to the management console and be able to add and remove members as well as change the number of seats available.</p>\n<p>If you want to invite real people to your team, it is best to not set a password and send the invite email. If, instead, you are making accounts for machines that you are configuring, you would probably want to set the password and not send an email.</p>\n<h6 id=\"body\">BODY</h6>\n<table><tbody><tr><th>Key</th><th>Type</th><th>Required</th><th>Description</th></tr><tr><td><div>email</div><div><div><div><div></div></div></div><div></div></div></td><td><div>string</div><div><div><div><div></div></div></div><div></div></div></td><td><div>true</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Email address of the user</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>role</div><div><div><div><div></div></div></div><div></div></div></td><td><div>string</div><div><div><div><div></div></div></div><div></div></div></td><td><div>false</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Role the user has in the team. Defaults to 'user'.</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>firstName</div><div><div><div><div></div></div></div><div></div></div></td><td><div>string</div><div><div><div><div></div></div></div><div></div></div></td><td><div>false</div><div><div><div><div></div></div></div><div></div></div></td><td><div>First name of the new user</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>lastName</div><div><div><div><div></div></div></div><div></div></div></td><td><div>string</div><div><div><div><div></div></div></div><div></div></div></td><td><div>false</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Last name of the new user</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>password</div><div><div><div><div></div></div></div><div></div></div></td><td><div>string</div><div><div><div><div></div></div></div><div></div></div></td><td><div>false</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Default password for the user</div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h6 id=\"responses\">RESPONSES</h6>\n<ul><li><div>200 No Error</div></li></ul>\n\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>role</td>\n<td>string</td>\n<td>false</td>\n<td>Role the user has in the team.</td>\n</tr>\n<tr>\n<td>userid</td>\n<td>number</td>\n<td>true</td>\n<td>Userid of the new user</td>\n</tr>\n<tr>\n<td>firstName</td>\n<td>string</td>\n<td>false</td>\n<td>First name of the new user</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>string</td>\n<td>false</td>\n<td>Last name of the new user</td>\n</tr>\n</tbody>\n</table>\n</div><li><div>400 ERROR_ALREADY_PAID_USER</div></li>\n\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>true</td>\n<td>Standard error code for the problem. Eg: ERROR_ALREADY_PAID_USER</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>true</td>\n<td>User friendly description of the error. The user you are trying to add already has a paid subscription. You might be able to add this user as a guest or conact Speedify support for other options.</td>\n</tr>\n</tbody>\n</table>\n</div><li><div>400 ERROR_NO_SUCH_ROLE</div></li>\n\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>true</td>\n<td>Standard error code for the problem. Eg: ERROR_NO_SUCH_ROLE</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>true</td>\n<td>User friendly description of the error. The role is not in the list of valid roles.</td>\n</tr>\n</tbody>\n</table>\n</div><li><div>429 ERROR_NO_SEATS</div></li>\n\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>true</td>\n<td>Standard error code for the problem. Eg: ERROR_NO_SEATS</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>true</td>\n<td>User friendly description of the error. You are trying to add more members than your current plan allows. You either need to remove memebers (/revoke) from your team or you need to increase the number of seats you have left (/seats).</td>\n</tr>\n</tbody>\n</table>\n</div><li><div>403 Forbidden</div></li>\n\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>true</td>\n<td>Standard error code for the problem. Eg: ERROR_NO_FORBIDDEN</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>true</td>\n<td>User friendly description of the error</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"529c5fd0-9702-d536-7455-caa0fd768775","name":"400 - ERROR_ALREDY_PAID_USER","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"{{email_2}}\",\n    \"role\": \"{{role}}\",\n    \"firstName\": \"{{firstname}}\",\n    \"lastName\": \"{{lastname}}\"\n}"},"url":"{{api-url}}/v1/teams/members"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"151","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 18:54:38 GMT","description":""},{"key":"ETag","value":"W/\"97-FciatFuUUW4vBjj3VXEo8Q\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"933","body":"{\n  \"type\": \"ERROR_ALREADY_PAID_USER\",\n  \"message\": \"This user already has a paid account. Please add this user as a guest or use a different email.\"\n}"},{"id":"562971af-62eb-f424-a4f1-33161523f011","name":"400 - ERORR_NO_SUCH_ROLE","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"{{email}}\",\n    \"role\": \"test\"\n}"},"url":"{{api-url}}/v1/teams/members"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"123","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Fri, 08 Sep 2017 15:56:29 GMT","description":""},{"key":"ETag","value":"W/\"7b-BfegPRSGGCt14DUX7GcCeQ\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"203","body":"{\n  \"type\": \"ERROR_NO_SUCH_ROLE\",\n  \"message\": \"This role does not exist. Please choose from 'admin', 'user' or 'guest'.\"\n}"},{"id":"7b71f837-c9e8-fa0d-85c4-6b84e9a64274","name":"429 - ERROR_NO_SEATS","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"{{email_2}}\",\n    \"role\": \"{{role}}\",\n    \"firstName\": \"{{firstname}}\",\n    \"lastName\": \"{{lastname}}\"\n}"},"url":"{{api-url}}/v1/teams/members"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"157","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 19:18:05 GMT","description":""},{"key":"ETag","value":"W/\"9d-IRg93axzjBHqOEwEDgSgZw\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"919","body":"{\n  \"type\": \"ERROR_NO_SEATS\",\n  \"message\": \"You have no more seats left. You will have to add more seats or remove members before you can add new members.\"\n}"},{"id":"c0bb15b6-3715-d886-85b3-129825723cab","name":"403 - Forbidden","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"{{email}}\",\n    \"role\": \"{{role}}\",\n    \"firstName\": \"{{firstname}}\",\n    \"lastName\": \"{{lastname}}\"\n}"},"url":"{{api-url}}/v1/teams/members"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"91","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 20:08:35 GMT","description":""},{"key":"ETag","value":"W/\"5b-GkywNNhiJzrhWHRm4FWA0w\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"531","body":"{\n  \"type\": \"ERROR_FORBIDDEN\",\n  \"message\": \"You are not allowed to access this resource\"\n}"},{"id":"d0b9497d-9aae-2803-5e96-9b38c1920ec9","name":"200 - OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"{[email_2]}\",\n    \"role\": \"{{role}}\",\n    \"firstName\": \"{{firstname}}\",\n    \"lastName\": \"{{lastname}}\",\n    \"sendEmail\": true\n}"},"url":"{{api-url}}/v1/teams/members"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"113","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 19:25:21 GMT","description":""},{"key":"ETag","value":"W/\"71-FSS7bQrs27f5F9UT5zzztQ\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"1149","body":"{\n    \"role\": \"admin\",\n    \"teamId\": \"181615\",\n    \"userid\": 4469112514,\n    \"email\": \"{{email_2}}\"\n}"}],"_postman_id":"77aafb9f-3f27-87a7-e0cf-0ee7e9a2fb0a"},{"name":"Change Team Member's Role","event":[{"listen":"test","script":{"id":"f4a7109d-0810-475c-8e31-db41bcb35ae7","exec":["tests[\"Status code is 200\"] = responseCode.code === 200;","","tests[\"Response time is less than 500ms\"] = responseTime < 500;","","var jsonData = JSON.parse(responseBody);","tests[\"Body contains userid\"] = responseBody.has(\"userid\");","tests[\"Body contains role\"] = responseBody.has(\"role\");","tests[\"Body contains teamId\"] = responseBody.has(\"teamId\");","tests[\"Body contains email\"] = responseBody.has(\"email\");","","tests[\"role matches\"] = jsonData.role === globals.role;","tests[\"teamId matches\"] = jsonData.teamId === globals.team_id;"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"cd7a2d41-f6f5-46c1-97ca-c5a9ec32dc95","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"role\": \"{{ new_role }}\"\n}"},"url":"{{api-url}}/v1/teams/members/email/{{email}}/role","description":"<p>Change a team member's role on your team.</p>\n<h6 id=\"body\">BODY</h6>\n<table><tbody><tr><th>Key</th><th>Type</th><th>Required</th><th>Description</th></tr><tr><td><div>role</div><div><div><div><div></div></div></div><div></div></div></td><td><div>string</div><div><div><div><div></div></div></div><div></div></div></td><td><div>true</div><div><div><div><div></div></div></div><div></div></div></td><td><div>One of the following values:<br />- \"user\"<br />- \"admin\"<br />- \"guest\"</div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>","urlObject":{"path":["v1","teams","members","email","{{email}}","role"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"afd56479-9984-4509-b195-68cc7aa37001","name":"200 - OK","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"role\": \"user\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/{{email}}/role"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"113","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 19:25:21 GMT","description":""},{"key":"ETag","value":"W/\"71-FSS7bQrs27f5F9UT5zzztQ\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"1149","body":"{\n    \"role\": \"user\"\n}"},{"id":"dee2d773-9e62-4384-a6b4-6b6ed2a19769","name":"400 - ERROR_VALIDATION","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"role\": \"astronaut\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/{{email}}/role"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"151","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 18:54:38 GMT","description":""},{"key":"ETag","value":"W/\"97-FciatFuUUW4vBjj3VXEo8Q\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"933","body":"{\n    \"type\": \"ERROR_VALIDATION\",\n    \"message\": \"\\\"role\\\" must be one of [admin, user, guest]\",\n    \"details\": [\n        {\n            \"message\": \"\\\"role\\\" must be one of [admin, user, guest]\"\n        }\n    ]\n}"},{"id":"ca53cc58-6e70-40c1-b398-24f7844cc730","name":"404 - ERROR_NO_SUCH_TEAM_MEMBER","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"role\": \"user\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/non-existent-{{email}}/role"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"123","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Fri, 08 Sep 2017 15:56:29 GMT","description":""},{"key":"ETag","value":"W/\"7b-BfegPRSGGCt14DUX7GcCeQ\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Vary","value":"X-HTTP-Method-Override","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"203","body":"{\n    \"message\": \"user not found\",\n    \"type\": \"ERROR_NO_SUCH_TEAM_MEMBER\"\n}"}],"_postman_id":"cd7a2d41-f6f5-46c1-97ca-c5a9ec32dc95"},{"name":"Remove Team Member","event":[{"listen":"test","script":{"id":"779a496b-9d32-45ff-9250-9c01034aa57d","exec":["tests[\"Response time is less than 500ms\"] = responseTime < 500;","","tests[\"Status code is 200\"] = responseCode.code === 200;","","var jsonData = JSON.parse(responseBody);","","tests[\"Body is correct\"] = jsonData.message === \"Successfully removed team member\";"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"7551dac4-65b6-1e3c-614e-0a58ac7f355f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}","description":"<p>Remove a member from a team. They will no longer have access to the unlimited usage of Speedify or be able to connect to your dedicated speed servers. </p>\n<h6>RESPONSES</h6>\n<ul>\n<li>200 No Error</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>message</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Message indicating if the member was successfully removed from the team</td>\n  </tr>\n</table>\n<li>403 Forbidden</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>type</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Standard error code for the problem. Eg: ERROR_FORBIDDEN</td>\n  </tr>\n    <tr>\n    <td>message</td>\n    <td>string</td>\n    <td>true</td>\n    <td>User friendly description of the error</td>\n  </tr>\n</table>\n<li>404 ERROR_NO_SUCH_TEAM_MEMBER</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>type</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Standard error code for the problem. Eg: ERROR_NO_SUCH_TEAM_MEMBER</td>\n  </tr>\n    <tr>\n    <td>message</td>\n    <td>string</td>\n    <td>true</td>\n    <td>User friendly description of the error. The user you are trying to remove is not a part of the team.</td>\n  </tr>\n</table></ul>","urlObject":{"path":["v1","teams","members","email","{{email}}"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"11cf1296-a4b0-743d-d91b-05bdfd1a05e2","name":"200 - OK","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"51","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 20:10:03 GMT","description":""},{"key":"ETag","value":"W/\"33-wBc0eu4HxPBikBDOPd9aWg\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""},{"key":"","value":"","description":"","type":"text"}],"cookie":[],"responseTime":"972","body":"{\n  \"message\": \"Successfully removed team member\"\n}"},{"id":"9252ac8f-2ea6-c4a3-61bb-066a6d6efa21","name":"403 - Forbidden","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"91","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 20:10:51 GMT","description":""},{"key":"ETag","value":"W/\"5b-GkywNNhiJzrhWHRm4FWA0w\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"488","body":"{\n  \"type\": \"ERROR_FORBIDDEN\",\n  \"message\": \"You are not allowed to access this resource\"\n}"},{"id":"97c5b3af-c9e3-ae89-7cec-915898d832fb","name":"404 - ERROR_NO_SUCH_TEAM_MEMBER","originalRequest":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"94","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Mon, 28 Aug 2017 20:15:33 GMT","description":""},{"key":"ETag","value":"W/\"5e-z0KxUL8/531fWOvW3QzrWw\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"869","body":"{\n  \"type\": \"ERROR_NO_SUCH_TEAM_MEMBER\",\n  \"message\": \"This user is not a part of your team\"\n}"}],"_postman_id":"7551dac4-65b6-1e3c-614e-0a58ac7f355f"},{"name":"Change Seats","id":"a4b3b66f-6507-7711-b246-9a4da0936d65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"quantity\": 50\n}"},"url":"{{api-url}}/v1/teams/seats","description":"<p>Change the number of seats available to your team. Note that this will result in a change in billing price. </p>\n<h6>BODY</h6>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>quantity</td>\n    <td>number</td>\n    <td>true</td>\n    <td>New number of seats for the team. This cannot be lower than the current number of members.</td>\n  </tr>\n</table>\n\n<h6>RESPONSES</h6>\n<ul>\n<li>200 No Error</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>quantity</td>\n    <td>integer</td>\n    <td>true</td>\n    <td>New number of seats that the team has.</td>\n  </tr>\n</table>\n<li>403 Forbidden</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>type</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Standard error code for the problem. Eg: ERROR_FORBIDDEN</td>\n  </tr>\n    <tr>\n    <td>message</td>\n    <td>string</td>\n    <td>true</td>\n    <td>User friendly description of the error</td>\n  </tr>\n</table>\n<li>429 ERROR_TOO_MANY_MEMBERS</li>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>type</td>\n    <td>string</td>\n    <td>true</td>\n    <td>Standard error code for the problem. Eg: ERROR_TOO_MANY_MEMBERS</td>\n  </tr>\n    <tr>\n    <td>message</td>\n    <td>string</td>\n    <td>true</td>\n    <td>User friendly description of the error. You have more members than the new total seats. You will need to remove members before you can decrease the seats to this number.</td>\n  </tr>\n</table></ul>","urlObject":{"path":["v1","teams","seats"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"4cbb5a46-58d7-d48a-98f6-6d5e299e19ca","name":"200 - OK","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"quantity\": 70\n}"},"url":"{{api-url}}/v1/teams/seats"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"20","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Tue, 29 Aug 2017 16:15:20 GMT","description":""},{"key":"ETag","value":"W/\"14-7dAy/wE0GSmwvYt5fzsX0g\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"3498","body":"{\n  \"quantity\": 70\n}"},{"id":"501b9529-a46d-3034-f338-3423adf8d9dd","name":"429 - ERROR_TOO_MANY_MEMBERS","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"quantity\": 50\n}"},"url":"{{api-url}}/v1/teams/seats"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"143","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Tue, 29 Aug 2017 16:14:16 GMT","description":""},{"key":"ETag","value":"W/\"8f-a9wiurSVdLHNtGIkvBTPtw\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"824","body":"{\n  \"type\": \"ERROR_TOO_MANY_MEMBERS\",\n  \"message\": \"You have more members than seats available. Please remove members or increase the seats.\"\n}"},{"id":"fa2880b4-cebf-9f3f-399c-9cc2d7b50cb2","name":"403 - Forbidden","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"{{api-auth}}","disabled":true}],"body":{"mode":"raw","raw":"{\n  \"quantity\": 50\n}"},"url":"{{api-url}}/v1/teams/seats"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Credentials","value":"","description":""},{"key":"Access-Control-Allow-Headers","value":"","description":""},{"key":"Access-Control-Allow-Methods","value":"","description":""},{"key":"Access-Control-Allow-Origin","value":"","description":""},{"key":"Access-Control-Expose-Headers","value":"","description":""},{"key":"Cache-Control","value":"private, no-cache, no-store, must-revalidate","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Length","value":"91","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","description":""},{"key":"Date","value":"Tue, 29 Aug 2017 16:54:13 GMT","description":""},{"key":"ETag","value":"W/\"5b-GkywNNhiJzrhWHRm4FWA0w\"","description":""},{"key":"Expires","value":"-1","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"X-Powered-By","value":"Sails <sailsjs.org>","description":""}],"cookie":[],"responseTime":"366","body":"{\n  \"type\": \"ERROR_FORBIDDEN\",\n  \"message\": \"You are not allowed to access this resource\"\n}"}],"_postman_id":"a4b3b66f-6507-7711-b246-9a4da0936d65"},{"name":"Get Team Settings","id":"3eb5cb73-b875-41af-9bc5-d1765b7be4a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/settings","description":"<p>Get the settings specified for your team.</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>entryId</td>\n<td>integer</td>\n<td>entry id in database</td>\n</tr>\n<tr>\n<td>teamId</td>\n<td>integer</td>\n<td>ID for your team</td>\n</tr>\n<tr>\n<td>dateGenerated</td>\n<td>DateTime String</td>\n<td>Date the settings were first saved</td>\n</tr>\n<tr>\n<td>dateUpdated</td>\n<td>DateTime String</td>\n<td>Date the settings were updated</td>\n</tr>\n<tr>\n<td>settings</td>\n<td>JSON</td>\n<td>Settings saved for the team</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>404 Not Found</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code like ERROR_TEAM_SETTINGS_NOT_FOUND</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description about the error like \"Team settings do not exist\"</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"184e5a9f-1b08-4975-88f8-d7e7b58c58c2","name":"404 - Not Found","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/settings"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"type\": \"ERROR_TEAM_SETTINGS_NOT_FOUND\",\n    \"message\": \"Team settings do not exist\"\n}"},{"id":"9ad8375a-f387-4fe3-a5e4-e09c3fc82502","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"entryId\": 111,\n    \"teamId\": 111,\n    \"dateGenerated\": \"2020-04-01T14:59:12.000Z\",\n    \"dateUpdated\": \"2020-04-01T14:59:12.000Z\",\n    \"settings\": {\n        \"encrypted\": {\n            \"locked\": false,\n            \"value\": true\n        },\n        \"transportMode\": {\n            \"locked\": false,\n            \"value\": \"tcp\"\n        }\n    }\n}"}],"_postman_id":"3eb5cb73-b875-41af-9bc5-d1765b7be4a9"},{"name":"Get Team Member Settings via userid","id":"60eebe19-c76e-4c95-bdcc-2202fc671f17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/userid/{{userid}}/settings","description":"<p>Get the settings specified for a member of your team.</p>\n<p>Get the settings specified for your team.</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>entryId</td>\n<td>integer</td>\n<td>entry id in database</td>\n</tr>\n<tr>\n<td>teamId</td>\n<td>integer</td>\n<td>ID for your team</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>integer</td>\n<td>ID of user</td>\n</tr>\n<tr>\n<td>dateGenerated</td>\n<td>DateTime String</td>\n<td>Date the settings were first saved</td>\n</tr>\n<tr>\n<td>dateUpdated</td>\n<td>DateTime String</td>\n<td>Date the settings were updated</td>\n</tr>\n<tr>\n<td>settings</td>\n<td>JSON</td>\n<td>Settings saved for the team</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>400 Bad Request (non integer userid passed)</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code like \"ERROR_EXPECTED_NUMBER\"</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Expected a number for: userid</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>404 Not Found</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code like ERROR_TEAM_MEMBER_SETTINGS_NOT_FOUND</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description about the error like \"Team member settings do not exist\"</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","userid","{{userid}}","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"20d148f3-f1d6-4e86-8f75-cf2ad2f8184b","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/userid/{{userid}}/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"entryId\": 111,\n    \"teamId\": 222,\n    \"userid\": 333,\n    \"dateGenerated\": \"2020-04-01T15:13:04.000Z\",\n    \"dateUpdated\": \"2020-04-01T15:13:04.000Z\",\n    \"settings\": {\n        \"encrypted\": {\n            \"locked\": true,\n            \"value\": true\n        }\n    }\n}"},{"id":"7d78bf96-f4c0-4bc2-a738-9580a2f6a6ec","name":"404 Not Found","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/userid/{{userid}}/settings"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"type\": \"ERROR_TEAM_MEMBER_SETTINGS_NOT_FOUND\",\n    \"message\": \"Team member settings do not exist\"\n}"},{"id":"fc1a519e-a9a5-44f3-8035-90caf676f013","name":"400 Bad Request","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/userid/{{userid}}/settings"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"type\": \"ERROR_EXPECTED_NUMBER\",\n    \"message\": \"Expected a number for: userid\"\n}"}],"_postman_id":"60eebe19-c76e-4c95-bdcc-2202fc671f17"},{"name":"Get Team Member Settings via email","id":"2ea750ff-b47c-4bbd-8cea-4ac5adfd46f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/settings","description":"<p>Get the settings specified for a member of your team via email.</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>entryId</td>\n<td>integer</td>\n<td>entry id in database</td>\n</tr>\n<tr>\n<td>teamId</td>\n<td>integer</td>\n<td>ID for your team</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>integer</td>\n<td>ID of user</td>\n</tr>\n<tr>\n<td>dateGenerated</td>\n<td>DateTime String</td>\n<td>Date the settings were first saved</td>\n</tr>\n<tr>\n<td>dateUpdated</td>\n<td>DateTime String</td>\n<td>Date the settings were updated</td>\n</tr>\n<tr>\n<td>settings</td>\n<td>JSON</td>\n<td>Settings saved for the team</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>404 Not Found</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code like ERROR_TEAM_MEMBER_SETTINGS_NOT_FOUND</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description about the error like \"Team member settings do not exist\"</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","email","{{email}}","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"0347e8f6-5df9-4654-9204-04ef3c1710b5","name":"404 Not Found","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/settings"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"type\": \"ERROR_TEAM_MEMBER_SETTINGS_NOT_FOUND\",\n    \"message\": \"Team member settings do not exist\"\n}"},{"id":"eadce3cc-2851-4c25-9a88-67865910435d","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"entryId\": 111,\n    \"teamId\": 222,\n    \"userid\": 333,\n    \"dateGenerated\": \"2020-04-01T15:13:04.000Z\",\n    \"dateUpdated\": \"2020-04-01T15:13:04.000Z\",\n    \"settings\": {\n        \"encrypted\": {\n            \"locked\": true,\n            \"value\": true\n        }\n    }\n}"}],"_postman_id":"2ea750ff-b47c-4bbd-8cea-4ac5adfd46f3"},{"name":"Update team settings","id":"e083b1ad-2698-46fb-8011-ce3cdd50d5a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"settings\": {\n\t\t\"encrypted\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": true\n\t\t},\n\t\t\"transportMode\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": \"tcp\"\n\t\t}\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/settings","description":"<p>Upsert settings for the whole team</p>\n<h6 id=\"body\">BODY</h6>\n<table><tbody><tr><th>Key</th><th>Type</th><th>Required</th><th>Description</th></tr><tr><td><div>settings</div><div><div><div><div></div></div></div><div></div></div></td><td><div>JSON</div><div><div><div><div></div></div></div><div></div></div></td><td><div>true</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Settings for the team</div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of what took place</td>\n</tr>\n<tr>\n<td>settings</td>\n<td>JSON</td>\n<td>Settings which was upserted</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"ffa12821-a67a-4776-b85f-6139e6ed41b0","name":"200 OK","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"settings\": {\n\t\t\"encrypted\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": true\n\t\t},\n\t\t\"transportMode\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": \"tcp\"\n\t\t}\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Successfully updated team settings\",\n    \"settings\": {\n        \"encrypted\": {\n            \"locked\": false,\n            \"value\": true\n        },\n        \"transportMode\": {\n            \"locked\": false,\n            \"value\": \"tcp\"\n        }\n    }\n}"}],"_postman_id":"e083b1ad-2698-46fb-8011-ce3cdd50d5a5"},{"name":"Update team member settings via userid","id":"154ab8a2-9ba6-414c-afba-2a8099933ada","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"settings\": {\n\t\t\"encrypted\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": true\n\t\t},\n\t\t\"transportMode\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": \"tcp\"\n\t\t}\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/userid/{{userid}}/settings","description":"<p>Upsert settings for the a team member</p>\n<h6>BODY</h6>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>settings</td>\n    <td>JSON</td>\n    <td>true</td>\n    <td>Settings for the team</td>\n  </tr>\n</table>\n\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of what took place</td>\n</tr>\n<tr>\n<td>settings</td>\n<td>JSON</td>\n<td>Settings which was upserted</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>400 Bad Request</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of bad request</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","userid","{{userid}}","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"15c10179-966e-4761-97db-9bdde5909e8c","name":"200 OK","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"settings\": {\n\t\t\"encrypted\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": true\n\t\t},\n\t\t\"transportMode\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": \"tcp\"\n\t\t}\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"https://anystring:{{api-key}}@api.speedify.com/v1/teams/members/userid/{{userid}}/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Successfully updated team member settings\",\n    \"settings\": {\n        \"encrypted\": {\n            \"locked\": false,\n            \"value\": true\n        },\n        \"transportMode\": {\n            \"locked\": false,\n            \"value\": \"tcp\"\n        }\n    }\n}"},{"id":"49dd2df3-2a8b-4a00-b0df-baa9bdcf31c5","name":"400 Bad Request","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"settings\": {\n\t\t\"encrypted\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": true\n\t\t},\n\t\t\"transportMode\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": \"tcp\"\n\t\t}\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/userid/{{not-integer}}/settings"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"type\": \"ERROR_EXPECTED_NUMBER\",\n    \"message\": \"Expected a number for: userid\"\n}"}],"_postman_id":"154ab8a2-9ba6-414c-afba-2a8099933ada"},{"name":"Update team member settings via email","id":"ffadee32-e918-4354-a8be-c3bf2753ec2f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"settings\": {\n\t\t\"encrypted\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": true\n\t\t},\n\t\t\"transportMode\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": \"tcp\"\n\t\t}\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/{{email}}/settings","description":"<p>Upsert settings for the a team member via email</p>\n<h6>BODY</h6>\n<table>\n  <tr>\n    <th>Key</th>\n    <th>Type</th>\n    <th>Required</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>settings</td>\n    <td>JSON</td>\n    <td>true</td>\n    <td>Settings for the team</td>\n  </tr>\n</table>\n\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of what took place</td>\n</tr>\n<tr>\n<td>settings</td>\n<td>JSON</td>\n<td>Settings which was upserted</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>400 Bad Request</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of bad request</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","email","{{email}}","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"5f2d5211-a453-4fe9-b5c7-9341992ad267","name":"200 OK","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"x-api-key","value":"key","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"settings\": {\n\t\t\"encrypted\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": true\n\t\t},\n\t\t\"transportMode\": {\n\t\t\t\"locked\": false,\n\t\t\t\"value\": \"tcp\"\n\t\t}\n\t}\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/{{email}}/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Successfully updated team member settings\",\n    \"settings\": {\n        \"encrypted\": {\n            \"locked\": false,\n            \"value\": true\n        },\n        \"transportMode\": {\n            \"locked\": false,\n            \"value\": \"tcp\"\n        }\n    }\n}"}],"_postman_id":"ffadee32-e918-4354-a8be-c3bf2753ec2f"},{"name":"Delete Team Settings","id":"149f9eb7-50b1-4823-8078-86556bd3c140","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/settings","description":"<p>Delete settings from your team.</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<p>No response data</p>\n<ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"67bddfdc-bce3-49eb-888d-69900d0f435d","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"149f9eb7-50b1-4823-8078-86556bd3c140"},{"name":"Delete Team Member Settings via userid","id":"3fe4e3e5-9607-4629-bddf-5a30043ec097","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/userid/{{userid}}/settings","description":"<p>Delete settings set for a team member</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<p>No response data</p>\n<ul>\n<li>400 Bad Request</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of bad request</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","userid","{{userid}}","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"98b0b024-81cc-4c2d-98dd-f3658eaf4f4a","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/userid/{{userid}}/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":null},{"id":"a595101e-37c7-47d2-bbac-e5e76f116d0e","name":"400 Bad Request","originalRequest":{"method":"DELETE","header":[],"url":"https://anystring:{{api-key}}@{{api-url}}/v1/teams/members/userid/{{userid}}/settings"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"type\": \"ERROR_EXPECTED_NUMBER\",\n    \"message\": \"Expected a number for: userid\"\n}"}],"_postman_id":"3fe4e3e5-9607-4629-bddf-5a30043ec097"},{"name":"Delete Team Member Settings via email","id":"f8a0ee2e-e07f-471e-a3dc-11f289e5a94a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/settings","description":"<p>Delete settings set for a team member</p>\n<h6 id=\"responses\">RESPONSES</h6>\n<ul>\n<li>200 OK</li>\n</ul>\n<p>No response data</p>\n<ul>\n<li>400 Bad Request</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of bad request</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>403 Forbidden</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Error code</td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description that this resource is forbidden</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","email","{{email}}","settings"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"e3ceedb8-5c1f-47ec-8e35-09e5d760363a","name":"Delete Team Member Settings via email","originalRequest":{"method":"DELETE","header":[{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/settings"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"f8a0ee2e-e07f-471e-a3dc-11f289e5a94a"},{"name":"Get Team Member's Devices","id":"ea86bfc7-1b10-4519-ba2c-ccc1c2dfd954","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-api-key","value":"api-key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/devices","description":"<p>Get devices registered by a user on your team</p>\n<p>RESPONSES</p>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>deviceUUID</td>\n<td>string</td>\n<td>A unique UUIDv4 representation of a device</td>\n</tr>\n<tr>\n<td>userid</td>\n<td>integer</td>\n<td>Unique ID for this user</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>string</td>\n<td>Device OS</td>\n</tr>\n<tr>\n<td>friendlyName</td>\n<td>string</td>\n<td>A name given to the device by the user</td>\n</tr>\n<tr>\n<td>lastActiveTime</td>\n<td>date</td>\n<td>ISO 8601 Date</td>\n</tr>\n<tr>\n<td>role</td>\n<td>string</td>\n<td>Type of device (can be <code>router</code>, <code>server</code>, or <code>client</code>)</td>\n</tr>\n<tr>\n<td>vendor</td>\n<td>string</td>\n<td>Distributor of the device</td>\n</tr>\n<tr>\n<td>routerReferenceId</td>\n<td>string</td>\n<td>null</td>\n</tr>\n<tr>\n<td>referenceId</td>\n<td>string</td>\n<td>null</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>401 Unauthorized</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of what went wrong</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>404 Not found</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of what went wrong</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","email","{{email}}","devices"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"e85862de-28b8-47b7-b0d1-39870b7bdb50","name":"Get Team Member's Devices","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"api-key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/devices"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"[\n    {\n        \"deviceUUID\": \"2275583a-4587-4e5e-964f-fd4fae0508e2\",\n        \"userid\": 12345,\n        \"platform\": \"Android\",\n        \"friendlyName\": \"Google Pixel 6 Pro\",\n        \"lastActiveTime\": \"2025-12-08T11:31:55.000Z\",\n        \"seenActivationSuccess\": false,\n        \"role\": \"client\",\n        \"vendor\": \"\",\n        \"routerReferenceId\": null,\n        \"referenceId\": null\n    },\n    {\n        \"deviceUUID\": \"1e490e97-5d90-4905-bdc8-960f46a2b479\",\n        \"userid\": 12345,\n        \"platform\": \"Linux\",\n        \"friendlyName\": \"Miri X510\",\n        \"lastActiveTime\": \"2025-12-08T14:08:43.000Z\",\n        \"seenActivationSuccess\": true,\n        \"role\": \"router\",\n        \"vendor\": \"miri\",\n        \"routerReferenceId\": \"abcde\",\n        \"referenceId\": \"abcde\"\n    }\n]"},{"id":"8ff2fb61-480e-4f4f-a9f4-f513a170ae58","name":"Get Team Member's Devices Copy","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"api-key-incorrect","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/devices"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"message\": \"invalid api key\"\n}"},{"id":"fccfd4f8-a3c2-4705-80ea-48febe180658","name":"Get Team Member's Devices Copy 2","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"key","type":"text"}],"url":"{{api-url}}/v1/teams/members/email/{{email}}/devices"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"message\": \"user not found\"\n}"}],"_postman_id":"ea86bfc7-1b10-4519-ba2c-ccc1c2dfd954"},{"name":"Activate a Device for a Team Member","id":"84ecae9e-63ab-4579-8d99-e4b02e681104","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PATCH","header":[{"key":"x-api-key","value":"api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"activationCode\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/{{email}}/activate-device","description":"<p>Activate a device for a team member</p>\n<p>RESPONSES</p>\n<ul>\n<li>200 OK</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>deviceUUID</td>\n<td>string</td>\n<td>A unique UUIDv4 representation of a device activated</td>\n</tr>\n</tbody>\n</table>\n</div><ul>\n<li>401 Unauthorized</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Key</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Description of what went wrong</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["v1","teams","members","email","{{email}}","activate-device"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"0ed15c5c-bcb8-4bd6-af83-6aa69d6bcc1a","name":"200","originalRequest":{"method":"PATCH","header":[{"key":"x-api-key","value":"api-key","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"activationCode\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/{{email}}/devices"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"deviceUUID\": \"2275583a-4587-4e5e-964f-fd4fae0508e2\"\n}"},{"id":"e19ec5ba-37c2-4a11-aeb6-eb49159924f2","name":"401","originalRequest":{"method":"PATCH","header":[{"key":"x-api-key","value":"api-key-incorrect","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"activationCode\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"{{api-url}}/v1/teams/members/email/{{email}}/devices"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"message\": \"invalid api key\"\n}"}],"_postman_id":"84ecae9e-63ab-4579-8d99-e4b02e681104"},{"name":"Fetch current Teams API schema","id":"b5538838-fdbc-45f9-965e-f3f0effff20f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"x-api-key","value":"api-key","type":"text"}],"url":"{{api-url}}/v1/teams/schema","urlObject":{"path":["v1","teams","schema"],"host":["{{api-url}}"],"query":[],"variable":[]}},"response":[{"id":"06bc05da-d3b8-430a-bdb1-deaf1bff089c","name":"200","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"api-key","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"{{api-url}}/v1/teams/schema"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"schema\": \"example\"\n}"}],"_postman_id":"b5538838-fdbc-45f9-965e-f3f0effff20f"}],"id":"747f1381-84f5-e754-29e8-c2c585b85f0c","_postman_id":"747f1381-84f5-e754-29e8-c2c585b85f0c","description":""}],"event":[{"listen":"prerequest","script":{"id":"48f85078-026e-4b98-9042-34d968e2ad04","type":"text/javascript","requests":{},"exec":[""]}},{"listen":"test","script":{"id":"23863b21-13f0-49b8-b4b7-9b52645b7f5e","type":"text/javascript","requests":{},"exec":[""]}}]}