ThingSpeak Documentation

Updated ThingSpeak Documentation is now located in ThingSpeak Docs. For support, use the ThingSpeak Forum.

Getting Started

Getting Support

Please post your questions, comments, and feature requests in the ThingSpeak Forum.

Channels

Channels are where your application stores and retrieves any type of data. Each channel has a Private View and a Public View. The Private View is only accessible by signing into your ThingSpeak.com user account. The Public View is what other viewers will see when they visit your ThingSpeak Channel. You can have different info on each view, customize the view with Plugins, and even disable the Public View.
ThingSpeak Channel Public View
Channel Views have the following features:

  • Channel Watch
  • Share via Social Networks
  • Developer Info
  • Ability to embed ThingSpeak Plugins
  • Drag-and-drop Organization
  • Tags
  • Comments

Channels API

To read and write to a ThingSpeak Channel, your application must make requests to the ThingSpeak API using HTTP requests. Each ThingSpeak Channel allows for 8 fields of data (both numeric and alphanumeric formats), location information, and a status update. Each entry is stored with a date and time stamp and is assigned a unique Entry ID (entry_id). After the data is stored, you can retrieve the data by time selection or by Entry ID. In addition to storing and retrieving numeric and alphanumeric data, the ThingSpeak API allows for numeric data processing such as timescaling, averaging, median, summing, and rounding. The channel feeds supports JSON, XML, and CSV formats for integration into applications.

Charts API

Use the Charts API to present numerical data stored in ThingSpeak Channels on charts. Supported chart types are line, bar, column, and step. Options include size, color, and labels.

Open Source API

The ThingSpeak API is available on GitHub and includes the complete ThingSpeak API for processing HTTP requests, storing numeric and alphanumeric data, numeric data processing, location tracking, and status updates.  The open source version follows the same documentation as the ThingSpeak hosted service.

Apps

ThingSpeak Apps are apps that make it easier for devices to access resources on the web such as social networks, web services, and APIs.

ThingTweet

ThingTweet is a Twitter Proxy that allows a device to send status updates to Twitter via simple API calls to the ThingTweet App.

ThingHTTP

ThingHTTP is for connecting things to web services via HTTP requests. ThingHTTP supports GET, POST, PUT, and DELETE methods, HTTP/1.0, HTTP/1.1, SSL, custom HTTP headers, and Basic Authentication.

TweetControl

TweetControl allows you to monitor your Twitter stream for a specific hashtag and associate it with a control action. The TweetControl App uses the Twitter Stream API and operates in real-time. You can create social controls via Twitter without having to run a dedicated server listening to the Twitter firehouse.

React

Reacts allow you to trigger a ThingHTTP request or send a tweet using ThingTweet when your ThingSpeak Channel meets a certain condition. For example, you can have your thermostat turn on by the time you get home from work by creating a Geo Location React.

TalkBack

TalkBack allows you to store commands on ThingSpeak and retrieve them by a device. This model provides a way to control battery-powered devices that are asleep most of the time and periodically need to check for control commands.

Plugins

Plugins are way to create your applications natively on the ThingSpeak platform. You can create applications using HTML, CSS, and JavaScript to create mashups of ThingSpeak services with other web services. Plugins can either be private or public. Private plugins can only be viewed from a private ThingSpeak Channel view. Public Plugins can be embedded on your website or added to a ThingSpeak Channel view.

Example Plug In

Display a Google Gauge Visualization using ThingSpeak Plugins [Source Code]

[iframe_loader height=”120″ src=”http://community.thingspeak.com/code/Google_Gauge.html”]

Importer

Using the ThingSpeak Importer, you are able to import data from a CSV file directly into a ThingSpeak Channel. The access the Importer, select a Channel, and click Import Data.
The format for the CSV should be the following:
[cce]datetime,field1,field2,field3,field4,field5,field6,field7,field8,latitude,longitude,elevation,status[/cce]
Here is an example CSV file: Sample CSV File
You only have to send a date time stamp and at least one field. The date time stamp can be in many formats such as epoch, ISO 8601, or MySQL time. If the date time includes a GMT/UTC offset, we will use that to properly import the data. If your date time stamps do not have a GMT / UTC offset, you can specify a time zone that the data was logged in.

8 comments

  1. How big of a csv file can be uploaded? I have tried 1.4MB and it won’t upload. Can it be gzipped or zipped?
    THanks,
    Joe

    1. @joe
      We have not tested an upper size, so I don’t have specifics for you. The Data importer only works with *.csv right now, so ZIP is not going to help in this case. We will check deeper into the limits.

    1. Around 240 per day. Twitter will block duplicate posts. I recommend that you create a list of tweets and post a random one.

    1. There is no maximum number of entries that can be added to a channel. However, there is a limit of one update every 15 seconds per channel.

  2. Is this a ThingSpeak bug? I’m a noob so it may be a misunderstanding on my part. Here is the scenario…
    2 values placed in field1
    1 values placed in field2
    request (via GET) the last value of field1
    result: (abbreviated)
    “…last_entry_id”:3,”name”:”Channel xxxx”,”updated_at”:”2013-12-26T18:23:47Z”},”feeds”:[{“created_at”:”2013-12-26T06:22:14Z”,
    “entry_id”:1,”field1″:”16″},{“created_at”:”2013-12-26T18:20:41Z”,
    “entry_id”:2,”field1″:”19″},{“created_at”:”2013-12-26T18:23:47Z”,
    “entry_id”:3,”field1″:null}]}”
    Why am I getting a result for entry_id:3 for field1? There are only 2 values in field1. The 3rd value placed in the channel is in field2.
    exeng

    1. Go to your channel settings, and click on “add field” next to “Field 2” so that it’s active.

Comments are closed.