Scaling an IoT deployment? Join our webinar on May 28th where we dive into real-world scaling pain points and how to overcome them.

Blues Developers
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
Button IconHelp
Notehub StatusVisit our Forum
Button IconSign In
Sign In
Sign In
Docs Home
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
API Reference
Glossary
System Notefiles
Notecard API
Introduction
card Requests
dfu Requests
env Requests
env.defaultenv.getenv.modifiedenv.setenv.template
file Requests
hub Requests
note Requests
ntn Requests
var Requests
web Requests
Notehub API
API Introduction
Authorization API
Billing Account API
Device API
Event API
Monitor API
Project API
Route API
homechevron_rightDocschevron_rightAPI Referencechevron_rightNotecard APIchevron_rightenv Requests - API Reference

env Requests

Environment variables are key-value pairs that can be set on a device, project, or fleet.

Notecard Firmware Version:
4.x LTS
Latest (9.x)8.x LTS7.x6.x LTS5.x4.x LTS3.x2.x LTS
note

The Hierarchy of Environment Variables

Environment variables can be defined in a number of locations, from the Notecard, to Notehub device settings, the device's Fleet, and the Notehub project. Variables set at different levels of this hierarchy can override one another. When obtaining an environment variable, the Notecard uses the following priority order, where the first matched result is returned:

  1. The local value.
  2. The value set in Notehub directly on Notehub's record for the Device.
  3. The value set in Notehub on a Fleet to which the Device belongs.
  4. The value set in Notehub on the Project to which the Device belongs.
  5. The default value defined with the env.default request.

Visit our guide on Understanding Environment Variables for more detailed information on using environment variables, and see environment variables in action in these accelerator projects.

env.default CellCell+WiFiLoRaWiFi

Used by the Notecard host to specify a default value for an environment variable until that variable is overridden by a device, project or fleet-wide setting at Notehub.

note

Environment variables set with env.default on Notecard LoRa do not propagate up to Notehub. If looking for a simple way to share a variable from a Notecard to Notehub, please refer to var.set.

Arguments

name

string

The name of the environment variable (case-insensitive).

text

string (optional)

The value of the variable. Pass "" or omit from the request to delete it.

{
  "req": "env.default",
  "name": "monitor-pump",
  "text": "on"
}
J *req = NoteNewRequest("env.default");
JAddStringToObject(req, "name", "monitor-pump");
JAddStringToObject(req, "text", "on");

NoteRequest(req);
req = {"req": "env.default"}
req["name"] = "monitor-pump"
req["text"] = "on"
card.Transaction(req)
{
  "req": "env.default",
  "name": "monitor-pump"
}
J *req = NoteNewRequest("env.default");
JAddStringToObject(req, "name", "monitor-pump");

NoteRequest(req);
req = {"req": "env.default"}
req["name"] = "monitor-pump"
card.Transaction(req)
Response Members
None: an empty object {} means success.

env.get CellCell+WiFiLoRaWiFi

Returns a single environment variable, or all variables according to precedence rules.

note

Before using the env.get API on Notecard for LoRa or Starnote, you must create an environment variable template using the env.template API.

Arguments

name

string (optional)

The name of the environment variable (case-insensitive). Omit to return all environment variables known to the Notecard.

names

Array (optional)

An list of one or more variables to retrieve, by name (case-insensitive).

time

UNIX Epoch time (optional)

Request a modified environment variable or variables from the Notecard, but only if modified after the time provided.

{
  "req": "env.get",
  "name": "monitor-pump-one"
}
J *req = NoteNewRequest("env.get");
JAddStringToObject(req, "name", "monitor-pump-one");

NoteRequest(req);
req = {"req": "env.get"}
req["name"] = "monitor-pump-one"
rsp = card.Transaction(req)
{
  "req": "env.get",
  "name": "monitor-pump-one",
  "time": "1656315835"
}
J *req = NoteNewRequest("env.get");
JAddStringToObject(req, "name", "monitor-pump-one");
JAddNumberToObject(req, "time", 1656315835);

NoteRequest(req);
req = {"req": "env.get"}
req["name"] = "monitor-pump-one"
req["time"] = 1656315835
rsp = card.Transaction(req)
{
  "req": "env.get",
  "names": ["monitor-pump-one", "monitor-pump-two"]
}
J *req = NoteNewRequest("env.get");

J *names = JAddArrayToObject(req, "names");
JAddItemToArray(names, JCreateString("monitor-pump-one"));
JAddItemToArray(names, JCreateString("monitor-pump-two"));

NoteRequest(req);
req = {"req": "env.get"}
req["names"] = ["monitor-pump-one","monitor-pump-two"]
rsp = card.Transaction(req)
{
  "req": "env.get"
}
J *req = NoteNewRequest("env.get");

NoteRequest(req);
req = {"req": "env.get"}
rsp = card.Transaction(req)
Response Members

text

string

If a name was specified, the value of the environment variable.

body

JSON object

If a name was not specified, an object with name and value pairs for all environment variables.

time

UNIX Epoch time

The time of the Notecard variable or variables change.

{
  "text": "on",
  "time": 1656315835
}
{
  "err": "environment hasn't been modified {env-not-modified}"
}
{
  "body": {
    "monitor-pump-one": "on",
    "monitor-pump-two": "off"
  },
  "time": 1656315835
}
{
  "body": {
    "monitor-pump-one": "on",
    "monitor-pump-two": "off",
    "monitor-pump-three": "on"
  },
  "time": 1656315835
}

env.modified CellCell+WiFiLoRaWiFi

Get the time of the update to any environment variable managed by the Notecard.

Arguments

time

UNIX Epoch time (optional)

Request whether the Notecard has detected an environment variable change since a known epoch time.

{
  "req": "env.modified"
}
J *req = NoteNewRequest("env.modified");

NoteRequest(req);
req = {"req": "env.modified"}
rsp = card.Transaction(req)
Response Members

time

UNIX Epoch time

Timestamp indicating the last time any environment variable was changed on the device.

Example Response
{
  "time": 1605814493
}
More information:
  • Checking for Environment Variable Changes

env.set CellCell+WiFiWiFi

deprecated

The env.set API is deprecated as of v7.2.2. We recommend setting environment variables in Notehub using either the Notehub user interface or Notehub API. You may also use the env.default API to provide a default value for an environment variable, until that variable is overridden by a value from Notehub.

Sets a local environment variable on the Notecard. Local environment variables cannot be overridden by a Notehub variable of any scope.

Arguments

name

string

The name of the environment variable (case-insensitive).

text

string (optional)

The value of the variable. Pass "" or omit from the request to delete it.

{
  "req": "env.set",
  "name": "monitor-pump",
  "text": "on"
}
J *req = NoteNewRequest("env.set");
JAddStringToObject(req, "name", "monitor-pump");
JAddStringToObject(req, "text", "on");

NoteRequest(req);
req = {"req": "env.set"}
req["name"] = "monitor-pump"
req["text"] = "on"
card.Transaction(req)
{
  "req": "env.set",
  "name": "monitor-pump"
}
J *req = NoteNewRequest("env.set");
JAddStringToObject(req, "name", "monitor-pump");

NoteRequest(req);
req = {"req": "env.set"}
req["name"] = "monitor-pump"
card.Transaction(req)
Response Members

time

UNIX Epoch time

The logged time of the variable change.

More information:
  • Working with Environment Variables

env.template CellCell+WiFiLoRaWiFi

The env.template request allows developers to provide a schema for the environment variables the Notecard uses. The provided template allows the Notecard to store environment variables as fixed-length binary records rather than as flexible JSON objects that require much more memory.

Using templated environment variables also allows the Notecard to optimize the network traffic related to sending and receiving environment variable updates.

note

The env.template request is required for using environment variables on Notecard LoRa and a Notecard paired with Starnote.

Arguments

body

JSON object (optional)

A sample JSON body that specifies environment variables names and values as "hints" for the data type. Possible data types are: boolean, integer, float, and string. See Understanding Template Data Types for a full explanation of type hints.

{
  "req": "env.template",
  "body": {
    "env_var_int": 11,
    "env_var_string": "10",
  }
}
J *req = NoteNewRequest("env.template");
J *body = JCreateObject();
JAddNumberToObject(body, "env_var_int", 11);
JAddStringToObject(body, "env_var_string", "10");
JAddItemToObject(req, "body", body);

NoteRequest(req);
req = {"req": "env.template"}
req["body"] = {
  "env_var_int": 11,
  "env_var_string": "10"
}
rsp = card.Transaction(req)
Response Members

bytes

integer

The maximum number of bytes that will be used when environment variables are communicated or stored, so long as the variables do not include variable-length strings.

Example Response
{
  "bytes": 22
}
More information:
  • Understanding Template Data Types
  • Working with Environment Variables
dfu Requests file Requests
Can we improve this page? Send us feedback
© 2025 Blues Inc.
© 2025 Blues Inc.
TermsPrivacy
Notecard Disconnected
Having trouble connecting?

Try changing your USB cable as some cables do not support transferring data. If that does not solve your problem, contact us at support@blues.com and we will get you set up with another tool to communicate with the Notecard.

Advanced Usage

The help command gives more info.

Connect a Notecard
Use USB to connect and start issuing requests from the browser.
Try Notecard Simulator
Experiment with Notecard's latest firmware on a Simulator assigned to your free Notehub account.

Don't have an account? Sign up