Main Content

Subscribe to a Channel Feed

Subscribe to updates from channel feed with MQTT

ThingSpeak MQTT requires an MQTT API Key to subscribe to channel updates for both private and public channels. Supply any unique user name and your MQTT API key as a password parameter to the ThingSpeak MQTT broker when connecting. Choose Account > My Profile to see your MQTT API key. ThingSpeak™ MQTT supports only QoS 0. For more information,see Server Response for Connections.


channels/<channelID>/subscribe/<format> subscribes to updates to a channel feed. Replace <channelID> with the channel ID and <format> with the format of the return message. Subscribing to a channel feed automatically returns the last entry in the channel to your subscription. Invalid subscription details such as API Key, channel number, or MQTT User API Key result in the client being disconnected.

channels/<channelID>/subscribe/<format>/<apiKey> subscribes to updates to a channel feed from a private channel. Replace <apikey> with the Read API key of the channel.

Input Arguments

expand all

Channel ID for the subscription target, specified as a numeric.

Data Types: uint16 | int16 | int8 | uint8

Channel Read API Key, required to subscribe to a private channel. This value is different from the MQTT API Key used for connection.

Data Types: char

Output format for returned message specified as JSON, XML, or CSV. Fields that are not enabled do not appear in the output.


Latitude, longitude, and elevation are for the feed update, not the channel settings.

Example: JSON

Specify JSON output as <format> and the channel update messages are JSON objects with the format shown. For example, channels/1417/subscribe/json.


Example: XML

Specify XML output as <format> to receive messages in XML format. For example, channels/1417/subscribe/xml.

<?xml version="1.0" encoding="UTF-8" ?>
  <elevation nil="true" />
  <entry-id type="integer">18</entry-id>
  <field2 nil="true" />
  <field3 nil="true" />
  <field4 nil="true" />
  <field5 nil="true" />
  <field6 nil="true" />
  <field7 nil="true" />
  <field8 nil="true" />
  <latitude nil="true" />
  <longitude nil="true" />
  <status nil="true" />

Example: CSV

Specify CSV output as <format> to receive messages as comma-separated variable text. For example, channels/1417/subscribe/csv.



If a connection is successful, the server responds with the last value in the subscribed channel. The <format> used in your topic subscription determines the format of the response.


  • Each ThingSpeak license type allows different number of concurrent MQTT subscriptions and has different restrictions on the number of messages delivered. For more information, see How to Buy and Frequently Asked Questions.

  • MQTT subscriptions do not report updates to the channel from Bulk Write JSON Data or Bulk Write CSV Data.

  • ThingSpeak MQTT honors all MQTT disconnect and unsubscribe messages. If you disconnect from the MQTT server, you are automatically unsubscribed from channel updates.


Configure MQTT.fx to subscribe to channel updates from the MathWorks® weather station. Use and port 1883. Enter your MQTT API Key as the password.

Use the subscribe topic format channels/12397/subscribe/json. Since the MathWorks weather station is public, you do not need to include /<apikey>.

Now update the channel, and observe the messages in your client.

To unsubscribe from channel updates, click the Unsubscribe or Disconnect buttons.

Introduced in R2017b