v3.24.1

Getting Started Devices Gateways Integrations Reference
Get The Things Stack

Reference

    Overview
  • Adaptive Data Rate
  • API
    • Authentication
    • Fields and Field Masks
    • Application APIs
    • Application Package APIs
    • Application Pub/Sub APIs
    • Application Server APIs
    • Application Webhook APIs
    • Client APIs
    • End Device APIs
    • Events API
    • Gateway APIs
    • Gateway Server APIs
    • Gateway Server MQTT
    • Network Operations Center APIs
    • Network Server APIs
    • Organization APIs
    • Storage Integration API
    • Tenant APIs
    • User APIs
  • Application Packages
  • Billing with Stripe
  • Command-Line Interface
  • Components
  • Configuration
  • Data Formats
  • Data Retention and Privacy
  • Device Claiming Configuration
  • Email Templates
  • Federated Authentication
  • Frequency Plans
  • FUOTA
  • Gateway RTT
  • Glossary
  • ID and EUI Constraints
  • Last Activity
  • LoRa Basics Station Implementation Guide
  • LoRaWAN Join Server Configuration
  • LoRaWAN Specification and Regional Parameters
  • Networking
  • Packet Broker Routing
  • Packet Forwarders
  • Purging Entities
  • Rate Limiting
  • Resource Limiting
  • Root Certificates
  • Telemetry
  • Tenant Management
  • Web UI Branding

Events API

The Events service

Method Events.Stream
Description Stream live events, optionally with a tail of historical events (depending on server support and retention policy). Events may arrive out-of-order.
Request type StreamEventsRequest
Response type Stream of Event
The HTTP API uses Content-Type: text/event-stream
and a response body of newline-delimited JSON.
Make sure to send Accept: text/event-stream in the request.
HTTP bindings

POST /api/v3/events

Messages

Message EntityIdentifiers

EntityIdentifiers contains one of the possible entity identifiers.

Restrictions:
  • Only one of application_ids, client_ids, device_ids, gateway_ids, organization_ids, user_ids can be set.
Show object example
{
  "application_ids": {},
  "client_ids": {},
  "device_ids": {},
  "gateway_ids": {},
  "organization_ids": {},
  "user_ids": {},
}

Fields:

Field application_ids
Type ApplicationIdentifiers
Field client_ids
Type ClientIdentifiers
Field device_ids
Type EndDeviceIdentifiers
Field gateway_ids
Type GatewayIdentifiers
Field organization_ids
Type OrganizationIdentifiers
Field user_ids
Type UserIdentifiers

Message ApplicationIdentifiers

Show object example
{
  "application_id": "",
}

Fields:

Field application_id
Type string
Description

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$

Message ClientIdentifiers

Show object example
{
  "client_id": "",
}

Fields:

Field client_id
Type string
Description

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$

Message EndDeviceIdentifiers

Show object example
{
  "device_id": "",
  "application_ids": {},
  "dev_eui": "",
  "join_eui": "",
  "dev_addr": "",
}

Fields:

Field device_id
Type string
Description

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$

Field application_ids
Type ApplicationIdentifiers
Description

required

Field dev_eui
Type bytes
Description

The LoRaWAN DevEUI.

ignore_empty

len: 8

Field join_eui
Type bytes
Description

The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).

ignore_empty

len: 8

Field dev_addr
Type bytes
Description

The LoRaWAN DevAddr.

ignore_empty

len: 4

Message GatewayIdentifiers

Show object example
{
  "gateway_id": "",
  "eui": "",
}

Fields:

Field gateway_id
Type string
Description

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$

Field eui
Type bytes
Description

Secondary identifier, which can only be used in specific requests.

ignore_empty

len: 8

Message OrganizationIdentifiers

Show object example
{
  "organization_id": "",
}

Fields:

Field organization_id
Type string
Description

This ID shares namespace with user IDs.

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){2,}$

Message UserIdentifiers

Show object example
{
  "user_id": "",
  "email": "",
}

Fields:

Field user_id
Type string
Description

This ID shares namespace with organization IDs.

max_len: 36

pattern: ^[a-z0-9](?:[-]?[a-z0-9]){1,}$

Field email
Type string
Description

Secondary identifier, which can only be used in specific requests.

Message Event

Show object example
{
  "name": "",
  "time": "0001-01-01T00:00:00Z",
  "identifiers": [],
  "data": null,
  "correlation_ids": [],
  "origin": "",
  "context": {},
  "visibility": {},
  "authentication": {},
  "remote_ip": "",
  "user_agent": "",
  "unique_id": "",
}

Fields:

Field name
Type string
Description

Name of the event. This can be used to find the (localized) event description.

Field time
Type google.protobuf. Timestamp
Description

Time at which the event was triggered.

required

Field identifiers
Type repeated EntityIdentifiers
Description

Identifiers of the entity (or entities) involved.

Field data
Type google.protobuf. Any
Description

Optional data attached to the event.

Field correlation_ids
Type repeated string
Description

Correlation IDs can be used to find related events and actions such as API calls.

max_len: 100

Field origin
Type string
Description

The origin of the event. Typically the hostname of the server that created it.

Field context
Type map of string to bytes
Description

Event context, internal use only.

Field visibility
Type Rights
Description

The event will be visible to a caller that has any of these rights.

Field authentication
Type Event.Authentication
Description

Details on the authentication provided by the caller that triggered this event.

Field remote_ip
Type string
Description

The IP address of the caller that triggered this event.

Field user_agent
Type string
Description

The IP address of the caller that triggered this event.

Field unique_id
Type string
Description

The unique identifier of the event, assigned on creation.

Message Event.Authentication

Show object example
{
  "type": "",
  "token_type": "",
  "token_id": "",
}

Fields:

Field type
Type string
Description

The type of authentication that was used. This is typically a bearer token.

Field token_type
Type string
Description

The type of token that was used. Common types are APIKey, AccessToken and SessionToken.

Field token_id
Type string
Description

The ID of the token that was used.

Message StreamEventsRequest

Show object example
{
  "identifiers": [],
  "tail": 0,
  "after": "0001-01-01T00:00:00Z",
  "names": [],
}

Fields:

Field identifiers
Type repeated EntityIdentifiers
Description
Field tail
Type uint32
Description

If greater than zero, this will return historical events, up to this maximum when the stream starts. If used in combination with “after”, the limit that is reached first, is used. The availability of historical events depends on server support and retention policy.

Field after
Type google.protobuf. Timestamp
Description

If not empty, this will return historical events after the given time when the stream starts. If used in combination with “tail”, the limit that is reached first, is used. The availability of historical events depends on server support and retention policy.

Field names
Type repeated string
Description

If provided, this will filter events, so that only events with the given names are returned. Names can be provided as either exact event names (e.g. ‘gs.up.receive’), or as regular expressions (e.g. ‘/^gs..+/’).

Message Rights

Show object example
{
  "rights": [],
}

Fields:

Field rights
Type repeated Right
Description

defined_only

Enums

Enum Right

Right is the enum that defines all the different rights to do something in the network.

Name Value Description
right_invalid 0
RIGHT_USER_INFO 1 The right to view user information.
RIGHT_USER_SETTINGS_BASIC 2 The right to edit basic user settings.
RIGHT_USER_SETTINGS_API_KEYS 3 The right to view and edit user API keys.
RIGHT_USER_DELETE 4 The right to delete user account.
RIGHT_USER_AUTHORIZED_CLIENTS 5 The right to view and edit authorized OAuth clients of the user.
RIGHT_USER_APPLICATIONS_LIST 6 The right to list applications the user is a collaborator of.
RIGHT_USER_APPLICATIONS_CREATE 7 The right to create an application under the user account.
RIGHT_USER_GATEWAYS_LIST 8 The right to list gateways the user is a collaborator of.
RIGHT_USER_GATEWAYS_CREATE 9 The right to create a gateway under the account of the user.
RIGHT_USER_CLIENTS_LIST 10 The right to list OAuth clients the user is a collaborator of.
RIGHT_USER_CLIENTS_CREATE 11 The right to create an OAuth client under the account of the user.
RIGHT_USER_ORGANIZATIONS_LIST 12 The right to list organizations the user is a member of.
RIGHT_USER_ORGANIZATIONS_CREATE 13 The right to create an organization under the user account.
RIGHT_USER_NOTIFICATIONS_READ 59 The right to read notifications sent to the user.
RIGHT_USER_ALL 14 The pseudo-right for all (current and future) user rights.
RIGHT_APPLICATION_INFO 15 The right to view application information.
RIGHT_APPLICATION_SETTINGS_BASIC 16 The right to edit basic application settings.
RIGHT_APPLICATION_SETTINGS_API_KEYS 17 The right to view and edit application API keys.
RIGHT_APPLICATION_SETTINGS_COLLABORATORS 18 The right to view and edit application collaborators.
RIGHT_APPLICATION_SETTINGS_PACKAGES 56 The right to view and edit application packages and associations.
RIGHT_APPLICATION_DELETE 19 The right to delete application.
RIGHT_APPLICATION_DEVICES_READ 20 The right to view devices in application.
RIGHT_APPLICATION_DEVICES_WRITE 21 The right to create devices in application.
RIGHT_APPLICATION_DEVICES_READ_KEYS 22 The right to view device keys in application. Note that keys may not be stored in a way that supports viewing them.
RIGHT_APPLICATION_DEVICES_WRITE_KEYS 23 The right to edit device keys in application.
RIGHT_APPLICATION_TRAFFIC_READ 24 The right to read application traffic (uplink and downlink).
RIGHT_APPLICATION_TRAFFIC_UP_WRITE 25 The right to write uplink application traffic.
RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE 26 The right to write downlink application traffic.
RIGHT_APPLICATION_LINK 27 The right to link as Application to a Network Server for traffic exchange, i.e. read uplink and write downlink (API keys only). This right is typically only given to an Application Server. This right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ, and RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.
RIGHT_APPLICATION_ALL 28 The pseudo-right for all (current and future) application rights.
RIGHT_CLIENT_ALL 29 The pseudo-right for all (current and future) OAuth client rights.
RIGHT_CLIENT_INFO 60 The right to read client information.
RIGHT_CLIENT_SETTINGS_BASIC 61 The right to edit basic client settings.
RIGHT_CLIENT_SETTINGS_COLLABORATORS 62 The right to view and edit client collaborators.
RIGHT_CLIENT_DELETE 63 The right to delete a client.
RIGHT_GATEWAY_INFO 30 The right to view gateway information.
RIGHT_GATEWAY_SETTINGS_BASIC 31 The right to edit basic gateway settings.
RIGHT_GATEWAY_SETTINGS_API_KEYS 32 The right to view and edit gateway API keys.
RIGHT_GATEWAY_SETTINGS_COLLABORATORS 33 The right to view and edit gateway collaborators.
RIGHT_GATEWAY_DELETE 34 The right to delete gateway.
RIGHT_GATEWAY_TRAFFIC_READ 35 The right to read gateway traffic.
RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE 36 The right to write downlink gateway traffic.
RIGHT_GATEWAY_LINK 37 The right to link as Gateway to a Gateway Server for traffic exchange, i.e. write uplink and read downlink (API keys only) This right is typically only given to a gateway. This right implies RIGHT_GATEWAY_INFO.
RIGHT_GATEWAY_STATUS_READ 38 The right to view gateway status.
RIGHT_GATEWAY_LOCATION_READ 39 The right to view view gateway location.
RIGHT_GATEWAY_WRITE_SECRETS 57 The right to store secrets associated with this gateway.
RIGHT_GATEWAY_READ_SECRETS 58 The right to retrieve secrets associated with this gateway.
RIGHT_GATEWAY_ALL 40 The pseudo-right for all (current and future) gateway rights.
RIGHT_ORGANIZATION_INFO 41 The right to view organization information.
RIGHT_ORGANIZATION_SETTINGS_BASIC 42 The right to edit basic organization settings.
RIGHT_ORGANIZATION_SETTINGS_API_KEYS 43 The right to view and edit organization API keys.
RIGHT_ORGANIZATION_SETTINGS_MEMBERS 44 The right to view and edit organization members.
RIGHT_ORGANIZATION_DELETE 45 The right to delete organization.
RIGHT_ORGANIZATION_APPLICATIONS_LIST 46 The right to list the applications the organization is a collaborator of.
RIGHT_ORGANIZATION_APPLICATIONS_CREATE 47 The right to create an application under the organization.
RIGHT_ORGANIZATION_GATEWAYS_LIST 48 The right to list the gateways the organization is a collaborator of.
RIGHT_ORGANIZATION_GATEWAYS_CREATE 49 The right to create a gateway under the organization.
RIGHT_ORGANIZATION_CLIENTS_LIST 50 The right to list the OAuth clients the organization is a collaborator of.
RIGHT_ORGANIZATION_CLIENTS_CREATE 51 The right to create an OAuth client under the organization.
RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR 52 The right to add the organization as a collaborator on an existing entity.
RIGHT_ORGANIZATION_ALL 53 The pseudo-right for all (current and future) organization rights.
RIGHT_SEND_INVITES 54 The right to send invites to new users. Note that this is not prefixed with “USER_”; it is not a right on the user entity.
RIGHT_ALL 55 The pseudo-right for all (current and future) possible rights.

Events

Event application.api-key.create

create application API key

Event application.api-key.delete

delete application API key

Event application.api-key.update

update application API key

Event application.collaborator.delete

delete application collaborator

Event application.collaborator.update

update application collaborator

Event application.create

create application

Event application.delete

delete application

Event application.update

update application

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event as.application.subscribe

subscribe application

Event as.application.unsubscribe

unsubscribe application

Event as.down.data.decode.fail

decode downlink data message failure

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.down.data.decode.warning

decode downlink data message warning

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationDownlink"
}

Event as.down.data.drop

drop downlink data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.down.data.encode.fail

encode downlink data message failure

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.down.data.encode.warning

encode downlink data message warning

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationDownlink"
}

Event as.down.data.forward

forward downlink data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationDownlink"
}

Event as.down.data.queue.invalid

invalid downlink data queue

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.down.data.queue.lost

lose downlink data queue

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.down.data.receive

receive downlink data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationDownlink"
}

Event as.end_device.create

create end device

Event as.end_device.delete

delete end device

Event as.end_device.update

update end device

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event as.link.fail

fail link

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.link.start

start link

Event as.link.stop

stop link

Event as.pubsub.delete

delete pub/sub

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationPubSubIdentifiers",
  "application_ids": {
    "application_id": "application-id"
  },
  "pub_sub_id": "pubsub-id"
}

Event as.pubsub.fail

fail pub/sub

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.pubsub.set

set pub/sub

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationPubSubIdentifiers",
  "application_ids": {
    "application_id": "application-id"
  },
  "pub_sub_id": "pubsub-id"
}

Event as.pubsub.start

start pub/sub

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationPubSubIdentifiers",
  "application_ids": {
    "application_id": "application-id"
  },
  "pub_sub_id": "pubsub-id"
}

Event as.pubsub.stop

stop pub/sub

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationPubSubIdentifiers",
  "application_ids": {
    "application_id": "application-id"
  },
  "pub_sub_id": "pubsub-id"
}

Event as.up.data.decode.fail

decode uplink data message failure

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.up.data.decode.warning

decode uplink data message warning

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUplink",
  "received_at": "0001-01-01T00:00:00Z",
  "settings": {
    "data_rate": {}
  }
}

Event as.up.data.drop

drop uplink data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.up.data.forward

forward uplink data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
  "end_device_ids": {
    "application_ids": {}
  }
}

Event as.up.data.receive

receive uplink data message

Event as.up.join.drop

drop join-accept message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event as.up.join.forward

forward join-accept message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
  "end_device_ids": {
    "application_ids": {}
  }
}

Event as.up.join.receive

receive join-accept message

Event client.collaborator.delete

delete client collaborator

Event client.collaborator.update

update client collaborator

Event client.create

create OAuth client

Event client.delete

delete OAuth client

Event client.update

update OAuth client

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event dcs.end_device.claim.abort

claim end device abort

Event dcs.end_device.claim.fail

claim end device fail

Event dcs.end_device.claim.success

claim end device successful

Event end_device.create

create end device

Event end_device.delete

delete end device

Event end_device.update

update end device

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event gateway.api-key.create

create gateway API key

Event gateway.api-key.delete

delete gateway API key

Event gateway.api-key.update

update gateway API key

Event gateway.collaborator.delete

delete gateway collaborator

Event gateway.collaborator.update

update gateway collaborator

Event gateway.create

create gateway

Event gateway.delete

delete gateway

Event gateway.update

update gateway

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event gs.down.send

send downlink message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.DownlinkMessage"
}

Event gs.down.tx.fail

transmit downlink message failure

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": 4
}

Event gs.down.tx.success

transmit downlink message successful

Event gs.gateway.connect

connect gateway

Event gs.gateway.disconnect

disconnect gateway

Event gs.status.drop

drop gateway status

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event gs.status.fail

fail to handle gateway status

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event gs.status.forward

forward gateway status

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.GatewayStatus",
  "boot_time": "0001-01-01T00:00:00Z",
  "time": "0001-01-01T00:00:00Z"
}

Event gs.status.receive

receive gateway status

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.GatewayStatus",
  "boot_time": "0001-01-01T00:00:00Z",
  "time": "0001-01-01T00:00:00Z"
}

Event gs.up.drop

drop uplink message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event gs.up.fail

fail to handle uplink message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event gs.up.forward

forward uplink message

Event gs.up.receive

receive uplink message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.UplinkMessage",
  "received_at": "0001-01-01T00:00:00Z",
  "settings": {
    "data_rate": {}
  }
}

Event invitation.create

create invitation

Event js.end_device.create

create end device

Event js.end_device.delete

delete end device

Event js.end_device.update

update end device

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event js.join.accept

accept join-request

Event js.join.reject

reject join-request

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.application.link.begin

begin application link

Event ns.application.link.end

end application link

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.class.switch.a

switched to class A

Event ns.class.switch.b

switched to class B

Event ns.class.switch.c

switched to class C

Event ns.down.data.schedule.attempt

schedule data downlink for transmission on Gateway Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.DownlinkMessage"
}

Event ns.down.data.schedule.fail

failed to schedule data downlink for transmission on Gateway Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.down.data.schedule.success

successfully scheduled data downlink for transmission on Gateway Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ScheduleDownlinkResponse"
}

Event ns.down.join.schedule.attempt

schedule join-accept for transmission on Gateway Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.DownlinkMessage"
}

Event ns.down.join.schedule.fail

failed to schedule join-accept for transmission on Gateway Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.down.join.schedule.success

successfully scheduled join-accept for transmission on Gateway Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ScheduleDownlinkResponse"
}

Event ns.end_device.create

create end device

Event ns.end_device.delete

delete end device

Event ns.end_device.update

update end device

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event ns.mac.adr_param_setup.answer

ADR parameter setup answer received

Event ns.mac.adr_param_setup.request

ADR parameter setup request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.ADRParamSetupReq"
}

Event ns.mac.beacon_freq.answer.accept

beacon frequency change accept received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.BeaconFreqAns"
}

Event ns.mac.beacon_freq.answer.reject

beacon frequency change rejection received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.BeaconFreqAns"
}

Event ns.mac.beacon_freq.request

beacon frequency change request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.BeaconFreqReq"
}

Event ns.mac.dev_status.answer

device status answer received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.DevStatusAns"
}

Event ns.mac.dev_status.request

device status request enqueued

Event ns.mac.device_mode.confirmation

device mode confirmation enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.DeviceModeConf"
}

Event ns.mac.device_mode.indication

device mode indication received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.DeviceModeInd"
}

Event ns.mac.device_time.answer

device time answer enqueued

Event ns.mac.device_time.request

device time request received

Event ns.mac.dl_channel.answer.accept

downlink Rx1 channel frequency modification accept received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.DLChannelAns"
}

Event ns.mac.dl_channel.answer.reject

downlink Rx1 channel frequency modification rejection received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.DLChannelAns"
}

Event ns.mac.dl_channel.request

downlink Rx1 channel frequency modification request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.DLChannelReq"
}

Event ns.mac.duty_cycle.answer

maximum aggregated transmit duty-cycle change answer received

Event ns.mac.duty_cycle.request

maximum aggregated transmit duty-cycle change request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.DutyCycleReq"
}

Event ns.mac.force_rejoin.request

force rejoin request enqueued

Event ns.mac.link_adr.answer.accept

link ADR accept received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.LinkADRAns"
}

Event ns.mac.link_adr.answer.reject

link ADR rejection received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.LinkADRAns"
}

Event ns.mac.link_adr.request

link ADR request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.LinkADRReq"
}

Event ns.mac.link_check.answer

link check answer enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.LinkCheckAns"
}

Event ns.mac.link_check.request

link check request received

Event ns.mac.new_channel.answer.accept

new channel accept received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.NewChannelAns"
}

Event ns.mac.new_channel.answer.reject

new channel rejection received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.NewChannelAns"
}

Event ns.mac.new_channel.request

new channel request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.NewChannelReq"
}

Event ns.mac.ping_slot_channel.answer.accept

ping slot channel accept received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.PingSlotChannelAns"
}

Event ns.mac.ping_slot_channel.request

ping slot channel request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.PingSlotChannelReq"
}

Event ns.mac.ping_slot_info.answer

ping slot info answer enqueued

Event ns.mac.ping_slot_info.request

ping slot info request received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.PingSlotInfoReq"
}

Event ns.mac.proprietary.receive

receive proprietary MAC command

Event ns.mac.rejoin_param_setup.answer

rejoin parameter setup answer received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RejoinParamSetupAns"
}

Event ns.mac.rejoin_param_setup.request

rejoin parameter setup request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RejoinParamSetupReq"
}

Event ns.mac.rekey.confirmation

device rekey confirmation enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RekeyConf"
}

Event ns.mac.rekey.indication

device rekey indication received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RekeyInd"
}

Event ns.mac.reset.confirmation

device reset confirmation enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.ResetConf"
}

Event ns.mac.reset.indication

device reset indication received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.ResetInd"
}

Event ns.mac.rx_param_setup.answer.accept

Rx parameter setup accept received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RxParamSetupAns"
}

Event ns.mac.rx_param_setup.answer.reject

Rx parameter setup rejection received

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RxParamSetupAns"
}

Event ns.mac.rx_param_setup.request

Rx parameter setup request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RxParamSetupReq"
}

Event ns.mac.rx_timing_setup.answer

Rx timing setup answer received

Event ns.mac.rx_timing_setup.request

Rx timing setup request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.RxTimingSetupReq"
}

Event ns.mac.tx_param_setup.answer

Tx parameter setup answer received

Event ns.mac.tx_param_setup.request

Tx parameter setup request enqueued

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.MACCommand.TxParamSetupReq"
}

Event ns.up.data.drop

drop data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.up.data.forward

forward data message to Application Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
  "end_device_ids": {
    "application_ids": {}
  },
  "uplink_message": {
    "received_at": "0001-01-01T00:00:00Z",
    "settings": {
      "data_rate": {}
    }
  }
}

Event ns.up.data.process

successfully processed data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.UplinkMessage",
  "received_at": "0001-01-01T00:00:00Z",
  "settings": {
    "data_rate": {}
  }
}

Event ns.up.data.receive

receive data message

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.UplinkMessage",
  "received_at": "0001-01-01T00:00:00Z",
  "settings": {
    "data_rate": {}
  }
}

Event ns.up.join.accept.forward

forward join-accept to Application Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ApplicationUp",
  "end_device_ids": {
    "application_ids": {}
  },
  "join_accept": {
    "received_at": "0001-01-01T00:00:00Z"
  }
}

Event ns.up.join.cluster.attempt

send join-request to cluster-local Join Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.JoinRequest",
  "dev_addr": "00000000",
  "downlink_settings": {},
  "net_id": "000000"
}

Event ns.up.join.cluster.fail

join-request to cluster-local Join Server failed

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.up.join.cluster.success

join-request to cluster-local Join Server succeeded

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.JoinResponse",
  "session_keys": {}
}

Event ns.up.join.drop

drop join-request

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.up.join.interop.attempt

forward join-request to interoperability Join Server

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.JoinRequest",
  "dev_addr": "00000000",
  "downlink_settings": {},
  "net_id": "000000"
}

Event ns.up.join.interop.fail

join-request to interoperability Join Server failed

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
  "attributes": {
    "attr_name": "attr_value"
  },
  "code": 2,
  "message_format": "example error for `{attr_name}`",
  "name": "example",
  "namespace": "pkg/example"
}

Event ns.up.join.interop.success

join-request to interoperability Join Server succeeded

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.JoinResponse",
  "session_keys": {}
}

Event ns.up.join.process

successfully processed join-request

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.UplinkMessage",
  "received_at": "0001-01-01T00:00:00Z",
  "settings": {
    "data_rate": {}
  }
}

Event ns.up.join.receive

receive join-request

Show example of data field
{
  "@type": "type.googleapis.com/ttn.lorawan.v3.UplinkMessage",
  "received_at": "0001-01-01T00:00:00Z",
  "settings": {
    "data_rate": {}
  }
}

Event oauth.authorize

authorize OAuth client

Event oauth.token.exchange

exchange OAuth access token

Event oauth.user.login

login user successful

Event oauth.user.login_failed

login user failure

Event oauth.user.logout

logout user

Event organization.api-key.create

create organization API key

Event organization.api-key.delete

delete organization API key

Event organization.api-key.update

update organization API key

Event organization.collaborator.delete

delete organization collaborator

Event organization.collaborator.update

update organization collaborator

Event organization.create

create organization

Event organization.delete

delete organization

Event organization.update

update organization

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event user.api-key.create

create user API key

Event user.api-key.delete

delete user API key

Event user.api-key.update

update user API key

Event user.create

create user

Event user.delete

delete user

Event user.update

update user

Show example of data field
{
  "@type": "type.googleapis.com/google.protobuf.Value",
  "value": [
    "list.of",
    "updated.fields"
  ]
}

Event user.update.incorrect_password

update user failure: incorrect password

← End Device APIs Gateway APIs →

On this page

  • The Events service
  • Messages
  • Enums
  • Events

The Things Stack

Getting Started

Devices

Gateways

Integrations

Reference

Contributing

GitHub

Forum

About Us

The Things Network

The Things Industries

About this page

Last changed by Ben Olayinka on 16 Aug 2021.
Improve description of field masks in API documentation (#475)

Edit on Github