Top
| Field | Type | Label | Description |
| id | string | | Application ID (UUID). Note: on create this will be automatically generated. |
| name | string | | Application name. |
| description | string | | Application description. |
| tenant_id | string | | Tenant ID (UUID). |
| tags | Application.TagsEntry | repeated | Tags (user defined). These tags can be used to add additional information to the application. These tags are exposed in all the integration events of devices under this application. |
| Field | Type | Label | Description |
| id | string | | Device-profile ID (UUID). |
| name | string | | Name. |
| Field | Type | Label | Description |
| key | string | | Tag key. |
| values | string | repeated | Used values. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| encoding | Encoding | | Encoding. |
| region | string | | AWS region. |
| access_key_id | string | | AWS Access Key ID. |
| secret_access_key | string | | AWS Secret Access Key. |
| topic_arn | string | | Topic ARN. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| encoding | Encoding | | Encoding. |
| connection_string | string | | Connection string. |
| publish_name | string | | Publish name. This is the name of the topic or queue. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| token | string | | Blynk integration token. |
| Field | Type | Label | Description |
| application | Application | | Application object to create. |
| Field | Type | Label | Description |
| id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| integration | BlynkIntegration | | Integration object to create. |
| Field | Type | Label | Description |
| integration | HttpIntegration | | Integration object to create. |
| Field | Type | Label | Description |
| id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| encoding | Encoding | | Encoding. |
| credentials_file | string | | Credentials file. This IAM service-account credentials file (JSON) must have the following Pub/Sub roles: * Pub/Sub Publisher |
| project_id | string | | Project ID. |
| topic_name | string | | Topic name. This is the name of the Pub/Sub topic. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application | Application | | Application object. |
| created_at | google.protobuf.Timestamp | | Created at timestamp. |
| updated_at | google.protobuf.Timestamp | | Last update timestamp. |
| measurement_keys | string | repeated | Measurement keys. This contains the measurement keys from all the device-profiles that are used by the devices under this application. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| headers | HttpIntegration.HeadersEntry | repeated | HTTP headers to set when making requests. |
| encoding | Encoding | | Payload encoding. |
| event_endpoint_url | string | | Event endpoint URL. The HTTP integration will POST all events to this enpoint. The request will contain a query parameters "event" containing the type of the event. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| key | string | | Key. This key can be obtained from the IFTTT Webhooks documentation page. |
| uplink_values | string | repeated | Values. Up to 2 values can be forwarded to IFTTT. These values must map to the decoded payload keys. For example: { "batteryLevel": 75.3, "buttons": [{"pressed": false}, {"pressed": true}] } You would specify the following fields: uplink_values = ["batteryLevel", "buttons_0_pressed"] |
Notes: The first value is always used for the DevEUI. Ignored if arbitrary_json is set to true. |
| arbitrary_json | bool | | Arbitrary JSON. If set to true, ChirpStack events will be sent as-is as arbitrary JSON payload. If set to false (default), the 3 JSON values format will be used. |
| event_prefix | string | | Event prefix. If set, the event name will be PREFIX_EVENT. For example if event_prefix is set to weatherstation, and uplink event will be sent as weatherstation_up to the IFTTT webhook. Note: Only characters in the A-Z, a-z and 0-9 range are allowed. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| endpoint | string | | InfluxDb API write endpoint (e.g. http://localhost:8086/write). |
| db | string | | InfluxDb database name. (InfluxDb v1) |
| username | string | | InfluxDb username. (InfluxDb v1) |
| password | string | | InfluxDb password. (InfluxDb v1) |
| retention_policy_name | string | | InfluxDb retention policy name. (InfluxDb v1) |
| precision | InfluxDbPrecision | | InfluxDb timestamp precision (InfluxDb v1). |
| version | InfluxDbVersion | | InfluxDb version. |
| token | string | | Token. (InfluxDb v2) |
| organization | string | | Organization. (InfluxDb v2) |
| bucket | string | | Bucket. (InfluxDb v2) |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of applications to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| search | string | | If set, the given string will be used to search on name (optional). |
| tenant_id | string | | Tenant ID to list the applications for. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| total_count | uint32 | | Total number of integrations available within the result-set. |
| result | IntegrationListItem | repeated | Integrations within result-set. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| endpoint | string | | myDevices API endpoint. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| server | string | | Server URL. |
| token | string | | Authentication token. |
| Field | Type | Label | Description |
| application_id | string | | Application ID (UUID). |
| server | string | | ThingsBoard server endpoint, e.g. https://example.com |
| Field | Type | Label | Description |
| application | Application | | Application object. |
| Field | Type | Label | Description |
| integration | BlynkIntegration | | Integration object to update. |
| Field | Type | Label | Description |
| integration | HttpIntegration | | Integration object to update. |
| Field | Type | Label | Description |
| integration | IftttIntegration | | Integration object to update. |
| Name | Number | Description |
| JSON | 0 | |
| PROTOBUF | 1 | |
| Name | Number | Description |
| NS | 0 | |
| U | 1 | |
| MS | 2 | |
| S | 3 | |
| M | 4 | |
| H | 5 | |
| Name | Number | Description |
| INFLUXDB_1 | 0 | |
| INFLUXDB_2 | 1 | |
| INFLUXDB_3 | 2 | |
| Name | Number | Description |
| HTTP | 0 | |
| INFLUX_DB | 1 | |
| THINGS_BOARD | 2 | |
| MY_DEVICES | 3 | |
| GCP_PUB_SUB | 5 | |
| AWS_SNS | 6 | |
| AZURE_SERVICE_BUS | 7 | |
| PILOT_THINGS | 8 | |
| MQTT_GLOBAL | 9 | |
| IFTTT | 10 | |
| BLYNK | 11 | |
ApplicationService is the service providing API methods for managing
applications.
Top
| Field | Type | Label | Description |
| device_activation | DeviceActivation | | Device activation object. |
| Field | Type | Label | Description |
| device_keys | DeviceKeys | | Device-keys object. |
| Field | Type | Label | Description |
| device | Device | | Device object. |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| name | string | | Name. |
| description | string | | Description. |
| application_id | string | | Application ID (UUID). |
| device_profile_id | string | | Device-profile ID (UUID). |
| skip_fcnt_check | bool | | Skip frame-counter checks (this is insecure, but could be helpful for debugging). |
| is_disabled | bool | | Device is disabled. |
| variables | Device.VariablesEntry | repeated | Variables (user defined). These variables can be used together with integrations to store tokens / secrets that must be configured per device. These variables are not exposed in the event payloads. |
| tags | Device.TagsEntry | repeated | Tags (user defined). These tags can be used to add additional information to the device. These tags are exposed in all the integration events. |
| join_eui | string | | JoinEUI (optional, EUI64). This field will be automatically set / updated on OTAA. However, in some cases it must be pre-configured. For example to allow OTAA using a Relay. In this case the Relay needs to know the JoinEUI + DevEUI combinations of the devices for which it needs to forward uplinks. |
| Field | Type | Label | Description |
| dev_eui | string | | Device EUI (EUI64). |
| dev_addr | string | | Device address (HEX encoded). |
| app_s_key | string | | Application session key (HEX encoded). |
| nwk_s_enc_key | string | | Network session encryption key (HEX encoded). Note: For LoRaWAN 1.0.x devices, set this to the NwkSKey. |
| s_nwk_s_int_key | string | | Serving network session integrity key (HEX encoded). Note: For LoRaWAN 1.0.x devices, set this to the NwkSKey. |
| f_nwk_s_int_key | string | | Forwarding network session integrity key (HEX encoded). Note: For LoRaWAN 1.0.x devices, set this to the NwkSKey. |
| f_cnt_up | uint32 | | Uplink frame-counter. |
| n_f_cnt_down | uint32 | | Downlink network frame-counter. |
| a_f_cnt_down | uint32 | | Downlink application frame-counter. |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| nwk_key | string | | Network root key (128 bit). Note: For LoRaWAN 1.0.x, use this field for the LoRaWAN 1.0.x 'AppKey`! |
| app_key | string | | Application root key (128 bit). Note: This field only needs to be set for LoRaWAN 1.1.x devices! |
| gen_app_key | string | | Gen App Key (128 bit). Note: This field only needs to be set for LoRaWAN 1.0.x devices that implement TS005 (remote multicast setup). |
| Field | Type | Label | Description |
| id | string | | ID (UUID). This is automatically generated on enqueue. |
| dev_eui | string | | Device EUI (EUI64). |
| confirmed | bool | | Confirmed. |
| f_port | uint32 | | FPort (must be > 0). On enqueue and if using a JavaScript codec, this value might be automatically set by the codec function. |
| data | bytes | | Data. Or use the json_object field when a codec has been configured. |
| object | google.protobuf.Struct | | Only use this when a codec has been configured that can encode this object to bytes. |
| is_pending | bool | | Is pending. This is set by ChirpStack to true when the downlink is pending (e.g. it has been sent, but a confirmation is still pending). |
| f_cnt_down | uint32 | | Downlink frame-counter. Do not set this for plain-text data payloads. It will be automatically set by ChirpStack when the payload has been sent as downlink. |
| is_encrypted | bool | | Is encrypted. This must be set to true if the end-application has already encrypted the data payload. In this case, the f_cnt_down field must be set to the corresponding frame-counter which has been used during the encryption. |
| expires_at | google.protobuf.Timestamp | | Expires at (optional). Expired queue-items will be automatically removed from the queue. |
| Field | Type | Label | Description |
| margin | int32 | | The device margin status -32..32: The demodulation SNR ration in dB |
| external_power_source | bool | | Device is connected to an external power source. |
| battery_level | float | | Device battery level as a percentage. -1 when the battery level is not available. |
| Field | Type | Label | Description |
| queue_item | DeviceQueueItem | | Item to enqueue. |
| flush_queue | bool | | Flush queue before enqueue. |
| Field | Type | Label | Description |
| id | string | | ID (UUID). |
| Field | Type | Label | Description |
| dev_eui | string | | Device EUI (EUI64). |
| Field | Type | Label | Description |
| dev_eui | string | | Device EUI (EUI64). |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| Field | Type | Label | Description |
| device_activation | DeviceActivation | | Device activation object. |
| join_server_context | common.JoinServerContext | | Join-Server context. A non-empty value indicatest that ChirpStack does not have access to the AppSKey and that the encryption / decryption of the payloads is the responsibility of the end-application. |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| Field | Type | Label | Description |
| dev_eui | string | | Device EUI (EUI64). |
| Field | Type | Label | Description |
| f_cnt_down | uint32 | | FCntDown. |
| Field | Type | Label | Description |
| dev_eui | string | | Device EUI (EUI64). |
| count_only | bool | | Return only the count, not the result-set. |
| Field | Type | Label | Description |
| total_count | uint32 | | Total number of queue items. |
| result | DeviceQueueItem | repeated | Result-set. |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| Field | Type | Label | Description |
| dev_addr | string | | DevAddr. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of devices to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| search | string | | If set, the given string will be used to search on name (optional). |
| application_id | string | | Application ID (UUID) to filter devices on. |
| multicast_group_id | string | | Multicst-group ID (UUID) to filter devices on. |
| order_by | ListDevicesRequest.OrderBy | | If set, the given value will be used to sort by (optional). |
| order_by_desc | bool | | If set, the sorting direction will be decending (default = ascending) (optional). |
| tags | ListDevicesRequest.TagsEntry | repeated | Tags to filter devices on. |
| device_profile_id | string | | Device-profile ID (UUID) to filter devices on. |
| Field | Type | Label | Description |
| total_count | uint32 | | Total number of devices. |
| result | DeviceListItem | repeated | Result-set. |
| Field | Type | Label | Description |
| device_keys | DeviceKeys | | Device-keys object. |
| Field | Type | Label | Description |
| device | Device | | Device object. |
| Name | Number | Description |
| NAME | 0 | |
| DEV_EUI | 1 | |
| LAST_SEEN_AT | 2 | |
| DEVICE_PROFILE_NAME | 3 | |
DeviceService is the service providing API methods for managing devices.
Top
| Field | Type | Label | Description |
| id | string | | Algorithm ID. |
| name | string | | Algorithm name. |
| Field | Type | Label | Description |
| ts003_version | Ts003Version | | TS003 version (Application Layer Clock Sync). |
| ts003_f_port | uint32 | | TS003 fPort. |
| ts004_version | Ts004Version | | TS004 version (Fragmented Data Block Transport). |
| ts004_f_port | uint32 | | TS004 fPort. |
| ts005_version | Ts005Version | | TS005 version (Remote Multicast Setup). |
| ts005_f_port | uint32 | | TS005 fPort. |
| Field | Type | Label | Description |
| device_profile | DeviceProfile | | Object to create. |
| Field | Type | Label | Description |
| id | string | | ID (UUID). |
| Field | Type | Label | Description |
| id | string | | ID (UUID). |
| Field | Type | Label | Description |
| id | string | | Device-profile ID (UUID). Note: on create this will be automatically generated. |
| tenant_id | string | | Tenant ID (UUID). |
| name | string | | Name. |
| description | string | | Description. |
| region | common.Region | | Region. |
| mac_version | common.MacVersion | | LoRaWAN mac-version. |
| reg_params_revision | common.RegParamsRevision | | Regional parameters revision. |
| adr_algorithm_id | string | | ADR algorithm ID. |
| payload_codec_runtime | CodecRuntime | | Payload codec runtime. |
| payload_codec_script | string | | Payload codec script. |
| flush_queue_on_activate | bool | | Flush queue on device activation. |
| uplink_interval | uint32 | | Uplink interval (seconds). This defines the expected uplink interval which the device uses for communication. If the uplink interval has expired and no uplink has been received, the device is considered inactive. |
| device_status_req_interval | uint32 | | Device-status request interval (times / day). This defines the times per day that ChirpStack will request the device-status from the device. |
| supports_otaa | bool | | Supports OTAA. |
| supports_class_b | bool | | Supports Class B. |
| supports_class_c | bool | | Supports Class-C. |
| class_b_timeout | uint32 | | Class-B timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). |
| class_b_ping_slot_periodicity | uint32 | | Class-B ping-slot periodicity. Valid options are: 0 - 7. |
Number of ping-slots per beacon-period: pingNb = 2^(7-periodicity)
Periodicity: 0 = 128 ping-slots per beacon period = ~ every 1 sec Periodicity: 7 = 1 ping-slot per beacon period = ~ every 128 sec |
| class_b_ping_slot_dr | uint32 | | Class-B ping-slot DR. |
| class_b_ping_slot_freq | uint32 | | Class-B ping-slot freq (Hz). |
| class_c_timeout | uint32 | | Class-C timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). |
| abp_rx1_delay | uint32 | | RX1 delay (for ABP). |
| abp_rx1_dr_offset | uint32 | | RX1 DR offset (for ABP). |
| abp_rx2_dr | uint32 | | RX2 DR (for ABP). |
| abp_rx2_freq | uint32 | | RX2 frequency (for ABP, Hz). |
| tags | DeviceProfile.TagsEntry | repeated | Tags (user defined). These tags can be used to add additional information the the device-profile. These tags are exposed in all the integration events of devices using this device-profile. |
| measurements | DeviceProfile.MeasurementsEntry | repeated | Measurements. If defined, ChirpStack will visualize these metrics in the web-interface. |
| auto_detect_measurements | bool | | Auto-detect measurements. If set to true, measurements will be automatically added based on the keys of the decoded payload. In cases where the decoded payload contains random keys in the data, you want to set this to false. |
| region_config_id | string | | Region configuration ID. If set, devices will only use the associated region. If let blank, then devices will use all regions matching the selected common-name. Note that multiple region configurations can exist for the same common-name, e.g. to provide an 8 channel and 16 channel configuration for the US915 band. |
| is_relay | bool | | Device is a Relay device. Enable this in case the device is a Relay. A Relay device implements TS011 and is able to relay data from relay capable devices. See for more information the TS011 specification. |
| is_relay_ed | bool | | Device is a Relay end-device. Enable this in case the device is an end-device that can operate under a Relay. Please refer to the TS011 specification for more information. |
| relay_ed_relay_only | bool | | End-device only accept data through relay. Only accept data for this device through a relay. This setting is useful for testing as in case of a test-setup, the end-device is usually within range of the gateway. |
| relay_enabled | bool | | Relay must be enabled. |
| relay_cad_periodicity | CadPeriodicity | | Relay CAD periodicity. |
| relay_default_channel_index | uint32 | | Relay default channel index. Valid values are 0 and 1, please refer to the RP002 specification for the meaning of these values. |
| relay_second_channel_freq | uint32 | | Relay second channel frequency (Hz). |
| relay_second_channel_dr | uint32 | | Relay second channel DR. |
| relay_second_channel_ack_offset | SecondChAckOffset | | Relay second channel ACK offset. |
| relay_ed_activation_mode | RelayModeActivation | | Relay end-device activation mode. |
| relay_ed_smart_enable_level | uint32 | | Relay end-device smart-enable level. |
| relay_ed_back_off | uint32 | | Relay end-device back-off (in case it does not receive WOR ACK frame). 0 = Always send a LoRaWAN uplink 1..63 = Send a LoRaWAN uplink after X WOR frames without a WOR ACK |
| relay_ed_uplink_limit_bucket_size | uint32 | | Relay end-device uplink limit bucket size.
This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size
Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 |
| relay_ed_uplink_limit_reload_rate | uint32 | | Relay end-device uplink limit reload rate.
Valid values: * 0 - 62 = X tokens every hour * 63 = no limitation |
| relay_join_req_limit_reload_rate | uint32 | | Relay join-request limit reload rate.
Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation |
| relay_notify_limit_reload_rate | uint32 | | Relay notify limit reload rate.
Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation |
| relay_global_uplink_limit_reload_rate | uint32 | | Relay global uplink limit reload rate.
Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation |
| relay_overall_limit_reload_rate | uint32 | | Relay overall limit reload rate.
Valid values: * 0 - 126 = X tokens every hour * 127 = no limitation |
| relay_join_req_limit_bucket_size | uint32 | | Relay join-request limit bucket size.
This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size
Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 |
| relay_notify_limit_bucket_size | uint32 | | Relay notify limit bucket size.
This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size
Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 |
| relay_global_uplink_limit_bucket_size | uint32 | | Relay globak uplink limit bucket size.
This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size
Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 |
| relay_overall_limit_bucket_size | uint32 | | Relay overall limit bucket size.
This field indicates the multiplier to determine the bucket size according to the following formula: BucketSize TOKEN = _reload_rate x _bucket_size
Valid values (0 - 3): 0 = 1 1 = 2 2 = 4 3 = 12 |
| allow_roaming | bool | | Allow roaming.
If set to true, it means that the device is allowed to use roaming. |
| rx1_delay | uint32 | | RX1 Delay.
This makes it possible to override the system RX1 Delay. Please note that this values only has effect in case it is higher than the system value. In other words, it can be used to increase the RX1 Delay but not to decrease it. Valid options are 1 - 15 (0 = always use system RX1 Delay). |
| app_layer_params | AppLayerParams | | Application Layer parameters. |
| Field | Type | Label | Description |
| id | string | | ID (UUID). |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of device-profiles to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| search | string | | If set, the given string will be used to search on name. |
| tenant_id | string | | Tenant ID to list the device-profiles for. |
| Field | Type | Label | Description |
| device_profile | DeviceProfile | | Device-profile object. |
| Name | Number | Description |
| SEC_1 | 0 | 1 second. |
| MS_500 | 1 | 500 milliseconds |
| MS_250 | 2 | 250 milliseconds |
| MS_100 | 3 | 100 milliseconds |
| MS_50 | 4 | 50 milliseconds |
| MS_20 | 5 | 20 milliseconds |
| Name | Number | Description |
| NONE | 0 | None. |
| CAYENNE_LPP | 1 | Cayenne LPP. |
| JS | 2 | JavaScript. |
| Name | Number | Description |
| UNKNOWN | 0 | Unknown (in which case it is not tracked). |
| COUNTER | 1 | Incrementing counters that never decrease (these are not reset on each reading). |
| ABSOLUTE | 2 | Counters that do get reset upon reading. |
| GAUGE | 3 | E.g. a temperature value. |
| STRING | 4 | E.g. a firmware version, true / false value. |
| Name | Number | Description |
| DISABLE_RELAY_MODE | 0 | Disable the relay mode. |
| ENABLE_RELAY_MODE | 1 | Enable the relay model. |
| DYNAMIC | 2 | Dynamic. |
| END_DEVICE_CONTROLLED | 3 | End-device controlled. |
| Name | Number | Description |
| KHZ_0 | 0 | 0 kHz. |
| KHZ_200 | 1 | 200 kHz. |
| KHZ_400 | 2 | 400 kHz. |
| KHZ_800 | 3 | 800 kHz. |
| KHZ_1600 | 4 | 1600 kHz. |
| KHZ_3200 | 5 | 3200 kHz. |
| Name | Number | Description |
| TS003_NOT_IMPLEMENTED | 0 | Not implemented. |
| TS003_V100 | 1 | v1.0.0. |
| TS003_v200 | 2 | v2.0.0 |
| Name | Number | Description |
| TS004_NOT_IMPLEMENTED | 0 | Not implemented. |
| TS004_V100 | 1 | v1.0.0. |
| TS004_V200 | 2 | v2.0.0 |
| Name | Number | Description |
| TS005_NOT_IMPLEMENTED | 0 | Not implemented. |
| TS005_V100 | 1 | v1.0.0. |
| TS005_V200 | 2 | v2.0.0 |
DeviceProfileService is the service providing API methods for managing
device-profiles.
Top
| Field | Type | Label | Description |
| id | string | | ID. |
| Field | Type | Label | Description |
| id | string | | Device-profile template ID. |
| name | string | | Name. |
| description | string | | Description. |
| vendor | string | | Vendor. |
| firmware | string | | Firmware. |
| region | common.Region | | Region. |
| mac_version | common.MacVersion | | LoRaWAN mac-version. |
| reg_params_revision | common.RegParamsRevision | | Regional parameters revision. |
| adr_algorithm_id | string | | ADR algorithm ID. |
| payload_codec_runtime | CodecRuntime | | Payload codec runtime. |
| payload_codec_script | string | | Payload codec script. |
| flush_queue_on_activate | bool | | Flush queue on device activation. |
| uplink_interval | uint32 | | Uplink interval (seconds). This defines the expected uplink interval which the device uses for communication. When the uplink interval has expired and no uplink has been received, the device is considered inactive. |
| device_status_req_interval | uint32 | | Device-status request interval (times / day). This defines the times per day that ChirpStack will request the device-status from the device. |
| supports_otaa | bool | | Supports OTAA. |
| supports_class_b | bool | | Supports Class B. |
| supports_class_c | bool | | Supports Class-C. |
| class_b_timeout | uint32 | | Class-B timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). |
| class_b_ping_slot_periodicity | uint32 | | Class-B ping-slot periodicity (only for Class-B). Valid options are: 0 - 7. |
Number of ping-slots per beacon-period: pingNb = 2^(7-periodicity)
Periodicity: 0 = 128 ping-slots per beacon period = ~ every 1 sec Periodicity: 7 = 1 ping-slot per beacon period = ~ every 128 sec |
| class_b_ping_slot_dr | uint32 | | Class-B ping-slot DR. |
| class_b_ping_slot_freq | uint32 | | Class-B ping-slot freq (Hz). |
| class_c_timeout | uint32 | | Class-C timeout (seconds). This is the maximum time ChirpStack will wait to receive an acknowledgement from the device (if requested). |
| abp_rx1_delay | uint32 | | RX1 delay (for ABP). |
| abp_rx1_dr_offset | uint32 | | RX1 DR offset (for ABP). |
| abp_rx2_dr | uint32 | | RX2 DR (for ABP). |
| abp_rx2_freq | uint32 | | RX2 frequency (for ABP, Hz). |
| tags | DeviceProfileTemplate.TagsEntry | repeated | User defined tags. |
| measurements | DeviceProfileTemplate.MeasurementsEntry | repeated | Measurements. If defined, ChirpStack will visualize these metrics in the web-interface. |
| auto_detect_measurements | bool | | Auto-detect measurements. If set to true, measurements will be automatically added based on the keys of the decoded payload. In cases where the decoded payload contains random keys in the data, you want to set this to false. |
| Field | Type | Label | Description |
| id | string | | ID. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of device-profile templates to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
DeviceProfileTemplateService is the service providing API methods for managing device-profile templates.
Top
| Field | Type | Label | Description |
| gateway | Gateway | | Gateway object. |
| Field | Type | Label | Description |
| gateway_id | string | | Gateway ID (EUI64). |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID. |
| relay_id | string | | Relay ID (4 byte HEX). |
| Field | Type | Label | Description |
| gateway_id | string | | Gateway ID (EUI64). |
| Field | Type | Label | Description |
| max_load_percentage | common.Metric | | Percentage relative to max load. |
| window_percentage | common.Metric | | Percentage relative to tracking window. |
| Field | Type | Label | Description |
| gateway_id | string | | Gateway ID (EUI64). |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID (UUID). |
| relay_id | string | | Relay ID (4 byte HEX). |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of gateways to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| search | string | | If set, the given string will be used to search on name (optional). |
| tenant_id | string | | Tenant ID (UUID) to filter gateways on. To list all gateways as a global admin user, this field can be left blank. |
| multicast_group_id | string | | Multicast-group ID (UUID) to filter gateways on. |
| order_by | ListGatewaysRequest.OrderBy | | If set, the given value will be used to sort by (optional). |
| order_by_desc | bool | | If set, the sorting direction will be decending (default = ascending) (optional). |
| Field | Type | Label | Description |
| total_count | uint32 | | Total number of gateways. |
| result | GatewayListItem | repeated | Result-set. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of relay-gateways to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| tenant_id | string | | Tenant ID (UUID) to filter relay-gateways on. To list all relay-gateways as a global admin user, this field can be left blank. |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID. |
| relay_id | string | | Relay ID (4 byte HEX). |
| name | string | | Name. |
| description | string | | Description. |
| stats_interval | uint32 | | Stats interval (seconds). This defines the expected interval in which the gateway sends its statistics. |
| region_config_id | string | | Region configuration ID. |
| Field | Type | Label | Description |
| gateway | Gateway | | Gateway object. |
| Field | Type | Label | Description |
| relay_gateway | RelayGateway | | Relay Gateway object. |
| Name | Number | Description |
| NEVER_SEEN | 0 | The gateway has never sent any stats. |
| ONLINE | 1 | Online. |
| OFFLINE | 2 | Offline. |
| Name | Number | Description |
| NAME | 0 | |
| GATEWAY_ID | 1 | |
| LAST_SEEN_AT | 2 | |
GatewayService is the service providing API methods for managing gateways.
Top
| Field | Type | Label | Description |
| multicast_group_id | string | | Multicast group ID. |
| dev_eui | string | | Device EUI (HEX encoded). |
| Field | Type | Label | Description |
| multicast_group_id | string | | Multicast group ID. |
| gateway_id | string | | Gateway ID (HEX encoded). |
| Field | Type | Label | Description |
| multicast_group | MulticastGroup | | Multicast group to create. |
| Field | Type | Label | Description |
| id | string | | ID of created multicast group (UUID). |
| Field | Type | Label | Description |
| id | string | | Multicast group iD. |
| Field | Type | Label | Description |
| f_cnt | uint32 | | Frame-counter of the enqueued payload. |
| Field | Type | Label | Description |
| multicast_group_id | string | | Multicast group ID. |
| Field | Type | Label | Description |
| id | string | | Multicast group ID. |
| Field | Type | Label | Description |
| multicast_group_id | string | | Multicast group ID. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of multicast groups to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| search | string | | If set, the given string will be used to search on name. |
| application_id | string | | Application ID to list the multicast groups for. |
| Field | Type | Label | Description |
| id | string | | ID (UUID). This will be generated automatically on create. |
| name | string | | Name. |
| application_id | string | | Application ID. After creation, this can not be updated. |
| region | common.Region | | Region. |
| mc_addr | string | | Multicast address (HEX encoded DevAddr). |
| mc_nwk_s_key | string | | Multicast network session key (HEX encoded AES128 key). |
| mc_app_s_key | string | | Multicast application session key (HEX encoded AES128 key). |
| f_cnt | uint32 | | Frame-counter. |
| group_type | MulticastGroupType | | Multicast group type. |
| dr | uint32 | | Data-rate. |
| frequency | uint32 | | Frequency (Hz). |
| class_b_ping_slot_periodicity | uint32 | | Class-B ping-slot periodicity (only for Class-B). Valid options are: 0 - 7. |
Number of ping-slots per beacon-period: pingNb = 2^(7-periodicity)
Periodicity: 0 = 128 ping-slots per beacon period = ~ every 1 sec Periodicity: 7 = 1 ping-slot per beacon period = ~ every 128 sec |
| class_c_scheduling_type | MulticastGroupSchedulingType | | Scheduling type (only for Class-C). |
| Field | Type | Label | Description |
| multicast_group_id | string | | Multicast group ID. |
| f_cnt | uint32 | | Downlink frame-counter. This will be automatically set on enqueue. |
| f_port | uint32 | | FPort (must be > 0). |
| data | bytes | | Payload. |
| expires_at | google.protobuf.Timestamp | | Expires at (optional). Expired queue-items will be automatically removed from the queue. |
| Field | Type | Label | Description |
| multicast_group_id | string | | Multicast group ID. |
| dev_eui | string | | Device EUI (HEX encoded). |
| Field | Type | Label | Description |
| multicast_group_id | string | | Multicast group ID. |
| gateway_id | string | | Gateway ID (HEX encoded). |
| Field | Type | Label | Description |
| multicast_group | MulticastGroup | | Multicast group object to update. |
| Name | Number | Description |
| DELAY | 0 | Delay. If multicast downlinks must be sent through multiple gateways, then these will be sent one by one with a delay between each gateway. |
| GPS_TIME | 1 | Time. If multicast downlinks must be sent through multiple gateways, then these will be sent simultaneously using GPS time synchronization. Note that this does require GPS time-synchronized LoRa gateways. |
| Name | Number | Description |
| CLASS_C | 0 | Class C. |
| CLASS_B | 1 | Class-B. |
MulticastGroupService is the service managing multicast-groups.
Top
| Field | Type | Label | Description |
| relay_dev_eui | string | | Relay DevEUI (EUI64). |
| device_dev_eui | string | | Device DevEUI (EUI64). |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of multicast groups to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| relay_dev_eui | string | | Relay DevEUI (EUI64). |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of devices to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| application_id | string | | Application ID (UUID). |
| Field | Type | Label | Description |
| total_count | uint32 | | Total number of relays. |
| result | RelayListItem | repeated | Result-set. |
| Field | Type | Label | Description |
| dev_eui | string | | DevEUI (EUI64). |
| name | string | | Name. |
| Field | Type | Label | Description |
| relay_dev_eui | string | | Relay DevEUI (EUI64). |
| device_dev_eui | string | | Device DevEUI (EUI64). |
RelayService is the service providing API methos for managing relays.
Top
| Field | Type | Label | Description |
| tenant_user | TenantUser | | Tenant user object. |
| Field | Type | Label | Description |
| tenant | Tenant | | Tenant object to create. |
| Field | Type | Label | Description |
| id | string | | Tenant ID. |
| Field | Type | Label | Description |
| id | string | | Tenant ID. |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID (UUID). |
| user_id | string | | User ID (UUID). |
| Field | Type | Label | Description |
| id | string | | Tenant ID. |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID (UUID). |
| user_id | string | | User ID (UUID). |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID (UUID). |
| limit | uint32 | | Max number of tenants to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of tenants to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| search | string | | If set, the given string will be used to search on name. |
| user_id | string | | If set, filters the result set to the tenants of the user. Only global API keys are able to filter by this field. |
| Field | Type | Label | Description |
| total_count | uint32 | | Total number of tenants. |
| result | TenantListItem | repeated | Result-set. |
| Field | Type | Label | Description |
| id | string | | Tenant ID (UUID). Note: this value will be automatically generated on create. |
| name | string | | Tenant name, |
| description | string | | Tenant description. |
| can_have_gateways | bool | | Can the tenant create and "own" Gateways? |
| max_gateway_count | uint32 | | Max. gateway count for tenant. When set to 0, the tenant can have unlimited gateways. |
| max_device_count | uint32 | | Max. device count for tenant. When set to 0, the tenant can have unlimited devices. |
| private_gateways_up | bool | | Private gateways (uplink). If enabled, then uplink messages will not be shared with other tenants. |
| private_gateways_down | bool | | Private gateways (downlink). If enabled, then other tenants will not be able to schedule downlink messages through the gateways of this tenant. For example, in case you do want to share uplinks with other tenants (private_gateways_up=false), but you want to prevent other tenants from using gateway airtime. |
| tags | Tenant.TagsEntry | repeated | Tags (user defined). These tags can be used to add additional information to the tenant. These tags are NOT exposed in the integration events. |
| Field | Type | Label | Description |
| id | string | | Tenant ID (UUID). |
| created_at | google.protobuf.Timestamp | | Created at timestamp. |
| updated_at | google.protobuf.Timestamp | | Last update timestamp. |
| name | string | | Tenant name. |
| can_have_gateways | bool | | Can the tenant create and "own" Gateways? |
| private_gateways_up | bool | | Private gateways (uplink). |
| private_gateways_down | bool | | Private gateways (downlink). |
| max_gateway_count | uint32 | | Max gateway count. 0 = unlimited. |
| max_device_count | uint32 | | Max device count. 0 = unlimited. |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID (UUID). |
| user_id | string | | User ID (UUID). |
| is_admin | bool | | User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags. |
| is_device_admin | bool | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). |
| is_gateway_admin | bool | | User is able to modify gateways. |
| email | string | | Email (only used on get and when adding a user to a tenant). |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID (UUID). |
| user_id | string | | User ID (UUID). |
| created_at | google.protobuf.Timestamp | | Created at timestamp. |
| updated_at | google.protobuf.Timestamp | | Last update timestamp. |
| email | string | | Email. |
| is_admin | bool | | User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags. |
| is_device_admin | bool | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). |
| is_gateway_admin | bool | | User is able to modify gateways. |
| Field | Type | Label | Description |
| tenant | Tenant | | Tenant object. |
| Field | Type | Label | Description |
| tenant_user | TenantUser | | Tenant user object. |
TenantService is the service providing API methods for managing tenants.
Top
| Field | Type | Label | Description |
| user | User | | User object to create. |
| password | string | | Password to set for the user. |
| tenants | UserTenant | repeated | Add the user to the following tenants. |
| Field | Type | Label | Description |
| id | string | | User ID. |
| Field | Type | Label | Description |
| id | string | | User ID. |
| Field | Type | Label | Description |
| id | string | | User ID. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of tenants to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| Field | Type | Label | Description |
| total_count | uint32 | | Total number of users. |
| result | UserListItem | repeated | Result-set. |
| Field | Type | Label | Description |
| user_id | string | | User ID. |
| password | string | | Password to set. |
| Field | Type | Label | Description |
| user | User | | User object. |
| Field | Type | Label | Description |
| id | string | | User ID (UUID). Will be set automatically on create. |
| is_admin | bool | | Set to true to make the user a global administrator. |
| is_active | bool | | Set to false to disable the user. |
| email | string | | E-mail of the user. |
| note | string | | Optional note to store with the user. |
| Field | Type | Label | Description |
| tenant_id | string | | Tenant ID. |
| is_admin | bool | | User is admin within the context of the tenant. There is no need to set the is_device_admin and is_gateway_admin flags. |
| is_device_admin | bool | | User is able to modify device related resources (applications, device-profiles, devices, multicast-groups). |
| is_gateway_admin | bool | | User is able to modify gateways. |
UserService is the service providing API methods for managing users.
Top
| Field | Type | Label | Description |
| fuota_deployment_id | string | | FUOTA Deployment ID. |
| dev_euis | string | repeated | DevEUIs. Note that the DevEUIs must share the same device-profile as assigned to the FUOTA Deployment. |
| Field | Type | Label | Description |
| fuota_deployment_id | string | | FUOTA Deployment ID. |
| gateway_ids | string | repeated | Gateway IDs. Note that the Gateways must be under the same tenant as the FUOTA Deployment. |
| Field | Type | Label | Description |
| id | string | | ID of the created deployment. |
| Field | Type | Label | Description |
| id | string | | FUOTA deployment ID. |
| Field | Type | Label | Description |
| id | string | | Deployment ID. This value is automatically set on create. |
| application_id | string | | Application ID. |
| device_profile_id | string | | Device-profile ID. |
| name | string | | Deployment name. |
| multicast_group_type | MulticastGroupType | | Multicast-group type. |
| multicast_class_c_scheduling_type | MulticastGroupSchedulingType | | Multicast-group scheduling type (Class-C only). |
| multicast_dr | uint32 | | Multicast data-rate. |
| multicast_class_b_ping_slot_periodicity | uint32 | | Multicast ping-slot period (Class-B only). Valid options are: 0 - 7. |
Number of ping-slots per beacon-period: pingNb = 2^(7-periodicity)
Periodicity: 0 = 128 ping-slots per beacon period = ~ every 1 sec Periodicity: 7 = 1 ping-slot per beacon period = ~ every 128 sec |
| multicast_frequency | uint32 | | Multicast frequency (Hz). |
| multicast_timeout | uint32 | | Multicast timeout. This defines the timeout of the multicast-session. Please refer to the Remote Multicast Setup specification as this field has a different meaning for Class-B and Class-C groups. |
| calculate_multicast_timeout | bool | | Calculate multicast timeout. If set to true, ChirpStack will calculate the multicast-timeout. |
| unicast_max_retry_count | uint32 | | The number of times ChirpStack will retry an unicast command before it considers it to be failed. |
| fragmentation_fragment_size | uint32 | | Fragmentation size. This defines the size of each payload fragment. Please refer to the Regional Parameters specification for the maximum payload sizes per data-rate and region. |
| calculate_fragmentation_fragment_size | bool | | Calculate fragmentation size. If set to true, ChirpStack will calculate the fragmentation size. |
| fragmentation_redundancy_percentage | uint32 | | Fragmentation redundancy percentage. The number represents the percentage (0 - 100) of redundant messages to send. |
| fragmentation_session_index | uint32 | | Fragmentation session index. |
| fragmentation_matrix | uint32 | | Fragmentation matrix. |
| fragmentation_block_ack_delay | uint32 | | Block ack delay. |
| fragmentation_descriptor | bytes | | Descriptor (4 bytes). |
| request_fragmentation_session_status | RequestFragmentationSessionStatus | | Request fragmentation session status. |
| payload | bytes | | Payload. The FUOTA payload to send. |
| on_complete_set_device_tags | FuotaDeployment.OnCompleteSetDeviceTagsEntry | repeated | Set device tags on complete. |
| Field | Type | Label | Description |
| id | string | | FUOTA Deployment ID. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of devices to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| fuota_deployment_id | string | | FUOTA Deployment ID. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of gateways to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| fuota_deployment_id | string | | FUOTA Deployment ID. |
| Field | Type | Label | Description |
| fuota_deployment_id | string | | FUOTA Deployment ID. |
| Field | Type | Label | Description |
| limit | uint32 | | Max number of FUOTA deployments to return in the result-set. If not set, it will be treated as 0, and the response will only return the total_count. |
| offset | uint32 | | Offset in the result-set (for pagination). |
| application_id | string | | Application ID to list the FUOTA Deployments for. This filter is mandatory. |
| Field | Type | Label | Description |
| fuota_deployment_id | string | | FUOTA Deployment ID. |
| dev_euis | string | repeated | DevEUIs. |
| Field | Type | Label | Description |
| fuota_deployment_id | string | | FUOTA Deployment ID. |
| gateway_ids | string | repeated | Gateway IDs. |
| Field | Type | Label | Description |
| id | string | | FUOTA deployment ID. |
| Name | Number | Description |
| NO_REQUEST | 0 | Do not request the fragmentation-session status. |
| AFTER_FRAGMENT_ENQUEUE | 1 | Enqueue the fragmentation-session status request command directly after enqueueing the fragmentation-session fragments. This is the recommended option for Class-A devices as the status request will stay in the downlink queue until the device sends its next uplink. |
| AFTER_SESSION_TIMEOUT | 2 | Enqueue the fragmentation-session status request after the multicast session-timeout. This is the recommended option for Class-B and -C devices as selecting AFTER_FRAGMENT_ENQUEUE will likely cause the NS to schedule the downlink frame during the FUOTA multicast-session. |
FuotaService is the service providing API methods for FUOTA deployments.
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| double | | double | double | float | float64 | double | float | Float |
| float | | float | float | float | float32 | float | float | Float |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |