Illuminate REST API

The PubNub Illuminate REST API provides programmatic access to create, manage, and monitor your real-time analytics and decision-making infrastructure.

Overview

Use this API to define the data you capture (business objects), transform that data into aggregations (metrics), make real-time decisions (decisions), and visualize everything (dashboards). The typical workflow is linear and repeatable across projects.

Quick start workflow

  1. Create a business object to describe which event fields you will ingest.
  2. Create a metric to aggregate those fields over a time window.
  3. Create a decision to evaluate conditions and trigger actions.
  4. Create a dashboard to visualize the metric and optionally overlay decision triggers.

Endpoint index

ResourceOperationMethodEndpointDocs
Business objects
Create
POST
/business-objects
Create business object
List
GET
/business-objects
List business objects
Get
GET
/business-objects/{id}
Get business object
Update
PUT
/business-objects/{id}
Update business object
Delete
DELETE
/business-objects/{id}
Delete business object
Metrics
Create
POST
/metrics
Create metric
List
GET
/metrics
List metrics
Get
GET
/metrics/{id}
Get metric
Update
PUT
/metrics/{id}
Update metric
Delete
DELETE
/metrics/{id}
Delete metric
Decisions
Create
POST
/decisions
Create decision
List
GET
/decisions
List decisions
Get
GET
/decisions/{id}
Get decision
Update
PUT
/decisions/{id}
Update decision
Delete
DELETE
/decisions/{id}
Delete decision
Reset action limits
POST
/decisions/{id}/action-limit-reset
Reset action limits
Retrieve action log
GET
/decisions/{id}/action-log
Retrieve action log
Dashboards
Create
POST
/dashboards
Create dashboard
List
GET
/dashboards
List dashboards
Get
GET
/dashboards/{id}
Get dashboard
Update
PUT
/dashboards/{id}
Update dashboard
Delete
DELETE
/dashboards/{id}
Delete dashboard

Conventions and data types

IDs you will reuse

  • Every create response returns stable IDs (for example, businessObjectId, metricId, decisionId). You will reuse them to create dependent resources and when updating rules.
  • Field IDs (fields[].id) from a business object are reused as measureId, dimensionIds, and decision inputFields[].sourceId.
  • Action IDs (actions[].id) from a decision are required when configuring rules and when resetting execution limits.

Timestamps and time zones

  • All timestamps are ISO 8601 and UTC (for example, 2025-08-21T19:27:01Z).
  • When specifying date ranges, the time component is optional; the time zone is UTC.

Authentication header and cURL template

Use the X-Session-Token header on every request. HTTP header names are case-insensitive.

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/<resource>' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Common enumerations and windows

Authentication

PubNub REST APIs use session-based authentication. To access the Illuminate API, you'll need an X-Session-Token obtained from your PubNub credentials.

Request a token by calling the following URL:

curl --location --request POST 'https://admin.pubnub.com/api/me' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "'$LOGIN'",
"password":"'$PASSWORD'"
}'

Include the X-Session-Token (session token) in the request header for all requests to Illuminate endpoints.

Base URL

The base path for all Illuminate API endpoints is:

https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/

The account ID is your PubNub six-digit account ID.

Resources

Business objects

Business Objects are containers for the data you want to use for decision-making and visualization within Illuminate. They define how event data is ingested and organized.

OperationHTTP MethodEndpoint
Create a business object
POST
/business-objects
List all business objects
GET
/business-objects
Get a specific business object
GET
/business-objects/{id}
Update a business object
PUT
/business-objects/{id}
Delete a business object
DELETE
/business-objects/{id}

Create business object

Creates a new business object to capture and organize event data.

Endpoint: POST /business-objects

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/business-objects

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

The request body should contain a BusinessObjectDto with the following properties:

FieldTypeRequiredDescription
name
string
Yes
Business object name (1-50 characters).
isActive
boolean
No
Whether to start capturing data (default: false).
description
string
No
Description (max 200 characters).
fields
FieldDto[]
No
Data fields for the business object (max 15).
subkeys
string[]
Yes
PubNub subscribe keys to capture data from (min 1, max 10).
customerIds
string[]
No
Your unique customer IDs (max 1, requires Partner Portal).

FieldDto

Elements of fields or data fields for the Business Object.

FieldTypeRequiredDescription
id
string
No
PubNub-generated unique ID (required for GET, PUT, DELETE methods).
name
string
Yes
Field name (1-50 characters).
source
enum
Yes
JSONPATH or DERIVED.
jsonPath
string
Conditional
Required when source is JSONPATH and isActive is true (max 200 chars)
jsonFieldType
enum
Conditional
TEXT, NUMERIC, or TIMESTAMP (required when source is JSONPATH). Timestamp format: ISO 8601 (e.g., 2025-08-21T19:27:01Z).
derivation
DerivationDto
Conditional
Required when source is DERIVED.

DerivationDto

Configuration for creating derived fields when field source is DERIVED.

FieldTypeRequiredDescription
operation
enum
Yes
Always TIME_DIFF.
params
TimeDiffParams
Yes
Parameters for time difference calculation.

TimeDiffParams

Parameters that define start and end sources for calculating a TIME_DIFF.

FieldTypeRequiredDescription
startSource
enum
Yes
DATA_FIELD or PUBLISH_TIMETOKEN. DATA_FIELD is a field created in the business object (accepts only TIMESTAMP data type).
startFieldIndex
number
Conditional
Index or position of the timestamp data field in your array. Not required if endSource is PUBLISH_TIMETOKEN (e.g., startFieldIndex=1).
endSource
enum
Yes
DATA_FIELD or PUBLISH_TIMETOKEN.
endFieldIndex
number
Conditional
Index or position of the timestamp data field in your array. Not required if endSource is PUBLISH_TIMETOKEN (e.g., endFieldIndex=4).

Sample request

{
"name": "DEMO - Level Failure",
"isActive": false,
"description": "Tracks player failures in level flow",
"fields": [
{
"name": "Event",
"source": "JSONPATH",
"jsonPath": "$.message.body.event",
"jsonFieldType": "TEXT"
},
{
"name": "Event Timestamp",
"source": "JSONPATH",
"jsonPath": "$.message.body.event",
show all 39 lines

Sample response

{
"id": "19b9c407-6269-44a4-a5ec-d581dbbpntest",
"name": "DEMO - Level Failure",
"isActive": true,
"description": "Tracks player failures in level flow",
"fields": [
{
"id": "b20214f9-0677-4e65-a60b-b12a132pntest",
"name": "Event",
"source": "JSONPATH",
"jsonPath": "$.message.body.event",
"jsonFieldType": "TEXT",
"isKeyset": false
},
{
show all 57 lines

Response field descriptions

FieldDescription
id
PubNub-generated unique ID for the Business Object. Required in later requests for GET, UPDATE, and DELETE methods. Also used when working with metrics.
fields[].id
PubNub-generated unique ID for the fields (data fields). Required when creating metrics and decisions. Used in the inputFields when adding conditions to a decision.

Note: fields and the corresponding IDs are the data fields defined in the Business Object. The IDs generated for each field are used interchangeably with measureId and dimensionIds when working with metrics and the inputFields when working with decisions.
fields[].isKeyset
Boolean flag included in responses for each field. Informational only and not required in requests.
createdAt / updatedAt / createdBy / updatedBy
Metadata only; not required in other requests. You can use this for your own audit log.
Other fields
The data you provided in creating the Business Object will also be echoed back in the response.

List business objects

Returns a list of all business objects for your account.

Endpoint: GET /business-objects

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/business-objects

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/business-objects' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample response

[
{
"id": "19b9c407-6269-44a4-a5ec-d581dbbpntest",
"name": "DEMO - Level Failure",
"isActive": true,
"description": "Tracks player failures in level flow",
"accountId": "123456",
"createdAt": "2025-08-15T12:00:00Z",
"updatedAt": "2025-08-15T12:00:00Z"
}
]

Get business object

Returns details for a specific business object.

Endpoint: GET /business-objects/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/business-objects/{id}

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Business object ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/business-objects/19b9c407-6269-44a4-a5ec-d581dbbpntest' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample response

Returns the complete business object details as shown in the Create Business Object sample response.

Update business object

Updates an existing business object.

Endpoint: PUT /business-objects/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/business-objects/{id}

Active business objects

While active, you can change only the name and description. To add or remove fields, deactivate the business object first. Deactivation pauses data collection. If a related decision is active, deactivate it too.

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Business object ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

Same as Create Business Object request body.

Sample request

{
"name": "Updated Level Failure Tracker",
"description": "Updated description for tracking player failures"
}

Sample response

Returns the complete business object details as shown in the Create Business Object sample response.

Delete business object

Deletes a business object and all associated metrics, decisions, and charts.

Endpoint: DELETE /business-objects/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/business-objects/{id}

Cascading deletion

Deleting a business object also deletes its metrics, decisions, and charts.

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Business object ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request DELETE \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/business-objects/19b9c407-6269-44a4-a5ec-d581dbbpntest' \
--header 'X-Session-Token: <token>'

Metrics

Metrics are aggregations of the data fields (fields in the Illuminate API) you created. They represent calculations you apply to your data fields. For example, the average number of purchases grouped by region and/or user.

Dimensions vs Measures

Refers to the data fields you created with the Business Object.

  • Dimensions are fields (data fields) used for grouping or filtering data (e.g., user, channels, region) and have the jsonFieldType=TEXT
  • Measures are fields (data fields) with numeric values that can be aggregated (e.g. average, sum) and have the jsonFieldType=NUMERIC
  • When creating a metric, you pick a measure for the calculation and optionally one or more dimensions to group by.

For more information, see Illuminate Basics - Metrics.

See also: Create a metric → Create metric.

OperationHTTP MethodEndpoint
Create a metric
POST
/metrics
List all metrics
GET
/metrics
Get a specific metric
GET
/metrics/{id}
Update a metric
PUT
/metrics/{id}
Delete a metric
DELETE
/metrics/{id}

Create metric

Creates a new metric for data aggregation.

Endpoint: POST /metrics

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/metrics

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

FieldTypeRequiredDescription
name
string
Yes
Metric name (1-50 characters).
businessObjectId
string
Yes
ID of the business object.
measureId
string
Conditional
Field ID to aggregate (required for AVG, MAX, MIN, SUM).
evaluationWindow
number
Yes
Time period in seconds: 60, 300, 600, 900, 1800, 3600, 86400.
function
enum
Yes
AVG, COUNT, COUNT_DISTINCT, MAX, MIN, SUM.
dimensionIds
string[]
No
Field IDs to group by (TEXT fields only).
filters
MetricFilterDto[]
No
Filtering criteria for metrics.

MetricFilterDto

Filtering criteria for metrics, applied to dimension fields.

FieldTypeRequiredDescription
id
string
Conditional
PubNub-generated ID for the metric filter (required for PUT methods).
sourceType
enum
Yes
Value must always be DIMENSION.
sourceId
string
Yes
ID of the field or data field to filter on.
operation
enum
Yes
STRING_EQUALS, STRING_NOT_EQUAL, STRING_CONTAINS, STRING_NOT_CONTAINS, STRING_IS_EMPTY, STRING_IS_NOT_EMPTY, STRING_STARTS_WITH, STRING_ENDS_WITH.
arguments
string[]
Yes
1 string argument. Matching is case-sensitive.

Sample request

{
"name": "DEMO - Average Failure Count by Device Type",
"businessObjectId": "19b9c407-6269-44a4-a5ec-d581dbbpntest",
"evaluationWindow": 60,
"function": "AVG",
"measureId": "b20214f9-0677-4e65-a60b-b12a132pntest",
"dimensionIds": ["13546d2b-7e42-4f2a-a81b-db16pntest"],
"filters": [
{
"sourceType": "DIMENSION",
"sourceId": "1772feb7-6a6c-4acc-9f40-60f200pntest",
"operation": "STRING_EQUALS",
"arguments": ["Level_Failure"]
}
]
show all 16 lines

Sample response

{
"id": "21583568-cb7b-4413-8166-f56d0cpntest",
"name": "DEMO - Average Failure Count by Device Type",
"measureId": "b20214f9-0677-4e65-a60b-b12a132pntest",
"businessObjectId": "19b9c407-6269-44a4-a5ec-d581dbbpntest",
"evaluationWindow": 60,
"function": "AVG",
"dimensionIds": ["13546d2b-7e42-4f2a-a81b-db16pntest"],
"dimensions": [
{
"id": "13546d2b-7e42-4f2a-a81b-db16pntest",
"name": "Device Type",
"source": "JSONPATH",
"jsonPath": "$.message.body.data.device_type",
"jsonFieldType": "TEXT",
show all 28 lines

Response field descriptions

FieldDescription
id
PubNub-generated ID for the metric that will be required in later requests to update, delete, or retrieve the metric. Also needed when creating a decision (as sourceId if sourceType is METRIC).
businessObjectId
PubNub-generated ID for the source Business Object; needed if you want to create other metrics or decisions referencing the same data.
measureId
PubNub-generated ID for the field or data field that is found in a Business Object.
dimensionIds
PubNub-generated ID for the field or data field that is found in a Business Object and is used for grouping.
filters[].sourceId
PubNub-generated ID for the field used for filtering.
dimensions
Information about the IDs included in the dimensionIds or the IDs of the fields you grouped by.
filters[].id
PubNub-generated ID for the metric filter. Required when updating a metric (PUT).
businessObject
Optional nested object with details of the source Business Object. Present in some responses.

List metrics

Returns a list of all metrics for your account.

Endpoint: GET /metrics

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/metrics

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/metrics' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample response

Returns an array of metric objects as shown in the Create metric sample response.

Get metric

Returns details for a specific metric.

Endpoint: GET /metrics/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/metrics/{id}

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Metric ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/metrics/21583568-cb7b-4413-8166-f56d0cpntest' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample response

Returns the complete metric details as shown in the Create metric sample response.

Update metric

Updates an existing metric.

Endpoint: PUT /metrics/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/metrics/{id}

Decision deactivation required

To update a metric, first deactivate any associated decisions.

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Metric ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

Same as Create Metric request body.

Sample request

{
"name": "Updated Average Failure Count",
"evaluationWindow": 300
}

Sample response

Returns the complete metric details as shown in the Create metric sample response.

Delete metric

Deletes a metric and any associated decisions.

Endpoint: DELETE /metrics/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/metrics/{id}

Cascading deletion

Deleting a metric also deletes associated decisions.

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Metric ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request DELETE \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/metrics/21583568-cb7b-4413-8166-f56d0cpntest' \
--header 'X-Session-Token: <token>'

Sample response

Returns a success message.

See also: Next, create a decision → Create decision.

Decisions

Decisions help product managers with engagement and monetization strategies by executing actions when specific conditions are met.

Choose a source type

When you create a decision, choose a sourceType:

  • METRIC: evaluates an aggregated value (for example, send an alert when average failures ≥ 5).
  • BUSINESSOBJECT (event): evaluates each event in real time.

For more information, see Illuminate Basics - Decisions.

See also: If you do not have a metric yet, start here → Create metric.

Decision input fields

These are data fields used by the decision.

  • For METRIC decisions: input fields are populated from the metric’s measure and dimensions.
  • For BUSINESSOBJECT decisions: provide input fields yourself. Use sourceType = FIELD and supply each field’s ID from the business object.

Decision actions

Actions are what the decision does when conditions are met. Examples:

  • PUBNUB_PUBLISH – Publish a message to a PubNub channel.
  • WEBHOOK_EXECUTION – Make an HTTP request to an external endpoint.
  • App Context actions (APPCONTEXT_*) – Update PubNub App Context metadata for users, channels, or memberships.

The template defines the payload for that action (e.g., channel name and message for PUBNUB_PUBLISH).

For more information, see Illuminate Basics - Actions.

OperationHTTP MethodEndpoint
Create a decision
POST
/decisions
List all decisions
GET
/decisions
Get a specific decision
GET
/decisions/{id}
Update a decision
PUT
/decisions/{id}
Delete a decision
DELETE
/decisions/{id}
Reset action execution limits
POST
/decisions/{id}/action-limit-reset
Retrieve action log
GET
/decisions/{id}/action-log

Create decision

Creates a new decision for configuring rules, conditions, and actions based on either events or metrics.

Endpoint: POST /decisions

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/decisions

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

FieldTypeRequiredDescription
name
string
Yes
Decision name (1-50 characters).
description
string
No
Description (max 200 characters).
sourceType
enum
Yes
BUSINESSOBJECT or METRIC.
sourceId
string
Yes
ID of the metric or business object.
hitType
enum
No
SINGLE or MULTIPLE.
enabled
boolean
No
Whether decision is active (default: false). Must be false when creating a decision.
activeFrom
datetime
No
Start date/time for activation (ISO 8601).
activeUntil
datetime
No
End date/time for deactivation (ISO 8601).
executeOnce
boolean
No
Execute actions only once when conditions are satisfied.
executionFrequency
number
No
Evaluation frequency in seconds. Allowed values: 60, 300, 600, 900, 1800, 3600, 86400.
inputFields
DecisionInputFieldDto[]
Conditional
Required if sourceType is BUSINESSOBJECT.
outputFields
DecisionOutputFieldDto[]
No
Custom variables for actions.
actions
ActionDto[]
No
Available actions for rules.

DecisionInputFieldDto

Conditions to use if sourceType is BUSINESSOBJECT. These are data fields found in the selected Business Object that you want to use as conditions for an event-based decision.

FieldTypeRequiredDescription
name
string
Yes
Label for the input field
sourceType
string
Yes
Only required when creating an event decision. Allowed value: FIELD. When creating a metric decision, these will be filled from the metric
sourceId
string
Yes
ID of metric field/dimension to use as input or condition

DecisionOutputFieldDto

Custom variables created in a decision for use in actions.

FieldTypeRequiredDescription
name
string
Yes
Label of the custom variable in the rules table (1-50 characters)
variable
string
Yes
Name of the custom variable in the action during creation (1-50 characters)

ActionDto

Definition of an action the decision can execute (e.g., publish, webhook, App Context updates).

FieldTypeRequiredDescription
name
string
Yes
Name for the action (1-50 characters)
description
string
No
Optional description of the action (max 200 characters)
actionType
string
Yes
PUBNUB_PUBLISH, WEBHOOK_EXECUTION, APPCONTEXT_SET_USER_METADATA, APPCONTEXT_SET_CHANNEL_METADATA, APPCONTEXT_SET_MEMBERSHIP_METADATA
template
object
Yes
Structure depends on actionType
note
string
No
Additional notes (max 2,048 characters)

Action templates

PUBNUB_PUBLISH template
FieldTypeRequiredDescription
pubkey
string
Yes
The PubNub publish key for the account
subkey
string
Yes
The PubNub subscribe key for the account
channel
string
Yes
The PubNub channel name to publish the action event to
meta
string
No
Metadata field (e.g., externalId) that can be included with the publish
body
string
Yes
JSON string payload; supports variables like ${inputFieldId}
WEBHOOK_EXECUTION template
FieldTypeRequiredDescription
webhookUrl
string
Yes
Target URL for the webhook request
headers
object
No
Key/value pairs for custom headers
payload
string
Yes
JSON string payload; supports variables like ${custom variable}
APPCONTEXT_SET_USER_METADATA template
FieldTypeRequiredDescription
subkey
string
Yes
PubNub subscribe key for the account
userId
string
Yes
The user identifier
externalId
string
No
External identifier for mapping users
type
string
No
Type of user
status
string
No
Status of the user
custom
object
No
Key/value pairs of custom properties
customDataTypes
object
No
Top Level Custom Fields
APPCONTEXT_SET_CHANNEL_METADATA template
FieldTypeRequiredDescription
subkey
string
Yes
PubNub subscribe key for the account
channelId
string
Yes
Channel identifier
name
string
No
Channel name to update
type
string
No
Channel type
status
string
No
Channel status
custom
object
No
Key/value pairs of custom properties
customDataTypes
object
No
Top Level Custom Fields
APPCONTEXT_SET_MEMBERSHIP_METADATA template
FieldTypeRequiredDescription
subkey
string
Yes
PubNub subscribe key for the account
userId
string
Yes
ID of the user in the membership relationship
channelId
string
Yes
ID of the channel in the membership relationship
status
string
No
Membership status; can include variables (e.g., ${custom variable})
customFields
array
No
List of custom membership properties
customDataTypes
object
No
Top Level Custom Fields

DecisionRuleDto (only for PUT)

Rule definitions inside a decision, containing input conditions, outputs, and action mappings.

FieldTypeRequiredDescription
inputValues
DecisionInputValueDto[]
No
List of conditions to evaluate (Only for PUT)
outputValues
DecisionOutputValueDto[]
No
Values to assign to outputs when matched (Only for PUT)
actionValues
ActionValueDto[]
No
Actions to trigger when matched (Only for PUT)

DecisionInputValueDto (only for PUT)

A condition expression used within a decision rule.

FieldTypeRequiredDescription
inputFieldId
string
Yes
References inputFields[].id. Always needed when creating rules
operation
enum
Yes
ANY, NUMERIC_EQUALS, NUMERIC_NOT_EQUALS, NUMERIC_GREATER_THAN, NUMERIC_GREATER_THAN_EQUALS, NUMERIC_LESS_THAN, NUMERIC_LESS_THAN_EQUALS, NUMERIC_INCLUSIVE_BETWEEN, STRING_EQUALS, STRING_NOT_EQUALS, STRING_CONTAINS
argument
string
Conditional
Maximum 92 characters. Empty if operation is ANY. If operation is NUMERIC_INCLUSIVE_BETWEEN, separate numbers by comma (e.g., "2,7")

DecisionOutputValueDto (only for PUT)

A value assigned to an output field when a decision rule is met.

FieldTypeRequiredDescription
outputFieldId
string
Yes
References outputFields[].id
value
string
Yes
Value that your custom variable will send in actions (max 200 characters)

ActionValueDto (only for PUT)

Configuration for how and when an action executes within a rule.

FieldTypeRequiredDescription
actionId
string
Yes
Action ID from POST/GET method response
status
boolean
Yes
Whether action is active for this rule (true = execute when conditions satisfied, false = don't execute)
executionLimitType
string
No
How often to execute when conditions satisfied. Default: ALWAYS. Options: ALWAYS, ONCE_PER_INTERVAL, ONCE_PER_INTERVAL_PER_CONDITION, ONCE_PER_INTERVAL_PER_CONDITION_GROUP
executionLimitIntervalInSeconds
number
Conditional
Execution interval in seconds: 60, 300, 600, 900, 1800, 3600, 86400. Required if executionLimitType is ONCE_PER_INTERVAL or ONCE_PER_INTERVAL_PER_CONDITION
executionLimitInputFieldIds
string[]
Conditional
Field IDs for execution limits. Required if executionLimitType is ONCE_PER_INTERVAL_PER_CONDITION
resetLimits
boolean
No
When true, resets accumulated execution limits for this action when updating rules.

Send Message Action UI

Place in the screenshotField
1
DecisionDto.name
2
DecisionDto.description
3
DecisionDto.sourceType
4
DecisionDto.inputFields
5
ActionDto.name
6
ActionDto.description
7
DecisionOutputFieldDto.variable
8
DecisionOutputFieldDto.name

Sample request

{
"name": "API Metric Test Decision",
"description": "API Metric Test Decision Description",
"sourceId": "73a2de07-3df6-4d9b-9ff7-28c738PNTEST",
"sourceType": "METRIC",
"enabled": false,
"hitType": "SINGLE",
"activeFrom": "2025-08-21T17:32:28.282Z",
"activeUntil": "2025-09-20T17:32:28.282Z",
"executeOnce": false,
"executionFrequency": 60,
"actions": [
{
"name": "Send Message Action Name",
"description": "Send Message Action Description",
show all 48 lines

Event-based decision example:

{
"name": "API Event Test Decision",
"description": "This is a test description for an event based decision.",
"sourceId": "80812fcb-0ab9-4707-b768-2a16eePNTEST",
"sourceType": "BUSINESSOBJECT",
"enabled": false,
"hitType": "SINGLE",
"activeFrom": "2025-08-21T17:57:57.692Z",
"activeUntil": "2025-09-20T17:57:57.692Z",
"executeOnce": false,
"executionFrequency": 60,
"inputFields": [
{
"sourceId": "3ddcedbf-f182-48b2-bf6a-3fcf58PNTEST",
"name": "Player ID",
show all 61 lines

Sample response

{
"id": "a41c8507-46ce-496f-ba0d-f7319aPNTEST",
"accountId": "123456",
"businessObjectId": "80812fcb-0ab9-4707-b768-2a16eePNTEST",
"sourceType": "METRIC",
"sourceId": "73a2de07-3df6-4d9b-9ff7-28c738PNTEST",
"name": "API Metric Test Decision",
"description": "API Metric Test Decision Description",
"hitType": "SINGLE",
"enabled": false,
"activeFrom": "2025-08-21T17:32:28.282Z",
"activeUntil": "2025-09-20T17:32:28.282Z",
"executeOnce": false,
"executionFrequency": 60,
"actions": [
show all 71 lines

Response field descriptions

FieldDescription
id
Required in later requests to update, delete, or retrieve this decision.
sourceId
If sourceType is METRIC or BUSINESSOBJECT, this is their ID; required when recreating or updating the decision.
inputFields[].id
Required when creating or updating rules in this decision (rules reference inputFieldId).
inputFields[].sourceId
Links to the Business Object field or metric field used as input; may be reused in other decisions.
actions[].id
Required when referencing an action in rules (actionId in actionValues).
rules[].id
Required for updating rules directly.
createdAt/updatedAt
Metadata only; not required in other requests.

List decisions

Returns a list of all decisions for your account.

Endpoint: GET /decisions

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/decisions

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/decisions' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample response

[
{
"id": "003d5d4f-6bb7-48f8-8b0b-bc8dd79ae792",
"accountId": "123456",
"name": "car brand count",
"description": "",
"enabled": false,
"createdAt": "2024-09-20T20:20:17.629Z",
"updatedAt": "2024-09-20T20:20:17.629Z"
}
]
Response fields

The /decisions endpoint guarantees only id and name. Other fields may change without notice.

Get decision

Returns details for a specific decision.

Endpoint: GET /decisions/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/decisions/{id}

Parameters

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Decision ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/decisions/a41c8507-46ce-496f-ba0d-f7319aPNTEST' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample response

Returns the complete decision details as shown in the Create decision sample response.

Update decision

Updates an existing decision.

Endpoint: PUT /decisions/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/decisions/{id}

Inactive decisions only

You can modify only inactive decisions. Deactivate an active decision before updating. If you are updating only rule values, deactivation is not required.

Decision Configuration with Rules

Place in the screenshotField/DTO
1
DecisionDto.sourceType
2
DecisionDto.hitType
3
DecisionDto.executionFrequency
4
DecisionInputFieldDto.name
5
DecisionInputFieldDto.argument
6
DecisionInputFieldDto.operation
7
ActionDto.name
8
ActionValueDto.status
9
ActionValueDto.executionLimitType
10
DecisionOutputFieldDto.name
11
DecisionOutputValueDto.value

Parameters

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Decision ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

Same as Create decision request body, with additional rules configuration.

Sample request

{
// === Decision Metadata ===
"id": "a41c8507-46ce-496f-ba0d-f7319aPNTEST",
"name": "API Metric Test Decision",
"description": "API Metric Test Decision Description",
"sourceId": "73a2de07-3df6-4d9b-9ff7-28c738PNTEST",
"sourceType": "METRIC",
"enabled": false,
"hitType": "MULTI",
"activeFrom": "2025-08-21T17:32:28.282Z",
"activeUntil": "2025-09-20T17:32:28.282Z",
"executeOnce": false,
"executionFrequency": 60,

// === Input Fields ===
show all 183 lines

Sample response

{
// === Decision Metadata ===
"id": "a41c8507-46ce-496f-ba0d-f7319aPNTEST",
"accountId": "123456",
"businessObjectId": "80812fcb-0ab9-4707-b768-2a16eePNTEST",
"sourceType": "METRIC",
"sourceId": "73a2de07-3df6-4d9b-9ff7-28c738PNTEST",
"name": "API Metric Test Decision",
"description": "API Metric Test Decision Description",
"hitType": "MULTI",
"enabled": false,
"activeFrom": "2025-08-21T17:32:28.282Z",
"activeUntil": "2025-09-20T17:32:28.282Z",
"executeOnce": false,
"executionFrequency": 60,
show all 212 lines

Delete decision

Deletes a decision and removes its rules and actions permanently.

Endpoint: DELETE /decisions/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/decisions/{id}

Permanent deletion

Deleting a decision permanently removes its rules and actions.

Parameters

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Decision ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample request

curl --request DELETE \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/decisions/a41c8507-46ce-496f-ba0d-f7319aPNTEST' \
--header 'X-Session-Token: <token>'

Reset action limits

Resets action execution limits for debugging purposes.

Endpoint: POST /decisions/{id}/action-limit-reset

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/decisions/{id}/action-limit-reset

Parameters

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Decision ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample Request

{
"ruleActions": [
{
"ruleId": "86106f51-4461-4cd5-8a9e-930babPNTEST",
"actionId": "5f6afd68-1d3c-45a1-8a1a-3291faPNTEST"
}
]
}

Retrieve action log

Retrieves historical action execution logs for a given decision.

Defaults and limits
  • Default results: 50 records if no date range is specified
  • Max results with date range: 10,000 records
  • Time zone: UTC; ISO 8601 timestamps without milliseconds
  • Default sort: timestamp:desc

Results can be returned in JSON or CSV format and filtered by various parameters.

Endpoint: GET /decisions/{id}/action-log

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/decisions/{id}/action-log

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your unique PubNub account number.
decisionId *
Type: string
Unique ID assigned to the Illuminate decision.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Query parameters

* required
ParameterDescription
sort
The order in which to sort the data in the response. If sort order is not specified, the default sort order is timestamp descending (timestamp:desc)
success
Request to return log entries with specified success status. Must either be true or false. If you only need success or failures, then success=true or success=false. If success is not specified, all statuses are returned
startDate
Date range in UTC. Must be in ISO 8601 format and without milliseconds precision, e.g., 2024-12-02T14:06:25. If no date is provided, the most recent 50 records are returned
endDate
Data range in UTC. Must be after startDate
search
Additional search term by which to filter the results. Only action log entries containing this search term are returned in the results
format
Either JSON or CSV data format. If this parameter is not specified, the data will be returned in JSON

Query Parameter Validation

All query string parameters are optional and, if specified, are validated and handled as follows:

  • For the search parameter: The value must not be longer than 256 characters. Case-insensitive search is performed to only return log entries where ANY of the following fields contain the specified search term: actionName, errorMessage, triggeringConditions, and outputValues.

  • The sort parameter is specified in the syntax <column>[:<direction>], e.g., sort=actionName:desc.

    • Direction is optional and, if specified, must be either "asc" or "desc", defaulting to "asc"; e.g., sort=actionName is equivalent to sort=actionName:asc
    • Columns that can be sorted include: actionName, actionType, errorMessage, success, timestamp.
    • The secondary sort is automatically applied on timestamp descending if the main sort is not on timestamp.
      • For example, sort=actionName applies a primary sort on actionName ascending and a secondary sort on timestamp descending. That way any log entries that have the same value for the primary sort column are listed with the most recent ones first.
    • If sort is not specified, the default sort order is timestamp descending (timestamp:desc), which returns the results with the most recent actions listed first.

Note: This endpoint returns HTTP 200 (Success) even if no records match the specified date range and/or filters.

  • The startDate and endDate parameters have additional validation:
    • Date values without a time component are allowed. For example, startDate=2024-12-02,endDate=2024-12-04 means return all records between those two dates, inclusive.
    • The time zone is UTC, and this may optionally be indicated explicitly by including "Z" at the end of the time value; e.g., 2024-12-02T14:06:25Z.
    • If endDate is specified, startDate must also be specified. In contrast, if only startDate is specified, all actions after that start date/time are returned without having to explicitly specify an endDate.
    • endDate must not be before startDate.
    • Depending on your volume, the recommended date range is less than an hour. Date range must not exceed 30 days. Note that if only startDate is specified then endDate is treated as the current date/time when performing this 30 days range check.
    • If a date range is not specified, only 50 records are returned. Those 50 records still satisfy any optional filtering/sorting options.
    • If a date range is specified, at most 10,000 records are returned in a single API call.
      • If more than that many action log records are found for the specified date range (and any additional filter criteria, if specified), then a 422 (Unprocessable Entity) error status code is returned with the following message: "Response contains more records than the maximum allowed of 10000. Please narrow the date range or apply additional filters."

Sample Request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/decisions/5a99115a-0aee-463e-b672-5abdc7c9c2fc/action-log?startDate=2024-11-26T22%3A20%3A43Z&endDate=2024-11-27%3A23%3A59Z&format=json&sort=timestamp%3Adesc&search=John' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample Response

[
{
"decisionId": "5a99115a-0aee-463e-b672-5abdc7c9c2fc",
"ruleId": "ab4284e4-d9de-4c16-b265-d736d36a425a",
"actionId": "a6318683-b304-4393-985d-6bf152fae4c4",
"businessObjectId": "461644e6-3182-447c-af5a-1f2bbdc189d4",
"actionName": "award bonus kudos",
"actionType": "APPCONTEXT_SET_USER_METADATA",
"triggeringConditions": [
{
"inputFieldId": "ff32b716-e7bb-4b10-b093-d0963ca7de09",
"name": "uuid",
"inputValue": "student-01",
"operation": "ANY",
"thresholdValue": ""
show all 29 lines

CSV sample response

decisionId,ruleId,actionId,businessObjectId,actionName,actionType,triggeringConditions,outputValues,success,timestamp,errorMessage
5a99115a-0aee-463e-b672-5abdc7c9c2fc,ab4284e4-d9de-4c16-b265-d736d36a425a,a6318683-b304-4393-985d-6bf152fae4c4,461644e6-3182-447c-af5a-1f2bbdc189d4,award bonus kudos,APPCONTEXT_SET_USER_METADATA,"[{""inputFieldId"":""ff32b716-e7bb-4b10-b093-d0963ca7de09"",""name"":""uuid"",""inputValue"":""student-01"",""operation"":""ANY"",""thresholdValue"":""""}]","[{""outputFieldId"":""bd6163b3-3898-4a42-89e0-31fbc1b5ce7d"",""name"":""grade"",""value"":""A+""}]",true,2024-11-27T17:08:02.000Z,

Response field descriptions

The data returned with every Action History API response includes the following:

FieldDescription
decisionId
Unique ID PubNub assigns to each Illuminate Decision
ruleId
Unique ID PubNub assigns to each Illuminate Decision rule
actionId
Unique ID PubNub assigns to each Illuminate Decision action
businessObjectId
Unique ID PubNub assigns to each Illuminate Business Object
actionName
Name you assigned to the action
actionType
Type of action executed: WEBHOOK_EXECUTION, PUBNUB_PUBLISH, APPCONTEXT_SET_USER_METADATA, APPCONTEXT_SET_CHANNEL_METADATA, APPCONTEXT_SET_MEMBERSHIP_METADATA
triggeringConditions
List of conditions and values that triggered the action: inputFieldId - unique ID PubNub assigns to each condition, name - name you assigned to the condition, inputValue - actual value during runtime, operation - used together with the threshold value, thresholdValue
outputValues
Parameters tied to the selected action type
success
Success status. Indicates whether or not the action fired successfully. If the action was successful, "success": "true". If the action failed, "success": "false"
timestamp
Date and time when the action fired, e.g., 2024-11-28T15:40:13.000
errorMessage
Reason for when an action failed to execute. Empty string if no error

Dashboards

Dashboards visualize your metrics and optionally overlay decision triggers. Each chart displays one metric grouped by dimensions.

OperationHTTP MethodEndpoint
Create a dashboard
POST
/dashboards
List all dashboards
GET
/dashboards
Get a specific dashboard
GET
/dashboards/{id}
Update a dashboard
PUT
/dashboards/{id}
Delete a dashboard
DELETE
/dashboards/{id}

Create dashboard

Creates a new dashboard to visualize metrics with optional decision overlays.

Endpoint: POST /dashboards

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/dashboards

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

FieldTypeRequiredDescription
name
string
Yes
Dashboard title (max 50 characters).
charts
ChartDto[]
No
List of charts to display.
dateRange
enum
Yes
30 minutes, 1 hour, 24 hours, 3 days, 1 week, 30 days, 3 months, Custom date.
startDate
datetime
Conditional
Required when dateRange is Custom date.
endDate
datetime
Conditional
Required when dateRange is Custom date.
customerIds
string[]
No
Customer IDs (requires Partner Portal).

ChartDto

FieldTypeRequiredDescription
id
string
Conditional
Chart ID (required for updates).
metricId
string
Yes
ID of the metric to display.
viewType
enum
Yes
BAR, LINE, or STACKED.
size
enum
Yes
FULL or HALF.
showDecisions
boolean
No
Whether to display decision overlays.
dimensionIds
string[]
No
Default selected dimensions.
decisionIds
string[]
No
Decision IDs to overlay.

Sample Request

{
"name": "Test Dashboard for API",
"charts": [
{
"name": "DEMO - Average Failure Count by Device Type",
"metric": {
"id": "21583568-cb7b-4413-8166-f56d0cPNTEST"
},
"viewDateRange": "24 hours",
"viewType": "STACKED",
"size": "HALF",
"dimensionIds": [
"5c4e98b4-f6d7-497a-956b-7605c7PNTEST"
],
"decisionIds": [
show all 23 lines

Sample Response

{
"id": "cb51d7c1-223b-4025-9ffa-0b5be4PNTEST",
"name": "Test Dashboard for API",
"accountId": "123456",
"dateRange": "1 hour",
"startDate": "2025-08-21T20:15:48.059Z",
"endDate": "2025-08-21T21:15:48.059Z",
"charts": [
{
"accountId": "622497",
"id": "a989023f-4add-4498-91f0-98d1c5PNTEST",
"name": "DEMO - Average Failure Count by Device Type",
"viewType": "STACKED",
"metricId": "21583568-cb7b-4413-8166-f56d0cPNTEST",
"size": "HALF",
show all 29 lines

Response field descriptions

FieldDescription
id
Required in later requests to update, delete, or retrieve the dashboard.
charts[].id
Optional; only required if updating that chart directly within the dashboard.
charts[].metricId
Links to the metric displayed in the chart; required if you want to recreate or update this chart with the same metric.
charts[].dimensionIds
Field IDs used for grouping in the chart; may be reused in other metrics or dashboards.
charts[].showDecisions
Whether decision overlays are displayed on the chart.
charts[].metric
Optional nested object with details of the metric referenced by metricId.
charts[].accountId
Account ID associated with the chart.
decisionIds
If decisions are overlaid on the chart, these IDs must match decisions in the system.
accountId
Required for all API paths for your account.
createdAt/updatedAt
Metadata only; not required in other requests.

List dashboards

Returns a list of all dashboards for your account.

See also: Build your first dashboard → Create dashboard.

Endpoint: GET /dashboards

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/dashboards

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample Request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/dashboards' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample Response

Returns an array of dashboard objects as shown in the Create Dashboard sample response.

Get dashboard

Returns details for a specific dashboard.

Endpoint: GET /dashboards/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/dashboards/{id}

Parameters

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Dashboard ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample Request

curl --request GET \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/dashboards/cb51d7c1-223b-4025-9ffa-0b5be4PNTEST' \
--header 'Content-Type: application/json' \
--header 'X-Session-Token: <token>'

Sample Response

Returns the complete dashboard details as shown in the Create Dashboard sample response.

Update dashboard

Updates an existing dashboard configuration, time ranges, or decision overlays.

Endpoint: PUT /dashboards/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/dashboards/{id}

Parameters

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Dashboard ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Request body

Same as Create Dashboard request body.

Sample Request

{
"name": "Updated Dashboard Name",
"dateRange": "24 hours"
}

Delete dashboard

Deletes a dashboard.

Endpoint: DELETE /dashboards/{id}

Example: https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/dashboards/{id}

Visualization only

Deleting a dashboard removes only the visualization. Metrics and decisions remain.

Parameters

Path parameters

* required
ParameterDescription
accountId *
Type: string
Your PubNub account ID.
id *
Type: string
Dashboard ID.

Header parameters

* required
ParameterDescription
X-Session-Token *
Type: string
Your session authentication token.

Sample Request

curl --request DELETE \
--url 'https://admin.pubnub.com/api/illuminate/v1/accounts/123456/dashboards/cb51d7c1-223b-4025-9ffa-0b5be4PNTEST' \
--header 'X-Session-Token: <token>'

Response Definitions

Common Response Fields

All API responses include standard metadata fields:

FieldTypeDescription
id
string
PubNub-generated unique identifier.
accountId
string
Your PubNub account ID.
createdAt
datetime
Creation timestamp (ISO 8601).
updatedAt
datetime
Last update timestamp (ISO 8601).
createdBy
string
Email of the creator.
updatedBy
string
Email of the last updater.

Action Types

The following action types are supported for decisions:

Action TypeDescription
PUBNUB_PUBLISH
Publish a message to a PubNub channel.
WEBHOOK_EXECUTION
Make an HTTP request to an external endpoint.
APPCONTEXT_SET_USER_METADATA
Update PubNub App Context user metadata.
APPCONTEXT_SET_CHANNEL_METADATA
Update PubNub App Context channel metadata.
APPCONTEXT_SET_MEMBERSHIP_METADATA
Update PubNub App Context membership metadata.

Evaluation Windows

Metrics support the following evaluation windows (in seconds):

WindowDuration
60
1 minute
300
5 minutes
600
10 minutes
900
15 minutes
1800
30 minutes
3600
1 hour
86400
1 day

Error Codes

The Illuminate API returns standard HTTP status codes:

CodeDescription
200
Success
201
Created (successful resource creation)
400
Bad Request (invalid parameters)
401
Unauthorized (authentication required)
403
Forbidden (access denied)
404
Not Found (resource doesn't exist)
422
Unprocessable Entity (too many records found)
500
Internal Server Error

Sample Error Response

{
"errors": [
{
"queryString": "format",
"message": "Invalid value for 'format' query string parameter. Value must be 'csv' or 'json'."
},
{
"queryString": "startDate",
"message": "Invalid value for 'startDate' query string parameter. Value must be a valid date in ISO 8601 format and without milliseconds precision."
}
]
}

Additional Resources

Last updated on