Use Your AI Agent to Talk to Your Products with Notehub IQ

Blues Developers
What’s New
Resources
API Reference
Notecard and Notehub API documentation
Blog
Technical articles for developers
Connected Product Guidebook
In-depth guides for connected product development
Developer Certification
Get certified on wireless connectivity with Blues
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Webinars
Listing of Blues technical webinars
Blues.comNotehub
Shop
Docs
Help
Support DocsNotehub StatusSecurity AdvisoriesVisit our Forum
Sign In
Docs Home
What’s New
Resources
API Reference
Notecard and Notehub API documentation
Blog
Technical articles for developers
Connected Product Guidebook
In-depth guides for connected product development
Developer Certification
Get certified on wireless connectivity with Blues
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Webinars
Listing of Blues technical webinars
Blues.comNotehub
Shop
Docs
API Reference
Glossary
System Notefiles
Notecard API
card Requests
dfu Requests
env Requests
file Requests
hub Requests
note Requests
ntn Requests
var Requests
web Requests
Notehub API
Authorization API
Billing Account API
Device API
Event API
Jobs API
Monitor API
Organization API
Project API
Get ProjectsGet ProjectGet Project by ProductCreate ProjectDelete ProjectClone ProjectGet Project MembersCreate ProductDelete ProductGet ProductsGet Project Environment HierarchyGet Project Environment VariablesDelete Project Environment VariableSet Project Environment VariablesGet Fleet Environment HierarchyGet Fleet Environment VariablesDelete Fleet Environment VariableSet Fleet Environment VariablesGet FleetGet FleetsCreate FleetUpdate FleetDelete FleetGet Device FleetsAdd Device to FleetsDelete Device from FleetsSet Global JSONata TransformEnable Global JSONata TransformDisable Global JSONata TransformGet Devices DFU HistoryGet Devices DFU StatusGet Device DFU HistoryGet Device DFU StatusGet Available FirmwarePerform DFU ActionDownload FirmwareUpload FirmwareUpdate FirmwareDelete FirmwareGet AWS Role ConfigGet Project SecretsCreate Project SecretUpdate Project SecretDelete Project Secret
Route API
Usage API
homechevron_rightDocschevron_rightAPI Referencechevron_rightNotehub APIchevron_rightProject API - Notehub API Reference

Project API

The Notehub project API provides RESTful methods that can be used to GET and POST project data.

NameHTTP Request
Get ProjectsGET /v1/projects
Get ProjectGET /v1/projects/{projectUID}
Get Project by ProductGET /v1/products/{productUID}/project
Create ProjectPOST /v1/projects
Delete ProjectDELETE /v1/projects/{projectUID}
Clone ProjectPOST /v1/projects/{projectOrProductUID}/clone
Get Project MembersGET /v1/projects/{projectOrProductUID}/members
Create ProductPOST /v1/projects/{projectOrProductUID}/products
Delete ProductDELETE /v1/projects/{projectOrProductUID}/products/{productUID}
Get ProductsGET /v1/projects/{projectOrProductUID}/products
Get Project Environment HierarchyGET /v1/projects/{projectOrProductUID}/environment_hierarchy
Get Project Environment VariablesGET /v1/projects/{projectOrProductUID}/environment_variables
Delete Project Environment VariableDELETE /v1/projects/{projectOrProductUID}/environment_variables/{key}
Set Project Environment VariablesPUT /v1/projects/{projectOrProductUID}/environment_variables
Get Fleet Environment HierarchyGET /v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_hierarchy
Get Fleet Environment VariablesGET /v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_variables
Delete Fleet Environment VariableDELETE /v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_variables/{key}
Set Fleet Environment VariablesPUT /v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_variables
Get FleetGET /v1/projects/{projectOrProductUID}/fleets/{fleetUID}
Get FleetsGET /v1/projects/{projectOrProductUID}/fleets
Create FleetPOST /v1/projects/{projectOrProductUID}/fleets
Update FleetPUT /v1/projects/{projectOrProductUID}/fleets/{fleetUID}
Delete FleetDELETE /v1/projects/{projectOrProductUID}/fleets/{fleetUID}
Get Device FleetsGET /v1/projects/{projectOrProductUID}/devices/{deviceUID}/fleets
Add Device to FleetsPUT /v1/projects/{projectOrProductUID}/devices/{deviceUID}/fleets
Delete Device from FleetsDELETE /v1/projects/{projectOrProductUID}/devices/{deviceUID}/fleets
Set Global JSONata TransformPOST /v1/projects/{projectOrProductUID}/global-transformation
Enable Global JSONata TransformPOST /v1/projects/{projectOrProductUID}/global-transformation/enable
Disable Global JSONata TransformPOST /v1/projects/{projectOrProductUID}/global-transformation/disable
Get Devices DFU HistoryGET /v1/projects/{projectOrProductUID}/dfu/{firmwareType}/history
Get Devices DFU StatusGET /v1/projects/{projectOrProductUID}/dfu/{firmwareType}/status
Get Device DFU HistoryGET /v1/projects/{projectOrProductUID}/devices/{deviceUID}/dfu/{firmwareType}/history
Get Device DFU StatusGET /v1/projects/{projectOrProductUID}/devices/{deviceUID}/dfu/{firmwareType}/status
Get Available FirmwareGET /v1/projects/{projectOrProductUID}/firmware
Perform DFU ActionPOST /v1/projects/{projectOrProductUID}/dfu/{firmwareType}/{action}
Download FirmwareGET /v1/projects/{projectOrProductUID}/firmware/{firmwareType}/{filename}
Upload FirmwarePUT /v1/projects/{projectOrProductUID}/firmware/{firmwareType}/{filename}
Update FirmwarePOST /v1/projects/{projectOrProductUID}/firmware/host/{filename}
Delete FirmwareDELETE /v1/projects/{projectOrProductUID}/firmware/host/{filename}
Get AWS Role ConfigGET /v1/projects/{projectOrProductUID}/aws-role-config
Get Project SecretsGET /v1/projects/{projectOrProductUID}/secrets
Create Project SecretPOST /v1/projects/{projectOrProductUID}/secrets
Update Project SecretPUT /v1/projects/{projectOrProductUID}/secrets/{secretName}
Delete Project SecretDELETE /v1/projects/{projectOrProductUID}/secrets/{secretName}

Get Projects Notehub

Get all Notehub projects accessible by provided authentication token.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();

apiInstance.getProjects().then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)

    try:
        api_response = api_instance.get_projects()
        print("The response of ProjectApi->get_projects:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->get_projects: %s\n" % e)
Response Members

uid

string

The globally-unique identifier of the project.

label

string

The user-assigned label for the project.

created

string

The date and time the project was created in Notehub.

administrative_contact

object

Contact information for the administrative contact assigned in Notehub.

technical_contact

object

Contact information for the technical contact assigned in Notehub.

role

string

The role of the project member creating the API request.

Example Response
{
  "projects": [
    {
      "uid": "app:00000000-0000-0000-0000-000000000000",
      "label": "First Notehub Project",
      "created": "2021-04-26T19:11:05Z",
      "administrative_contact": {
        "name": "John Doe",
        "email": "someone@example.com",
        "role": "Admin",
        "organization": "Blues"
      },
      "technical_contact": {
        "name": "Jane Doe",
        "email": "someone@example.com",
        "role": "Tech",
        "organization": "Blues"
      },
      "role": "owner"
    },
    {
      "uid": "app:00000000-0000-0000-0000-000000000000",
      "label": "Second Notehub Project",
      "created": "2022-07-26T19:11:05Z",
      "administrative_contact": {
        "name": "Jane Doe",
        "email": "someone@example.com",
        "role": "Admin",
        "organization": "Blues"
      },
      "technical_contact": {
        "name": "John Doe",
        "email": "someone@example.com",
        "role": "Tech",
        "organization": "Blues"
      },
      "role": "owner"
    }
  ]
}

Get Project Notehub

Get information about a Notehub project by ProjectUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectUID}
Path Parameters:
  • projectUID - The ProjectUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectUID>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getProject(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_project(project_or_product_uid)
        print("The response of ProjectApi->get_project:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->get_project: %s\n" % e)
Response Members

uid

string

The globally-unique identifier of the project.

label

string

The user-assigned label for the project.

created

string

The date and time the project was created in Notehub.

administrative_contact

object

Contact information for the administrative contact assigned in Notehub.

technical_contact

object

Contact information for the technical contact assigned in Notehub.

role

string

The role of the project member creating the API request.

Example Response
{
  "uid": "app:00000000-0000-0000-0000-000000000000",
  "label": "My Notehub Project",
  "created": "2021-04-26T19:11:05Z",
  "administrative_contact": {
    "name": "John Doe",
    "email": "someone@example.com",
    "role": "Admin",
    "organization": "Blues"
  },
  "technical_contact": {
    "name": "Jane Doe",
    "email": "someone@example.com",
    "role": "Tech",
    "organization": "Blues"
  },
  "role": "owner"
}

Get Project by Product Notehub

Get information about a Notehub project by ProductUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/products/{productUID}/project
Path Parameters:
  • productUID - The ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/products/<productUID>/project'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let productUID = "com.your-company.your-name:project";

apiInstance.getProjectByProduct(productUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    product_uid = "com.your-company.your-name:project"

    try:
        api_response = api_instance.get_project_by_product(product_uid)
        print("The response of ProjectApi->get_project_by_product:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_project_by_product: %s\n"
            % e
        )
Response Members

uid

string

The globally-unique identifier of the project.

label

string

The user-assigned label for the project.

created

string

The date and time the project was created in Notehub.

administrative_contact

object

Contact information for the administrative contact assigned in Notehub.

technical_contact

object

Contact information for the technical contact assigned in Notehub.

role

string

The role of the project member creating the API request.

Example Response
{
  "uid": "app:00000000-0000-0000-0000-000000000000",
  "label": "My Notehub Project",
  "created": "2021-04-26T19:11:05Z",
  "administrative_contact": {
    "name": "John Doe",
    "email": "someone@example.com",
    "role": "Admin",
    "organization": "Blues"
  },
  "technical_contact": {
    "name": "Jane Doe",
    "email": "someone@example.com",
    "role": "Tech",
    "organization": "Blues"
  },
  "role": "owner"
}

Create Project Notehub

Create a new Notehub project.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects
Minimum Notehub project-level role:owner
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

label

string

The label of the Notehub project.

billing_account_uid

string

The globally-unique identifier of the billing account. The caller of the API must be able to create projects within the specified billing account, otherwise an error will be returned. This identifier is available with a call to Get Billing Accounts.

curl -X POST
    -L 'https://api.notefile.net/v1/projects'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"label":"<label>", "billing_account_uid":"<my_billing_account_here>"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let createProjectRequest = {
  label: "My Project",
  billing_account_uid: "00000000-0000-0000-0000-000000000000",
}; // CreateProjectRequest

apiInstance.createProject(createProjectRequest).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    create_project_request = notehub_py.CreateProjectRequest(
        label="My Project",
        billing_account_uid="00000000-0000-0000-0000-000000000000",
    )

    try:
        api_response = api_instance.create_project(create_project_request)
        print("The response of ProjectApi->create_project:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->create_project: %s\n" % e)
Response Members

uid

string

The globally-unique identifier of the project.

label

string

The user-assigned label for the project.

created

string

The date and time the project was created in Notehub.

administrative_contact

object

Contact information for the administrative contact assigned in Notehub. Will be null on newly-created projects.

technical_contact

object

Contact information for the technical contact assigned in Notehub. Will be null on newly-created projects.

role

string

The role of the project member creating the API request.

Example Response
{
  "uid": "app:00000000-0000-0000-0000-000000000000",
  "label": "My Notehub Project",
  "created": "2021-04-26T19:11:05Z",
  "administrative_contact": null,
  "technical_contact": null,
  "role": "owner"
}

Delete Project Notehub

Delete a Notehub project by ProjectUID.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectUID}
Path Parameters:
  • projectUID - The ProjectUID of a Notehub project.
Minimum Notehub project-level role:owner
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X DELETE
    -L 'https://api.notefile.net/v1/projects/<projectUID>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.deleteProject(projectOrProductUID).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_instance.delete_project(project_or_product_uid)
        print("ProjectApi->delete_project called successfully.")
    except Exception as e:
        print("Exception when calling ProjectApi->delete_project: %s\n" % e)
Response Members
None: an empty object {} means success.

Clone Project Notehub

Clone a Notehub project.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/clone
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:owner
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

label

string

The user-assigned label for the project.

billing_account_uid

string

The globally-unique identifier of the billing account. The caller of the API must be able to create projects within the specified billing account, otherwise an error will be returned. This identifier is available with a call to Get Billing Accounts.

disable_clone_routes

boolean (optional)

By default routes are cloned from the parent project. Set this to true to disallow cloning routes.

disable_clone_fleets

boolean (optional)

By default fleets are cloned from the parent project. Set this to true to disallow cloning fleets.

curl -X POST
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/clone'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"label":"<label>","billing_account_uid":"<billing_account_uid>"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let cloneProjectRequest = {
  label: "My Cloned Project",
  billing_account_uid: "00000000-0000-0000-0000-000000000000",
}; // CloneProjectRequest

apiInstance.cloneProject(projectOrProductUID, cloneProjectRequest).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    clone_project_request = notehub_py.CloneProjectRequest(
        label="My Cloned Project",
        billing_account_uid="00000000-0000-0000-0000-000000000000",
    )

    try:
        api_response = api_instance.clone_project(
            project_or_product_uid, clone_project_request
        )
        print("The response of ProjectApi->clone_project:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->clone_project: %s\n" % e)
Response Members

uid

string

The globally-unique identifier of the project.

label

string

The user-assigned label for the project.

created

string

The date and time the project was created in Notehub.

administrative_contact

object

Contact information for the administrative contact assigned in Notehub. Will be null on newly-created projects.

technical_contact

object

Contact information for the technical contact assigned in Notehub. Will be null on newly-created projects.

role

string

The role of the project member creating the API request.

Example Response
{
  "uid": "app:00000000-0000-0000-0000-000000000000",
  "label": "My Cloned Notehub Project",
  "created": "2021-04-26T19:11:05Z",
  "administrative_contact": null,
  "technical_contact": null,
  "role": "owner"
}

Get Project Members Notehub

Get all members from a Notehub project.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/members
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/members'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getProjectMembers(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_project_members(project_or_product_uid)
        print("The response of ProjectApi->get_project_members:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_project_members: %s\n" % e
        )
Response Members

name

string

The name of the project member.

email

string

The email address of the project member (only provided if the auth token provider is an owner of the project).

role

string

The role of the project member (e.g. viewer, developer, or owner).

Example Response
{
  "members": [
    {
      "name": "Jane Doe",
      "email": "someone@blues.com",
      "role": "owner"
    },
    {
      "name": "John Doe",
      "email": "someone@blues.com",
      "role": "developer"
    }
  ]
}

Create Product Notehub

Create a new Notehub product using a ProjectUID.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/products
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

product_uid

string

The requested ProductUID (without the reverse URL prefix notation).

label

string

The requested label for the product.

auto_provision_fleets

string array (optional)

An array of FleetUIDs to which new devices should be auto-assigned.

disable_devices_by_default

boolean (optional)

If true, devices provisioned to this product will be automatically disabled by default.

curl -X POST
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/products'
     -H 'Authorization: Bearer <access_token>'
     -H 'Content-Type: application/json'
     -d '{"product_uid":"<product_uid>", "label":"<label>"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let createProductRequest = {
  product_uid: "my-product",
  label: "My Product",
}; // CreateProductRequest

apiInstance.createProduct(projectOrProductUID, createProductRequest).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    create_product_request = notehub_py.CreateProductRequest(
        product_uid="my-product",
        label="My Product",
    )

    try:
        api_response = api_instance.create_product(
            project_or_product_uid, create_product_request
        )
        print("The response of ProjectApi->create_product:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->create_product: %s\n" % e)
curl -X POST
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/products'
     -H 'Authorization: Bearer <access_token>'
     -H 'Content-Type: application/json'
     -d '{"product_uid":"<product_uid>", "label":"<label>", "auto_provision_fleets":["<fleetUID>"], "disable_devices_by_default":<disable_devices>}'
Response Members

uid

string

The globally-unique identifier for the product.

label

string

The user-defined label of the product.

auto_provision_fleets

string array

The globally-unique fleet identifiers to which new devices will automatically be provisioned.

disable_devices_by_default

boolean

Whether or not new devices will be disabled by default.

Example Response
{
  "uid": "com.blues.test:product",
  "label": "My Product Label",
  "auto_provision_fleets": null,
  "disable_devices_by_default": false
}

Delete Product Notehub

Delete a product from Notehub project, using a ProjectUID and ProductUID.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/products/{productUID}
Path Parameters:
  • projectUID - The ProjectUID of a Notehub project.
  • productUID - The ProductUID of a Notehub project.
Minimum Notehub project-level role:owner
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X DELETE
    -L 'https://api.notefile.net/v1/projects/<projectUID>/products/<productUID>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let productUID = "com.your-company.your-name:project";

apiInstance.deleteProduct(projectOrProductUID, productUID).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    product_uid = "com.your-company.your-name:project"

    try:
        api_instance.delete_product(project_or_product_uid, product_uid)
        print("ProjectApi->delete_product called successfully.")
    except Exception as e:
        print("Exception when calling ProjectApi->delete_product: %s\n" % e)
Response Members
None: an empty object {} means success.

Get Products Notehub

Get an array of products from a Notehub project, using a ProjectUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/products
Path Parameters:
  • projectUID - The ProjectUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectUID>/products'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getProducts(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_products(project_or_product_uid)
        print("The response of ProjectApi->get_products:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->get_products: %s\n" % e)
Response Members

product_uid

string

The globally-unique identifier for the product.

label

string

The user-defined label of the product.

auto_provision_fleets

string

An array of globally-unique FleetUIDs to which new devices will automatically be provisioned.

disable_devices_by_default

boolean

If true, devices provisioned to this product will be automatically disabled by default.

Example Response
{
  "products": [
    {
      "uid": "product:com.your-company.your-name:project",
      "label": "My Notehub Product",
      "auto_provision_fleets": ["fleet:00000000-0000-0000-0000-000000000000"],
      "disable_devices_by_default": false
    }
  ]
}

Get Project Environment Hierarchy Notehub

Get environment variable hierarchy by ProjectUID.

The environment variable hierarchy lets you view all variables available to your device—including those set at the device, fleet, and project levels—and shows you exactly which value is applied when multiple levels define the same variable.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/environment_hierarchy
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/environment_hierarchy'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getProjectEnvironmentHierarchy(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_project_environment_hierarchy(
            project_or_product_uid
        )
        print(
            "The response of ProjectApi->get_project_environment_hierarchy:\n"
        )
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_project_environment_hierarchy: %s\n"
            % e
        )
Response Members

var_count

integer

Total number of environment variables in the hierarchy.

inherited_var_count

integer

Total number of inherited environment variables in the hierarchy.

type

string

Type of the environment variable.

variables

array

JSON array containing environment variables with the following properties:

"key" - string - The name of the environment variable.

"value" - string - The value of the environment variable.

"used" - boolean - Indicates if the variable is currently active on the device.

"precedence" - number - The precedence of the variable in the hierarchy.

"note" - string - An optional free-form annotation for the variable.

children

array

JSON array of child nodes in the hierarchy, each represented by a nested object with details.

device_uid

string (optional)

The unique identifier of the Notehub device.

fleet_label

string (optional)

The label of the fleet the Notehub device belongs to.

fleet_uid

string (optional)

The unique identifier of the fleet the device belongs to.

app_uid

string (optional)

The globally-unique AppUID for the device's current Notehub application.

app_label

string (optional)

The label of the application the Notehub device is associated with.

url

string (optional)

The URL to access the device's environment hierarchy.

Example Response
[
  {
    "var_count": 5,
    "inherited_var_count": 2,
    "type": "device",
    "variables": [
      {
        "key": "VAR1",
        "value": "value1",
        "used": true,
        "precedence": 1,
        "note": "Calibrated 2026-06-01"
      },
      {
        "key": "VAR2",
        "value": "value2",
        "used": false,
        "precedence": 2
      }
    ],
    "children": [],
    "device_uid": "dev:000000000000000",
    "fleet_label": "Fleet 1",
    "fleet_uid": "fleet:000000000000000",
    "app_uid": "app:000000000000000",
    "app_label": "App 1",
    "url": "https://api.notefile.net/v1/projects/app:2606f411-dea6-44a0-9743-1130f57d77d8/devices/dev:000000000000000/environment_hierarchy"
  }
]

Get Project Environment Variables Notehub

Get all project-level environment variables by ProjectUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/environment_variables
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/environment_variables'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getProjectEnvironmentVariables(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_project_environment_variables(
            project_or_product_uid
        )
        print(
            "The response of ProjectApi->get_project_environment_variables:\n"
        )
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_project_environment_variables: %s\n"
            % e
        )
Response Members

environment_variables

object

JSON object containing environment variables in "key":"value" format.

environment_variable_notes

object

JSON object containing optional per-variable annotations, keyed by variable name.

Example Response
{
  "environment_variables": {
    "project_humidity": "33.4",
    "project_temp": "24.1"
  },
  "environment_variable_notes": {
    "project_humidity": "Set by the provisioning script"
  }
}

Delete Project Environment Variable Notehub

Delete a project-level environment variable by ProjectUID and environment variable key.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/environment_variables/{key}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • key - The key of the environment variable.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X DELETE
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/environment_variables/<key>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let key = "project_var";

apiInstance.deleteProjectEnvironmentVariable(projectOrProductUID, key).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    key = "project_var"

    try:
        api_response = api_instance.delete_project_environment_variable(
            project_or_product_uid, key
        )
        print(
            "The response of ProjectApi->delete_project_environment_variable:\n"
        )
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->delete_project_environment_variable: %s\n"
            % e
        )
Response Members

environment_variables

object

JSON object containing environment variables in "key":"value" format.

environment_variable_notes

object

JSON object containing optional per-variable annotations, keyed by variable name.

Example Response
{
  "environment_variables": {
    "project_humidity": "33.4",
    "project_temp": "24.1"
  },
  "environment_variable_notes": {
    "project_humidity": "Set by the provisioning script"
  }
}

Set Project Environment Variables Notehub

Set project-level environment variables by ProjectUID.

HTTP Method:PUT
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/environment_variables
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

environment_variables

object

A JSON object containing the key-value pair(s) of environment variable(s) to add. For example: {"key1":"value1","key2":"value2"}.

environment_variable_notes

object (optional)

A JSON object of optional per-variable annotations, keyed by variable name. Setting a key to an empty string removes its note. A 400 error is returned for any key that does not already exist as a stored variable and is not included in environment_variables in the same request. For example: {"key1":"A note about key1","key2":"A note about key2"}.

curl -X PUT
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/environment_variables'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"environment_variables":<env_vars>}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let opts = {
  environmentVariables: {
    environment_variables: {
      project_var: "value",
    },
  },
};

apiInstance.setProjectEnvironmentVariables(projectOrProductUID, opts).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    environment_variables = notehub_py.EnvironmentVariables(
        environment_variables={
            "project_var": "value",
        },
    )

    try:
        api_response = api_instance.set_project_environment_variables(
            project_or_product_uid, environment_variables=environment_variables
        )
        print(
            "The response of ProjectApi->set_project_environment_variables:\n"
        )
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->set_project_environment_variables: %s\n"
            % e
        )
Response Members

environment_variables

object

JSON object containing environment variables in "key":"value" format.

environment_variable_notes

object

JSON object containing optional per-variable annotations, keyed by variable name.

Example Response
{
  "environment_variables": {
    "project_humidity": "33.4",
    "project_temp": "24.1"
  },
  "environment_variable_notes": {
    "project_humidity": "Set by the provisioning script"
  }
}

Get Fleet Environment Hierarchy Notehub

Get environment variable hierarchy by ProjectUID and FleetUID.

The environment variable hierarchy lets you view all variables available to your device—including those set at the device, fleet, and project levels—and shows you exactly which value is applied when multiple levels define the same variable.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_hierarchy
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • fleetUID - The FleetUID of a Notehub fleet.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets/<fleetUID>/environment_hierarchy'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let fleetUID = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d";

apiInstance.getFleetEnvironmentHierarchy(projectOrProductUID, fleetUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    fleet_uid = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"

    try:
        api_response = api_instance.get_fleet_environment_hierarchy(
            project_or_product_uid, fleet_uid
        )
        print("The response of ProjectApi->get_fleet_environment_hierarchy:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_fleet_environment_hierarchy: %s\n"
            % e
        )
Response Members

var_count

integer

Total number of environment variables in the hierarchy.

inherited_var_count

integer

Total number of inherited environment variables in the hierarchy.

type

string

Type of the environment variable.

variables

array

JSON array containing environment variables with the following properties:

"key" - string - The name of the environment variable.

"value" - string - The value of the environment variable.

"used" - boolean - Indicates if the variable is currently active on the device.

"precedence" - number - The precedence of the variable in the hierarchy.

"note" - string - An optional free-form annotation for the variable.

children

array

JSON array of child nodes in the hierarchy, each represented by a nested object with details.

device_uid

string (optional)

The unique identifier of the Notehub device.

fleet_label

string (optional)

The label of the fleet the Notehub device belongs to.

fleet_uid

string (optional)

The unique identifier of the fleet the device belongs to.

app_uid

string (optional)

The globally-unique AppUID for the device's current Notehub application.

app_label

string (optional)

The label of the application the Notehub device is associated with.

url

string (optional)

The URL to access the device's environment hierarchy.

Example Response
[
  {
    "var_count": 5,
    "inherited_var_count": 2,
    "type": "device",
    "variables": [
      {
        "key": "VAR1",
        "value": "value1",
        "used": true,
        "precedence": 1,
        "note": "Calibrated 2026-06-01"
      },
      {
        "key": "VAR2",
        "value": "value2",
        "used": false,
        "precedence": 2
      }
    ],
    "children": [],
    "device_uid": "dev:000000000000000",
    "fleet_label": "Fleet 1",
    "fleet_uid": "fleet:000000000000000",
    "app_uid": "app:000000000000000",
    "app_label": "App 1",
    "url": "https://api.notefile.net/v1/projects/app:2606f411-dea6-44a0-9743-1130f57d77d8/devices/dev:000000000000000/environment_hierarchy"
  }
]

Get Fleet Environment Variables Notehub

Get all fleet-level environment variables by ProjectUID and FleetUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_variables
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • fleetUID - The FleetUID of a Notehub fleet.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets/<fleetUID>/environment_variables'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let fleetUID = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d";

apiInstance.getFleetEnvironmentVariables(projectOrProductUID, fleetUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    fleet_uid = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"

    try:
        api_response = api_instance.get_fleet_environment_variables(
            project_or_product_uid, fleet_uid
        )
        print("The response of ProjectApi->get_fleet_environment_variables:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_fleet_environment_variables: %s\n"
            % e
        )
Response Members

environment_variables

object

JSON object containing environment variables in "key":"value" format.

environment_variable_notes

object

JSON object containing optional per-variable annotations, keyed by variable name.

Example Response
{
  "environment_variables": {
    "fleet_humidity": "33.4",
    "fleet_temp": "24.1"
  },
  "environment_variable_notes": {
    "fleet_humidity": "Threshold agreed with the field team"
  }
}

Delete Fleet Environment Variable Notehub

Delete a fleet-level environment variable on a Notehub project by ProjectUID, FleetUID, and environment variable key.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_variables/{key}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • fleetUID - The FleetUID of a Notehub fleet.
  • key - The key of the environment variable.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X DELETE
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets/<fleetUID>/environment_variables/<key>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let fleetUID = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d";
let key = "fleet_pressure";

apiInstance
  .deleteFleetEnvironmentVariable(projectOrProductUID, fleetUID, key)
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    fleet_uid = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"
    key = "fleet_pressure"

    try:
        api_response = api_instance.delete_fleet_environment_variable(
            project_or_product_uid, fleet_uid, key
        )
        print(
            "The response of ProjectApi->delete_fleet_environment_variable:\n"
        )
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->delete_fleet_environment_variable: %s\n"
            % e
        )
Response Members

environment_variables

object

JSON object containing environment variables in "key":"value" format.

environment_variable_notes

object

JSON object containing optional per-variable annotations, keyed by variable name.

Example Response
{
  "environment_variables": {
    "fleet_humidity": "33.4",
    "fleet_temp": "24.1"
  },
  "environment_variable_notes": {
    "fleet_humidity": "Threshold agreed with the field team"
  }
}

Set Fleet Environment Variables Notehub

Set fleet-level environment variables by ProjectUID and FleetUID.

HTTP Method:PUT
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets/{fleetUID}/environment_variables
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • fleetUID - The FleetUID of a Notehub fleet.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

environment_variables

object

A JSON object containing the key-value pair(s) of environment variable(s) to be added to the fleet. For example: {"key1":"value1","key2":"value2"}.

environment_variable_notes

object (optional)

A JSON object of optional per-variable annotations, keyed by variable name. Setting a key to an empty string removes its note. A 400 error is returned for any key that does not already exist as a stored variable and is not included in environment_variables in the same request. For example: {"key1":"A note about key1","key2":"A note about key2"}.

curl -X PUT
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets/<fleetUID>/environment_variables'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"environment_variables":<env_vars>}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let fleetUID = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d";
let environmentVariables = {
  environment_variables: {
    fleet_pressure: "1000.0",
  },
}; // EnvironmentVariables

apiInstance
  .setFleetEnvironmentVariables(
    projectOrProductUID,
    fleetUID,
    environmentVariables,
  )
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    fleet_uid = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"
    environment_variables = notehub_py.EnvironmentVariables(
        environment_variables={
            "fleet_pressure": "1000.0",
        },
    )

    try:
        api_response = api_instance.set_fleet_environment_variables(
            project_or_product_uid, fleet_uid, environment_variables
        )
        print("The response of ProjectApi->set_fleet_environment_variables:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->set_fleet_environment_variables: %s\n"
            % e
        )
Response Members

environment_variables

object

JSON object containing environment variables in "key":"value" format.

environment_variable_notes

object

JSON object containing optional per-variable annotations, keyed by variable name.

Example Response
{
  "environment_variables": {
    "fleet_humidity": "33.4",
    "fleet_temp": "24.1"
  },
  "environment_variable_notes": {
    "fleet_humidity": "Threshold agreed with the field team"
  }
}

Get Fleet Notehub

Get a fleet associated with a ProjectUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets/{fleetUID}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • fleetUID - The FleetUID of a Notehub fleet.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets/<fleetUID>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let fleetUID = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d";

apiInstance.getFleet(projectOrProductUID, fleetUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    fleet_uid = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"

    try:
        api_response = api_instance.get_fleet(project_or_product_uid, fleet_uid)
        print("The response of ProjectApi->get_fleet:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->get_fleet: %s\n" % e)
Response Members

uid

string

The globally-unique identifier of the fleet.

label

string

The user-defined label of the fleet.

created

string

The date and time the fleet was created.

environment_variables

object (optional)

JSON object containing environment variables in "key":"value" format.

smart_rule

string (optional)

JSONata expression that will be evaluated to determine device membership into this fleet, if the expression evaluates to a 1, the device will be included, if it evaluates to -1 it will be removed, and if it evaluates to 0 or errors it will be left unchanged.

See Using Smart Fleet Rules for examples.

connectivity_assurance

object (optional)

Indicates whether Connectivity Assurance is enabled for this fleet.

JSON object with the following format: "enabled": true|false.

Example Response
{
  "uid": "fleet:00000000-0000-0000-0000-000000000000",
  "label": "Production",
  "created": "2021-04-10T21:18:38Z",
  "connectivity_assurance": {
    "enabled": true
  }
}

Get Fleets Notehub

Get an array of fleets associated with a ProjectUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getFleets(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_fleets(project_or_product_uid)
        print("The response of ProjectApi->get_fleets:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->get_fleets: %s\n" % e)
Response Members

uid

string

The globally-unique identifier of the fleet.

label

string

The user-defined label of the fleet.

created

string

The date and time the fleet was created.

Example Response
{
  "fleets": [
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Production",
      "created": "2021-04-10T21:18:38Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Staging",
      "created": "2021-02-11T01:03:46Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Testing",
      "created": "2021-02-11T01:03:32Z"
    }
  ]
}

Create Fleet Notehub

Create a new device fleet within a Notehub project.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

label

string

A label for the fleet.

smart_rule

string (optional)

JSONata expression that will be evaluated to determine device membership into this fleet. If the expression evaluates to a 1, the device will be included, if it evaluates to -1 it will be removed, and if it evaluates to 0 or errors it will be left unchanged.

See Using Smart Fleet Rules for examples.

smart_rule_enabled

boolean (optional)

Whether this fleet's smart fleet rules should be enabled.

connectivity_assurance

object (optional)

Indicates whether to enable Connectivity Assurance for this fleet.

JSON object with the following format: "enabled": true|false.

curl -X POST
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"label":"<label>"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let createFleetRequest = {
  label: "My Fleet",
}; // CreateFleetRequest

apiInstance.createFleet(projectOrProductUID, createFleetRequest).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    create_fleet_request = notehub_py.CreateFleetRequest(
        label="My Fleet",
    )

    try:
        api_response = api_instance.create_fleet(
            project_or_product_uid, create_fleet_request
        )
        print("The response of ProjectApi->create_fleet:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->create_fleet: %s\n" % e)
Response Members

uid

string

The globally-unique identifier for the fleet.

label

string

The user-defined label of the fleet.

created

time stamp

The date/time the fleet was created.

environment_variables

object (optional)

JSON object containing environment variables in "key":"value" format.

smart_rule

string (optional)

JSONata expression that will be evaluated to determine device membership into this fleet, if the expression evaluates to a 1, the device will be included, if it evaluates to -1 it will be removed, and if it evaluates to 0 or errors it will be left unchanged.

See Using Smart Fleet Rules for examples.

smart_rule_enabled

Whether this fleet's smart fleet rules are enabled.

connectivity_assurance

object (optional)

Indicates whether Connectivity Assurance is enabled for this fleet.

JSON object with the following format: "enabled": true|false.

Example Response
{
  "uid": "fleet:00000000-0000-0000-0000-000000000000",
  "label": "My Fleet Label",
  "created": "2021-10-12T16:21:54Z",
  "connectivity_assurance": {
    "enabled": true
  }
}

Update Fleet Notehub

Update a fleet's label or devices by FleetUID.

HTTP Method:PUT
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets/{fleetUID}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • fleetUID - The FleetUID of a Notehub fleet.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

label

string

The updated label for the fleet.

addDevices

array (optional)

A list of DeviceUIDs to add to the fleet.

removeDevices

array (optional)

A list of DeviceUIDs to remove from the fleet.

smart_rule

string (optional)

JSONata expression that will be evaluated to determine device membership into this fleet. If the expression evaluates to a 1, the device will be included, if it evaluates to -1 it will be removed, and if it evaluates to 0 or errors it will be left unchanged.

See Using Smart Fleet Rules for examples.

smart_rule_enabled

boolean (optional)

Whether this fleet's smart fleet rules should be enabled.

watchdog_mins

integer (optional)

A watchdog timer is used to generate an event every N minutes of inactivity. 0 means no watchdog timer is set.

connectivity_assurance

object (optional)

Indicates whether to enable Connectivity Assurance for this fleet.

JSON object with the following format: "enabled": true|false.

curl -X PUT
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets/<fleetUID>'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"label":"<label>"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let fleetUID = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d";
let updateFleetRequest = {
  label: "My Renamed Fleet",
}; // UpdateFleetRequest

apiInstance.updateFleet(projectOrProductUID, fleetUID, updateFleetRequest).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    fleet_uid = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"
    update_fleet_request = notehub_py.UpdateFleetRequest(
        label="My Renamed Fleet",
    )

    try:
        api_response = api_instance.update_fleet(
            project_or_product_uid, fleet_uid, update_fleet_request
        )
        print("The response of ProjectApi->update_fleet:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->update_fleet: %s\n" % e)
Response Members

uid

string

The globally-unique identifier for the fleet.

label

string

The user-defined label of the fleet.

created

time stamp

The date/time the fleet was created.

environment_variables

object (optional)

JSON object containing environment variables in "key":"value" format.

smart_rule

string (optional)

JSONata expression that will be evaluated to determine device membership into this fleet, if the expression evaluates to a 1, the device will be included, if it evaluates to -1 it will be removed, and if it evaluates to 0 or errors it will be left unchanged.

See Using Smart Fleet Rules for examples.

smart_rule_enabled

boolean (optional)

Whether this fleet's smart fleet rules are enabled.

connectivity_assurance

object (optional)

Indicates whether Connectivity Assurance is enabled for this fleet.

JSON object with the following format: "enabled": true|false.

Example Response
{
  "uid": "fleet:00000000-0000-0000-0000-000000000000",
  "label": "My Fleet Label",
  "created": "2021-10-12T16:21:54Z",
  "connectivity_assurance": {
    "enabled": true
  }
}

Delete Fleet Notehub

Delete a device fleet.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/fleets/{fleetUID}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • fleetUID - The FleetUID of a Notehub fleet.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X DELETE
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/fleets/<fleetUID>'
     -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let fleetUID = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d";

apiInstance.deleteFleet(projectOrProductUID, fleetUID).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    fleet_uid = "fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"

    try:
        api_instance.delete_fleet(project_or_product_uid, fleet_uid)
        print("ProjectApi->delete_fleet called successfully.")
    except Exception as e:
        print("Exception when calling ProjectApi->delete_fleet: %s\n" % e)

Get Device Fleets Notehub

Get an array of fleets associated with a device.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/devices/{deviceUID}/fleets
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • deviceUID - The DeviceUID of a Notehub device. You may alternatively provide a device serial number by prefixing this argument with sn:, for example sn:my-device.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/devices/<deviceUID>/fleets'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let deviceUID = "dev:000000000000000";

apiInstance.getDeviceFleets(projectOrProductUID, deviceUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    device_uid = "dev:000000000000000"

    try:
        api_response = api_instance.get_device_fleets(
            project_or_product_uid, device_uid
        )
        print("The response of ProjectApi->get_device_fleets:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->get_device_fleets: %s\n" % e)
Response Members

uid

string

The globally-unique identifier of the fleet.

label

string

The user-defined label of the fleet.

created

string

The date and time the fleet was created.

Example Response
{
  "fleets": [
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Production",
      "created": "2021-04-10T21:18:38Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Staging",
      "created": "2021-02-11T01:03:46Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Testing",
      "created": "2021-02-11T01:03:32Z"
    }
  ]
}

Add Device to Fleets Notehub

Add a device to one of more fleets.

HTTP Method:PUT
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/devices/{deviceUID}/fleets
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • deviceUID - The DeviceUID of a Notehub device. You may alternatively provide a device serial number by prefixing this argument with sn:, for example sn:my-device.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

fleet_uids

string array

A comma-separated list of globally-unique FleetUIDs.

curl -X PUT
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/devices/<deviceUID>/fleets'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"fleet_uids":[<fleet_uids>]}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let deviceUID = "dev:000000000000000";
let addDeviceToFleetsRequest = {
  fleet_uids: ["fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"],
}; // AddDeviceToFleetsRequest

apiInstance
  .addDeviceToFleets(projectOrProductUID, deviceUID, addDeviceToFleetsRequest)
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    device_uid = "dev:000000000000000"
    add_device_to_fleets_request = notehub_py.AddDeviceToFleetsRequest(
        fleet_uids=["fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"],
    )

    try:
        api_response = api_instance.add_device_to_fleets(
            project_or_product_uid, device_uid, add_device_to_fleets_request
        )
        print("The response of ProjectApi->add_device_to_fleets:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->add_device_to_fleets: %s\n" % e
        )
Response Members

uid

string

The globally-unique identifier of the fleet.

label

string

The user-defined label of the fleet.

created

string

The date and time the fleet was created.

Example Response
{
  "fleets": [
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Production",
      "created": "2021-04-10T21:18:38Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Staging",
      "created": "2021-02-11T01:03:46Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Testing",
      "created": "2021-02-11T01:03:32Z"
    }
  ]
}

Delete Device from Fleets Notehub

Deletes a device from one or more fleets.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/devices/{deviceUID}/fleets
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • deviceUID - The DeviceUID of a Notehub device. You may alternatively provide a device serial number by prefixing this argument with sn:, for example sn:my-device.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

fleet_uids

string array

An array of globally-unique FleetUIDs.

curl -X DELETE
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/devices/<deviceUID>/fleets'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"fleet_uids":[<fleet_uids>]}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let deviceUID = "dev:000000000000000";
let deleteDeviceFromFleetsRequest = {
  fleet_uids: ["fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"],
}; // DeleteDeviceFromFleetsRequest

apiInstance
  .deleteDeviceFromFleets(
    projectOrProductUID,
    deviceUID,
    deleteDeviceFromFleetsRequest,
  )
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    device_uid = "dev:000000000000000"
    delete_device_from_fleets_request = (
        notehub_py.DeleteDeviceFromFleetsRequest(
            fleet_uids=["fleet:1042ddc5-3b2c-4cec-b1fb-d3040538094d"],
        )
    )

    try:
        api_response = api_instance.delete_device_from_fleets(
            project_or_product_uid,
            device_uid,
            delete_device_from_fleets_request,
        )
        print("The response of ProjectApi->delete_device_from_fleets:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->delete_device_from_fleets: %s\n"
            % e
        )
Response Members

uid

string

The globally-unique identifier of the fleet.

label

string

The user-defined label of the fleet.

created

string

The date and time the fleet was created.

Example Response
{
  "fleets": [
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Production",
      "created": "2021-04-10T21:18:38Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Staging",
      "created": "2021-02-11T01:03:46Z"
    },
    {
      "uid": "fleet:00000000-0000-0000-0000-000000000000",
      "label": "Testing",
      "created": "2021-02-11T01:03:32Z"
    }
  ]
}

Set Global JSONata Transform Notehub

Set the global JSONata transform for a Notehub project.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/global-transformation
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

jsonata

string

The JSONata expression to be applied to all events of the Notehub project.

curl -X POST
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/global-transformation'
    -H 'Authorization: Bearer <access_token>'
    -d '<jsonata>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let body = '{"temp": body.temp, "location": where}';

apiInstance.setGlobalEventTransformation(projectOrProductUID, body).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    body = '{"temp": body.temp, "location": where}'

    try:
        api_instance.set_global_event_transformation(
            project_or_product_uid, body
        )
        print(
            "ProjectApi->set_global_event_transformation called successfully."
        )
    except Exception as e:
        print(
            "Exception when calling ProjectApi->set_global_event_transformation: %s\n"
            % e
        )
Response Members
None: an empty object {} means success.

Enable Global JSONata Transform Notehub

Enables the global JSONata transform for a Notehub project.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/global-transformation/enable
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X POST
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/global-transformation/enable'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.enableGlobalEventTransformation(projectOrProductUID).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_instance.enable_global_event_transformation(project_or_product_uid)
        print(
            "ProjectApi->enable_global_event_transformation called successfully."
        )
    except Exception as e:
        print(
            "Exception when calling ProjectApi->enable_global_event_transformation: %s\n"
            % e
        )
Response Members
None: an empty object {} means success.

Disable Global JSONata Transform Notehub

Disables the global JSONata transform for a Notehub project.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/global-transformation/disable
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X POST
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/global-transformation/disable'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.disableGlobalEventTransformation(projectOrProductUID).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_instance.disable_global_event_transformation(project_or_product_uid)
        print(
            "ProjectApi->disable_global_event_transformation called successfully."
        )
    except Exception as e:
        print(
            "Exception when calling ProjectApi->disable_global_event_transformation: %s\n"
            % e
        )
Response Members
None: an empty object {} means success.

Get Devices DFU History Notehub

Get host MCU or Notecard DFU history for all devices that match the filter criteria.

When using a cursor, a firmware update requested for a whole fleet or project (rather than for an individual device) won't appear in the results until something else changes on each affected device. To get the complete current firmware state, call this request without a cursor.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/dfu/{firmwareType}/history
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • firmwareType - The type of firmware update to perform. Available values are notecard for updating Notecard firmware, and host for updating host firmware.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

pageSize

integer (optional)

Specifies the number of devices to be returned by a request (default 50).

pageNum

integer (optional)

Specifies the page number of the results returned (useful when the pageSize is less than the total number of devices that could be returned). When provided, the pageNum must be >= 1.

cursor

string (optional)

Use this to retrieve devices in batches, ordered by when each device was last created or updated in Notehub (oldest first). Each response includes has_more, which is true if there are more devices to retrieve, and a next_cursor value to pass as the cursor of your next request to get the next batch. Set cursor to:

  • 0 to start from the beginning.
  • A Unix epoch time in microseconds (UTC) to retrieve only devices last changed at or after that time.
  • The next_cursor value returned by a previous request, to pick up where that request left off.

cursor cannot be combined with pageNum, sortBy, or sortOrder.

sortBy

string (optional)

Specifies a field in the result set to sort by, and must be one of the following: best_id, device_serial, device_uid, captured, modified, device_location, tower_location, triangulated_location, best_location.

sortOrder

string (optional)

Specifies the ascending (asc) or descending (desc) order of the result set when paired with sortBy. The default is asc.

deviceUID

Array (optional)

An array of DeviceUIDs of Notehub devices.

tag

Array (optional)

An array of one or more tags to filter the devices by.

Matches the whole tag, ignoring case. You can also use * as a wildcard when you need more flexible matching. For example, pump* matches tags starting with pump.

serialNumber

Array (optional)

An array of device serial numbers to filter by.

Matches any serial number that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, truck-*-east matches truck-01-east and truck-22-east.

fleetUID

Array (optional)

An array of FleetUIDs to filter by.

notecardFirmware

Array (optional)

An array of one or more Notecard firmware versions to filter the devices by. Any numeric portion of the firmware name like "7.4.2.16888" or "7.4" is acceptable.

Matches any version that contains the filter text, so 9.1 matches every 9.1.x release. Also, you can use * as a wildcard when you need more flexible matching.

location

Array (optional)

An array of one or more locations to filter the devices by. Provide city, state, or country code like "Boston, MA", "Boston", "MA", or "Guildford, ENG, GB".

Matches any location that contains the filter text, ignoring case. You can also use * as a wildcard when you need more flexible matching. For example, San *, CA matches San Jose, CA and San Diego, CA.

hostFirmware

Array (optional)

An array of one or more host firmware versions to filter the devices by. Any string of host firmware like "foo-3.4" or "8.7.6" or "baz-bar-01" is acceptable.

Matches any version that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, fw-2.*-beta matches fw-2.0.1-beta and fw-2.3-beta.

productUID

Array (optional)

An array of one or more ProductUIDs to filter the devices by.

Matches any ProductUID that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, com.blues.*:weather matches com.blues.alice:weather and com.blues.bob:weather.

sku

Array (optional)

An array of one or more Notecard SKUs to filter the devices by.

Matches any SKU that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, NOTE-WB*W matches NOTE-WBNAW and NOTE-WBEXW.

curl -X GET
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/dfu/<firmwareType>/history'
     -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let firmwareType = "host";
let opts = {
  pageSize: 50,
  pageNum: 1,
};

apiInstance.getDevicesDfuHistory(projectOrProductUID, firmwareType, opts).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    firmware_type = "host"

    try:
        api_response = api_instance.get_devices_dfu_history(
            project_or_product_uid, firmware_type, page_size=50, page_num=1
        )
        print("The response of ProjectApi->get_devices_dfu_history:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_devices_dfu_history: %s\n"
            % e
        )
curl -X GET
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/dfu/<firmwareType>/history?pageSize=<pageSize>&pageNum=<pageNum>&cursor=<cursor>&sortBy=<sortBy>&sortOrder=<sortOrder>&deviceUID=<deviceUID>&tag=<tag>&serialNumber=<serialNumber>&fleetUID=<fleetUID>&notecardFirmware=<notecardFirmware>&location=<location>&hostFirmware=<hostFirmware>&productUID=<productUID>&sku=<sku>'
     -H 'Authorization: Bearer <access_token>'
Response Members

device_uid

string

The unique DeviceUID of the Notehub device

current.version

string

The current version number of the firmware file.

current.organization

string

The organization distributing the firmware.

current.product

string

The ProductUID of the Notecard device.

current.built

string

The date and time the firmware was built.

history

array (optional)

An array of firmware update requests for the device, one entry per request. Omitted for devices with no update requests.

history.requested_version

string

The firmware version requested.

history.current_version

string

The firmware version installed on the device when the update was requested.

history.initiated

string

The date and time the update was requested, in RFC 3339 format.

history.updates

array

The steps of the update so far, one entry per status change.

history.updates.status

string

The status of this step (for example, "awaiting connection to begin update").

history.updates.phase

string

The phase of the update process this step belongs to (for example, "pending").

history.updates.datetime

string

The date and time of this step, in RFC 3339 format.

history.updates.description

string

Additional information about this step (for example, "pending sync").

has_more

boolean

Defines whether or not there are additional devices beyond this list.

next_cursor

string (optional)

A marker for where this batch of devices ended. Pass it, exactly as returned, as the cursor argument of your next request to get the next batch. It's returned even when has_more is false, so once you've caught up you can keep using it to retrieve only the devices that have changed since. Only returned when the request includes a cursor.

Example Response
{
  "devices": [
    {
      "device_uid": "dev:000000000000000",
      "current": {
        "version": "1.5.3.12345",
        "organization": "Blues Wireless",
        "product": "Notecard",
        "built": "Feb 19 2021 13:45:28"
      }
    },
    {
      "device_uid": "dev:000000000000001",
      "current": {
        "version": "1.5.3.67890",
        "organization": "Blues Wireless",
        "product": "Notecard",
        "built": "Feb 19 2021 13:45:28"
      }
    },
    {
      "device_uid": "dev:000000000000002",
      "current": {
        "version": "1.5.3.12606",
        "organization": "Blues Wireless",
        "product": "Notecard",
        "built": "Mar 23 2021 08:31:26"
      },
      "history": [
        {
          "requested_version": "1.5.4.13000",
          "current_version": "1.5.3.12606",
          "initiated": "2021-04-02T15:20:11Z",
          "updates": [
            {
              "status": "awaiting connection to begin update",
              "phase": "pending",
              "datetime": "2021-04-02T15:20:11Z",
              "description": "pending sync"
            }
          ]
        }
      ]
    }
  ],
  "has_more": false,
  "next_cursor": "1784278029057227.52735"
}

Get Devices DFU Status Notehub

Get host MCU or Notecard DFU status information for all devices that match the filter criteria.

When using a cursor, a firmware update requested for a whole fleet or project (rather than for an individual device) won't appear in the results until something else changes on each affected device. To get the complete current firmware state, call this request without a cursor.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/dfu/{firmwareType}/status
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • firmwareType - The type of firmware update to perform. Available values are notecard for updating Notecard firmware, and host for updating host firmware.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

pageSize

integer (optional)

Specifies the number of devices to be returned by a request (default 50).

pageNum

integer (optional)

Specifies the page number of the results returned (useful when the pageSize is less than the total number of devices that could be returned). When provided, the pageNum must be >= 1.

cursor

string (optional)

Use this to retrieve devices in batches, ordered by when each device was last created or updated in Notehub (oldest first). Each response includes has_more, which is true if there are more devices to retrieve, and a next_cursor value to pass as the cursor of your next request to get the next batch. Set cursor to:

  • 0 to start from the beginning.
  • A Unix epoch time in microseconds (UTC) to retrieve only devices last changed at or after that time.
  • The next_cursor value returned by a previous request, to pick up where that request left off.

cursor cannot be combined with pageNum, sortBy, or sortOrder.

sortBy

string (optional)

Specifies a field in the result set to sort by, and must be one of the following: best_id, device_serial, device_uid, captured, modified, device_location, tower_location, triangulated_location, best_location.

sortOrder

string (optional)

Specifies the ascending (asc) or descending (desc) order of the result set when paired with sortBy. The default is asc.

deviceUID

Array (optional)

An array of DeviceUIDs of Notehub devices.

tag

Array (optional)

An array of one or more tags to filter the devices by.

Matches the whole tag, ignoring case. You can also use * as a wildcard when you need more flexible matching. For example, pump* matches tags starting with pump.

serialNumber

Array (optional)

An array of device serial numbers to filter by.

Matches any serial number that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, truck-*-east matches truck-01-east and truck-22-east.

fleetUID

Array (optional)

An array of FleetUIDs to filter by.

notecardFirmware

Array (optional)

An array of one or more Notecard firmware versions to filter the devices by. Any numeric portion of the firmware name like "7.4.2.16888" or "7.4" is acceptable.

Matches any version that contains the filter text, so 9.1 matches every 9.1.x release. Also, you can use * as a wildcard when you need more flexible matching.

location

Array (optional)

An array of one or more locations to filter the devices by. Provide city, state, or country code like "Boston, MA", "Boston", "MA", or "Guildford, ENG, GB".

Matches any location that contains the filter text, ignoring case. You can also use * as a wildcard when you need more flexible matching. For example, San *, CA matches San Jose, CA and San Diego, CA.

hostFirmware

Array (optional)

An array of one or more host firmware versions to filter the devices by. Any string of host firmware like "foo-3.4" or "8.7.6" or "baz-bar-01" is acceptable.

Matches any version that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, fw-2.*-beta matches fw-2.0.1-beta and fw-2.3-beta.

productUID

Array (optional)

An array of one or more ProductUIDs to filter the devices by.

Matches any ProductUID that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, com.blues.*:weather matches com.blues.alice:weather and com.blues.bob:weather.

sku

Array (optional)

An array of one or more Notecard SKUs to filter the devices by.

Matches any SKU that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, NOTE-WB*W matches NOTE-WBNAW and NOTE-WBEXW.

curl -X GET
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/dfu/<firmwareType>/status'
     -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let firmwareType = "host";
let opts = {
  pageSize: 50,
  pageNum: 1,
};

apiInstance.getDevicesDfuStatus(projectOrProductUID, firmwareType, opts).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    firmware_type = "host"

    try:
        api_response = api_instance.get_devices_dfu_status(
            project_or_product_uid, firmware_type, page_size=50, page_num=1
        )
        print("The response of ProjectApi->get_devices_dfu_status:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_devices_dfu_status: %s\n"
            % e
        )
curl -X GET
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/dfu/<firmwareType>/status?pageSize=<pageSize>&pageNum=<pageNum>&cursor=<cursor>&sortBy=<sortBy>&sortOrder=<sortOrder>&deviceUID=<deviceUID>&tag=<tag>&serialNumber=<serialNumber>&fleetUID=<fleetUID>&notecardFirmware=<notecardFirmware>&location=<location>&hostFirmware=<hostFirmware>&productUID=<productUID>&sku=<sku>'
     -H 'Authorization: Bearer <access_token>'
Response Members

device_uid

string

The unique DeviceUID of the Notehub device.

dfu_in_progress

boolean

Indicates if a DFU is in progress.

current.version

string

The current version number of the firmware file.

current.organization

string

The organization distributing the firmware.

current.product

string

The ProductUID of the Notecard device.

current.built

string

The date and time the firmware was built.

status

object

The status of the DFU.

has_more

boolean

Defines whether or not there are additional devices beyond this list.

next_cursor

string (optional)

A marker for where this batch of devices ended. Pass it, exactly as returned, as the cursor argument of your next request to get the next batch. It's returned even when has_more is false, so once you've caught up you can keep using it to retrieve only the devices that have changed since. Only returned when the request includes a cursor.

Example Response
{
  "devices": [
    {
      "device_uid": "dev:000000000000000",
      "current": {
        "version": "1.5.3.12345",
        "organization": "Blues Wireless",
        "product": "Notecard",
        "built": "Feb 19 2021 13:45:28"
      },
      "status": {}
    },
    {
      "device_uid": "dev:000000000000001",
      "current": {
        "version": "1.5.3.67890",
        "organization": "Blues Wireless",
        "product": "Notecard",
        "built": "Feb 19 2021 13:45:28"
      },
      "status": {}
    },
    {
      "device_uid": "dev:000000000000002",
      "dfu_in_progress": true,
      "current": {
        "version": "1.5.3.12606",
        "organization": "Blues Wireless",
        "product": "Notecard",
        "built": "Mar 23 2021 08:31:26"
      },
      "status": {
        "requested_version": "1.5.4.13000",
        "current_version": "1.5.3.12606",
        "initiated": "2021-04-02T15:20:11Z",
        "updates": [
          {
            "status": "awaiting connection to begin update",
            "phase": "pending",
            "datetime": "2021-04-02T15:20:11Z",
            "description": "pending sync"
          }
        ]
      }
    }
  ],
  "has_more": false,
  "next_cursor": "1784278029057227.52735"
}

Get Device DFU History Notehub

Get device DFU history for host MCU or Notecard firmware updates.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/<projectOrProductUID>/devices/<deviceUID>/dfu/<firmwareType>/history
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • deviceUID - The DeviceUID of a Notehub device. You may alternatively provide a device serial number by prefixing this argument with sn:, for example sn:my-device.
  • firmwareType - The type of firmware update to perform. Available values are notecard for updating Notecard firmware, and host for updating host firmware.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/devices/<deviceUID>/dfu/<firmwareType>/history'
     -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let deviceUID = "dev:000000000000000";
let firmwareType = "host";

apiInstance
  .getDeviceDfuHistory(projectOrProductUID, deviceUID, firmwareType)
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    device_uid = "dev:000000000000000"
    firmware_type = "host"

    try:
        api_response = api_instance.get_device_dfu_history(
            project_or_product_uid, device_uid, firmware_type
        )
        print("The response of ProjectApi->get_device_dfu_history:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_device_dfu_history: %s\n"
            % e
        )
Response Members

device_uid

string

The unique DeviceUID of the Notehub device

current.version

string

The current version number of the firmware file.

current.organization

string

The organization distributing the firmware.

current.product

string

The ProductUID of the Notecard device.

current.built

string

The date and time the firmware was built.

Example Response
{
  "device_uid": "dev:000000000000000",
  "current": {
    "version": "1.5.3.12345",
    "organization": "Blues Wireless",
    "product": "Notecard",
    "built": "Feb 19 2021 13:45:28"
  },
}

Get Device DFU Status Notehub

Get device DFU status information for host MCU or Notecard firmware.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/devices/{deviceUID}/dfu/{firmwareType}/status
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • deviceUID - The DeviceUID of a Notehub device. You may alternatively provide a device serial number by prefixing this argument with sn:, for example sn:my-device.
  • firmwareType - The type of firmware update to perform. Available values are notecard for updating Notecard firmware, and host for updating host firmware.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/devices/<deviceUID>/dfu/<firmwareType>/status'
     -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let deviceUID = "dev:000000000000000";
let firmwareType = "host";

apiInstance
  .getDeviceDfuStatus(projectOrProductUID, deviceUID, firmwareType)
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    device_uid = "dev:000000000000000"
    firmware_type = "host"

    try:
        api_response = api_instance.get_device_dfu_status(
            project_or_product_uid, device_uid, firmware_type
        )
        print("The response of ProjectApi->get_device_dfu_status:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_device_dfu_status: %s\n" % e
        )
Response Members

device_uid

string

The unique DeviceUID of the Notehub device.

dfu_in_progress

boolean

Indicates if a DFU is in progress.

current.version

string

The current version number of the firmware file.

current.organization

string

The organization distributing the firmware.

current.product

string

The ProductUID of the Notecard device.

current.built

string

The date and time the firmware was built.

status

object

The status of the DFU.

Example Response
{
    "device_uid": "dev:000000000000000",
    "dfu_in_progress": true,
    "current": {
        "version": "1.5.3.12345",
        "organization": "Blues Wireless",
        "product": "Notecard",
        "built": "Mar 23 2021 08:31:26"
    },
    "status": {}
}

Get Available Firmware Notehub

Get an array of available host MCU or Notecard firmware files by ProjectUID.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/firmware
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

filename

string (optional)

Filter the query by the provided filename. The filter uses partial matching, so for example filename=1.2 will match any filename containing that string, such as notecard-1.2.3.456789.bin.

firmwareType

string (optional)

Filter the query by firmware type. Available options are notecard for Notecard firmware or host for host firmware.

md5

string (optional)

Filter the query by the provided MD5 hash.

sortBy

string (optional)

The field to use to sort the returned firmware. Available values: "created" (default), length, "name", "version".

sortOrder

_string (optional)`

The sort order of the returned firmware. Available values: "desc" (default), "asc".

target

string (optional)

Filter the query by the target architecture of Notecard firmware to return. Available values: "r5", "s3", "u5", "wl".

See Notecard Firmware Updates for details.

version

string (optional)

Filter the query by the provided version number. The filter uses partial matching, so for example version=1.2 will match any version containing that string, such as 1.2.3.

curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/firmware'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getFirmwareInfo(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_firmware_info(project_or_product_uid)
        print("The response of ProjectApi->get_firmware_info:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->get_firmware_info: %s\n" % e)
Response Members

filename

string

The filename of the firmware file.

version

string

The version number of the firmware file.

MD5

string

The MD5 hash of the firmware file.

organization

string

The organization distributing the firmware.

type

string

The type of firmware file, either "notecard" or "host".

created

UNIX Epoch time

A timestamp for when the firmware file was created.

target

string

The target architecture for Notecard firmware file.

notes

string

Any user-defined notes provided for the firmware file.

info

object

Any user-defined JSON metadata provided for the firmware file.

Example Response
[
  {
    "filename": "notecard-wl-7.2.2.16518$20240410043100.bin",
    "version": "notecard-wl-7.2.2",
    "MD5": "8c1f7737a134f108dab02ec6d6b4bf25",
    "organization": "Blues Wireless",
    "type": "notecard",
    "created": "1712780230",
    "target": "wl"
  },
  ...
]

Perform DFU Action Notehub

Update or cancel host MCU firmware updates or Notecard firmware updates.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/dfu/{firmwareType}/{action}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • firmwareType - The type of firmware update to perform. Available values are notecard for updating Notecard firmware, and host for updating host firmware.
  • action - The action to perform. Available values are update for updating firmware, and cancel for canceling an update.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

deviceUID

Array (optional)

An array of DeviceUIDs of Notehub devices.

This argument must be provided in the query string, e.g. ?deviceUID=dev:123456789.

tag

Array (optional)

An array of tags to filter devices.

This argument must be provided in the query string, e.g. ?tag=mytag.

Matches the whole tag, ignoring case. You can also use * as a wildcard when you need more flexible matching. For example, pump* matches tags starting with pump.

serialNumber

Array (optional)

An array of serial numbers to filter devices.

This argument must be provided in the query string, e.g. ?serialNumber=mySerialNumber.

Matches any serial number that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, truck-*-east matches truck-01-east and truck-22-east.

fleetUID

string (optional)

A FleetUID of a Notehub fleet.

This argument must be provided in the query string, e.g. ?fleetUID=fleet:abc-123.

notecardFirmware

Array (optional)

An array of Notecard firmware versions to filter devices.

This argument must be provided in the query string, e.g. ?notecardFirmware=7.5.2.17004.

Matches any version that contains the filter text, so 9.1 matches every 9.1.x release. Also, you can use * as a wildcard when you need more flexible matching.

location

Array (optional)

An array of locations to filter devices.

This argument must be provided in the query string, e.g. ?location=Michigan.

Matches any location that contains the filter text, ignoring case. You can also use * as a wildcard when you need more flexible matching. For example, San *, CA matches San Jose, CA and San Diego, CA.

hostFirmware

Array (optional)

An array of host firmware versions to filter devices.

This argument must be provided in the query string, e.g. ?hostFirmware=1.0.0.

Matches any version that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, fw-2.*-beta matches fw-2.0.1-beta and fw-2.3-beta.

productUID

Array (optional)

An array of one or more ProductUIDs to filter the devices by.

This argument must be provided in the query string, e.g. ?productUID=com.company.name:projectName.

Matches any ProductUID that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, com.blues.*:weather matches com.blues.alice:weather and com.blues.bob:weather.

sku

Array (optional)

An array of SKUs to filter devices.

This argument must be provided in the query string, e.g. ?sku=NOTE-WBNAW.

Matches any SKU that contains the filter text. You can also use * as a wildcard when you need more flexible matching. For example, NOTE-WB*W matches NOTE-WBNAW and NOTE-WBEXW.

filename

string (optional)

The name of the firmware file to update devices to. Required when action is update.

This argument must be provided in the POST body, e.g. {"filename":"notecard-u5-8.1.3.17044$20241220135610.bin"}.

Use Get Available Firmware to list the filenames available to your project.

curl -X POST
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/dfu/<firmwareType>/<action>'
     -H 'Authorization: Bearer <access_token>'
     -H 'Content-Type: application/json'
     -d '{"filename":"<filename>"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let firmwareType = "host";
let action = "update";
let opts = {
  dfuActionRequest: {
    filename: "my-firmware.bin",
  },
};

apiInstance
  .performDfuAction(projectOrProductUID, firmwareType, action, opts)
  .then(
    () => {
      console.log("API called successfully.");
    },
    (error) => {
      console.error(error);
    },
  );
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    firmware_type = "host"
    action = "update"
    dfu_action_request = notehub_py.DfuActionRequest(
        filename="my-firmware.bin",
    )

    try:
        api_instance.perform_dfu_action(
            project_or_product_uid,
            firmware_type,
            action,
            dfu_action_request=dfu_action_request,
        )
        print("ProjectApi->perform_dfu_action called successfully.")
    except Exception as e:
        print("Exception when calling ProjectApi->perform_dfu_action: %s\n" % e)
curl -X POST
     -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/dfu/<firmwareType>/<action>?deviceUID=<deviceUID>&tag=<tag>&serialNumber=<serialNumber>&fleetUID=<fleetUID>&notecardFirmware=<notecardFirmware>&location=<location>&hostFirmware=<hostFirmware>&productUID=<productUID>&sku=<sku>'
     -H 'Authorization: Bearer <access_token>'
     -H 'Content-Type: application/json'
     -d '{"filename":"<filename>"}'
Response Members
None: an empty object {} means success.

Download Firmware

Download a firmware binary from your project.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/firmware/host/{filename}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • filename - The filename of the firmware binary.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/firmware/host/<filename>'
    -H 'Authorization: Bearer <access_token>'
import fs from "node:fs";

// notehub-js can't return binary response bodies, so this example calls the
// endpoint with fetch (Node.js 18+) instead.
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let filename = "my-firmware.bin";
let url =
  "https://api.notefile.net/v1/projects/" +
  encodeURIComponent(projectOrProductUID) +
  "/firmware/host/" +
  encodeURIComponent(filename);

fetch(url, { headers: { Authorization: "Bearer YOUR ACCESS TOKEN" } })
  .then((response) => {
    if (!response.ok) {
      throw new Error("Request failed with status " + response.status);
    }
    return response.arrayBuffer();
  })
  .then(
    (data) => {
      fs.writeFileSync(filename, Buffer.from(data));
      console.log("Saved " + filename);
    },
    (error) => {
      console.error(error);
    },
  );
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    firmware_type = "host"
    filename = "my-firmware.bin"

    try:
        api_response = api_instance.download_firmware(
            project_or_product_uid, firmware_type, filename
        )
        with open(filename, "wb") as f:
            f.write(api_response)
        print("Saved %s" % filename)
    except Exception as e:
        print("Exception when calling ProjectApi->download_firmware: %s\n" % e)

Upload Firmware Notehub

Upload firmware binary to project.

HTTP Method:PUT
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/firmware/host/{filename}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • filename - The filename of the firmware binary.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

body

bytearray

The contents of the firmware binary file to upload. The binary must be provided as the body of the PUT request.

notes

string (optional)

An optional note describing the host firmware binary.

This argument must be provided in the request's query string, e.g. ?notes=my notes.

version

string (optional)

The version number of the host firmware, e.g. 1.0.0. If not provided, the version will be extracted from the firmware binary.

This argument must be provided in the request's query string, e.g. ?version=1.0.0.

curl -X PUT
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/firmware/host/<filename>'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/octet-stream'
    --data-binary '@<path_to_firmware_file>'
import * as NotehubJs from "@blues-inc/notehub-js";
import fs from "node:fs";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let firmwareType = "host";
let filename = "my-firmware.bin";
let body = fs.readFileSync(filename);
let opts = {
  version: "1.0.0",
  notes: "Production release",
};

apiInstance
  .uploadFirmware(projectOrProductUID, firmwareType, filename, body, opts)
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    firmware_type = "host"
    filename = "my-firmware.bin"
    body = open(filename, "rb").read()

    try:
        api_response = api_instance.upload_firmware(
            project_or_product_uid,
            firmware_type,
            filename,
            body,
            version="1.0.0",
            notes="Production release",
        )
        print("The response of ProjectApi->upload_firmware:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->upload_firmware: %s\n" % e)
Response Members

filename

string (optional)

The filename of the firmware file.

version

string (optional)

The version number of the firmware file.

MD5

string (optional)

The MD5 hash of the firmware file.

organization

string (optional)

The organization distributing the firmware.

built

string (optional)

The date and time the firmware was built.

product

string (optional)

The product that the firmware is for.

description

string (optional)

The description of the firmware.

tags

string (optional)

A list of tags associated with the firmware.

type

string (optional)

For this endpoint, the type of firmware file will always be host.

created

string (optional)

The date and time the firmware was created.

target

string (optional)

The target architecture of Notecard firmware to return. Available values: "r5", "s3", "u5", "wl".

See Notecard Firmware Updates for details.

published

boolean (optional)

True if the firmware is published, false otherwise.

Example Response
{
  "filename": "my-firmware-16518$20240410043100",
  "MD5": "d41d8cd98f00b204e9800998ecf8427e",
  "type": "host",
  "created": "1748373857",
  "published": true
}

Update Firmware Notehub

Update the metadata of an existing host firmware entry. The filename must be the full stored filename including the timestamp suffix (e.g. test$20260324190911.bin) as returned by the Upload Firmware or Get Available Firmware endpoints.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/firmware/host/{filename}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • filename - The filename of the firmware binary.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

info

JSON object (optional)

Arbitrary JSON metadata associated with this firmware entry.

notes

string (optional)

A description or notes for the firmware binary.

version

string (optional)

The version number of the host firmware, e.g. 1.0.0.

curl -X POST
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/firmware/host/<filename>'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"notes":"Production release"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let firmwareType = "host";
let filename = "my-firmware.bin";
let updateHostFirmwareRequest = {
  notes: "Production release",
}; // UpdateHostFirmwareRequest

apiInstance
  .updateFirmware(
    projectOrProductUID,
    firmwareType,
    filename,
    updateHostFirmwareRequest,
  )
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    firmware_type = "host"
    filename = "my-firmware.bin"
    update_host_firmware_request = notehub_py.UpdateHostFirmwareRequest(
        notes="Production release",
    )

    try:
        api_response = api_instance.update_firmware(
            project_or_product_uid,
            firmware_type,
            filename,
            update_host_firmware_request,
        )
        print("The response of ProjectApi->update_firmware:\n")
        pprint(api_response)
    except Exception as e:
        print("Exception when calling ProjectApi->update_firmware: %s\n" % e)
Response Members

filename

string (optional)

The filename of the firmware file.

version

string (optional)

The version number of the firmware file.

md5

string (optional)

The MD5 hash of the firmware file.

organization

string (optional)

The organization distributing the firmware.

type

string (optional)

For this endpoint, the type of firmware file will always be host.

created

string (optional)

The date and time the firmware was created.

published

boolean (optional)

True if the firmware is published, false otherwise.

notes

string (optional)

User-defined notes for the firmware file.

info

JSON object (optional)

Arbitrary JSON metadata associated with this firmware entry.

Example Response
{
    "filename": "test2$20260217170713.binpack",
    "version": "1.0.0",
    "md5": "3ff01bd9d918f5c8c024072756eeb526",
    "organization": "My Organization",
    "built": "Jan 14 2026 11:47:19",
    "product": "My Product",
    "type": "host",
    "created": "1771348033",
    "published": true,
    "notes": "Initial firmware release",
    "info": {
      "staging": true
    }
}

Delete Firmware Notehub

Delete a host firmware binary from your project. The filename must be the full stored filename including the timestamp suffix (e.g. test$20260324190911.bin) as returned by the Upload Firmware or Get Available Firmware endpoints.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/firmware/host/{filename}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • filename - The filename of the firmware binary.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X DELETE
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/firmware/host/<filename>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let firmwareType = "host";
let filename = "my-firmware.bin";

apiInstance.deleteFirmware(projectOrProductUID, firmwareType, filename).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    firmware_type = "host"
    filename = "my-firmware.bin"

    try:
        api_instance.delete_firmware(
            project_or_product_uid, firmware_type, filename
        )
        print("ProjectApi->delete_firmware called successfully.")
    except Exception as e:
        print("Exception when calling ProjectApi->delete_firmware: %s\n" % e)

Get AWS Role Config Notehub

Get the AWS Account ID and External ID needed to configure an IAM role trust policy for role-based authentication on AWS routes.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/aws-role-config
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/aws-role-config'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getAWSRoleConfig(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_aws_role_config(project_or_product_uid)
        print("The response of ProjectApi->get_aws_role_config:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_aws_role_config: %s\n" % e
        )
Response Members

aws_account_id

string

The Blues AWS Account ID to trust in your IAM role's trust policy.

external_id

string

The External ID to use in your IAM role's trust policy condition.

Example Response
{
  "aws_account_id": "123456789012",
  "external_id": "00000000-0000-0000-0000-000000000000"
}

Get Project Secrets Notehub

List all project secrets for a project. Only metadata is returned and the encrypted values are never exposed.

note

Secret values are write-only. This endpoint returns metadata only (name, timestamps, and the users who created or last modified each secret). To change a secret's value, update it.

HTTP Method:GET
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/secrets
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:viewer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X GET
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/secrets'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";

apiInstance.getProjectSecrets(projectOrProductUID).then(
  (data) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data),
    );
  },
  (error) => {
    console.error(error);
  },
);
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"

    try:
        api_response = api_instance.get_project_secrets(project_or_product_uid)
        print("The response of ProjectApi->get_project_secrets:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->get_project_secrets: %s\n" % e
        )
Response Members

secrets

array

An array of secret metadata objects.

Example Response
{
  "secrets": [
    {
      "name": "api_key",
      "created": "2026-05-18T14:22:01Z",
      "modified": "2026-05-18T14:22:01Z",
      "created_by": "alice@example.com",
      "modified_by": "alice@example.com"
    },
    {
      "name": "twilio_auth_token",
      "created": "2026-05-18T14:24:18Z",
      "modified": "2026-05-19T09:11:42Z",
      "created_by": "alice@example.com",
      "modified_by": "bob@example.com"
    }
  ]
}

Create Project Secret Notehub

Create a new project secret on a project. The value is encrypted at rest and is not returned by any subsequent API call.

note

The plaintext value is only ever transmitted on the create and update requests. It is never returned by GET /secrets, never written to logs, and never shown in the Notehub UI after this call completes.

HTTP Method:POST
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/secrets
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

name

string

The secret name. Must match the pattern [A-Za-z0-9_]{1,64}(letters, digits, and underscores only), up to 64 characters. This is the name you reference in Route fields as [$$name].

value

string

The plaintext secret value to store. Encrypted at rest and never returned by any API endpoint after this call.

curl -X POST
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/secrets'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"name":"api_key","value":"sk_live_4eC39HqLyjWDarjtT1zdp7dc"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let createProjectSecretRequest = {
  name: "api_key",
  value: "sk_live_4eC39HqLyjWDarjtT1zdp7dc",
}; // CreateProjectSecretRequest

apiInstance
  .createProjectSecret(projectOrProductUID, createProjectSecretRequest)
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    create_project_secret_request = notehub_py.CreateProjectSecretRequest(
        name="api_key",
        value="sk_live_4eC39HqLyjWDarjtT1zdp7dc",
    )

    try:
        api_response = api_instance.create_project_secret(
            project_or_product_uid, create_project_secret_request
        )
        print("The response of ProjectApi->create_project_secret:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->create_project_secret: %s\n" % e
        )
Response Members

name

string

The name of the created secret.

created

string

ISO-8601 timestamp of when the secret was created.

modified

string

ISO-8601 timestamp of when the secret was last modified (equal to created on a fresh create).

created_by

string

Email of the user who created the secret.

modified_by

string

Email of the user who last modified the secret.

Example Response
{
  "name": "api_key",
  "created": "2026-05-18T14:22:01Z",
  "modified": "2026-05-18T14:22:01Z",
  "created_by": "alice@example.com",
  "modified_by": "alice@example.com"
}

Update Project Secret Notehub

Replace the value of an existing project secret. Because secrets are write-only, this is also how you can rotate a secret, by overwriting it with a new value.

HTTP Method:PUT
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/secrets/{secretName}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • secretName - The name of a project secret.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments

value

string

The new plaintext secret value. Encrypted at rest and never returned by any subsequent API call.

curl -X PUT
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/secrets/<secretName>'
    -H 'Authorization: Bearer <access_token>'
    -H 'Content-Type: application/json'
    -d '{"value":"sk_live_replacement_value"}'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let secretName = "api_key";
let updateProjectSecretRequest = {
  value: "sk_live_replacement_value",
}; // UpdateProjectSecretRequest

apiInstance
  .updateProjectSecret(
    projectOrProductUID,
    secretName,
    updateProjectSecretRequest,
  )
  .then(
    (data) => {
      console.log(
        "API called successfully. Returned data: " + JSON.stringify(data),
      );
    },
    (error) => {
      console.error(error);
    },
  );
import os
from pprint import pprint

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    secret_name = "api_key"
    update_project_secret_request = notehub_py.UpdateProjectSecretRequest(
        value="sk_live_replacement_value",
    )

    try:
        api_response = api_instance.update_project_secret(
            project_or_product_uid, secret_name, update_project_secret_request
        )
        print("The response of ProjectApi->update_project_secret:\n")
        pprint(api_response)
    except Exception as e:
        print(
            "Exception when calling ProjectApi->update_project_secret: %s\n" % e
        )
Response Members

name

string

The name of the updated secret.

created

string

ISO-8601 timestamp of when the secret was originally created.

modified

string

ISO-8601 timestamp of this update.

created_by

string

Email of the user who originally created the secret.

modified_by

string

Email of the user who performed this update.

Example Response
{
  "name": "api_key",
  "created": "2026-05-18T14:22:01Z",
  "modified": "2026-05-20T08:47:33Z",
  "created_by": "alice@example.com",
  "modified_by": "bob@example.com"
}

Delete Project Secret Notehub

Delete a project secret.

warning

Any Route that references the deleted secret name will resolve the [$$SECRET_NAME] placeholder to an empty string at dispatch — the same behavior described in Unrecognized Placeholder Strings. Remove or update those Routes before deleting a secret in active use.

HTTP Method:DELETE
URL:https://api.notefile.net/v1/projects/{projectOrProductUID}/secrets/{secretName}
Path Parameters:
  • projectOrProductUID - The ProjectUID or ProductUID of a Notehub project.
  • secretName - The name of a project secret.
Minimum Notehub project-level role:developer
Required HTTP Headers:Authorization: Bearer <token>, where the token is a valid authentication token.
Arguments
None
curl -X DELETE
    -L 'https://api.notefile.net/v1/projects/<projectOrProductUID>/secrets/<secretName>'
    -H 'Authorization: Bearer <access_token>'
import * as NotehubJs from "@blues-inc/notehub-js";

let defaultClient = NotehubJs.ApiClient.instance;
// Configure Bearer access token for authorization: personalAccessToken
let personalAccessToken = defaultClient.authentications["personalAccessToken"];
personalAccessToken.accessToken = "YOUR ACCESS TOKEN";

let apiInstance = new NotehubJs.ProjectApi();
let projectOrProductUID = "app:2606f411-dea6-44a0-9743-1130f57d77d8";
let secretName = "api_key";

apiInstance.deleteProjectSecret(projectOrProductUID, secretName).then(
  () => {
    console.log("API called successfully.");
  },
  (error) => {
    console.error(error);
  },
);
import os

import notehub_py

configuration = notehub_py.Configuration(
    access_token=os.environ["BEARER_TOKEN"]
)

# Enter a context with an instance of the API client
with notehub_py.ApiClient(configuration) as api_client:
    api_instance = notehub_py.ProjectApi(api_client)
    project_or_product_uid = "app:2606f411-dea6-44a0-9743-1130f57d77d8"
    secret_name = "api_key"

    try:
        api_instance.delete_project_secret(project_or_product_uid, secret_name)
        print("ProjectApi->delete_project_secret called successfully.")
    except Exception as e:
        print(
            "Exception when calling ProjectApi->delete_project_secret: %s\n" % e
        )
Response Members

name

string

The name of the deleted secret.

Example Response
{
  "name": "api_key"
}
Organization API Route API
Can we improve this page? Send us feedback
© 2026 Blues Inc.
© 2026 Blues Inc.
AboutDocsAPI ReferenceTermsPrivacy