Share your thing —
like it ain't no thang.

( Hint: For BIG fun, try it on your smartphone or tablet )
We went ahead and named your thing, , but you can always call it something different.
You are currently dweeting the following information to dweet.io:
Now, anyone (or thing) can follow your thing at:
See how easy that was?

How about an alert?

( Demo alert will be active for 10 minutes )

Ridiculously simple messaging
(and alerts)
for the Internet of Things.

Fast, free and ridiculously simple— it's like Twitter for social machines.

If your product, device, machine, gadget or thing can connect to the Internet, it can use dweet.io to easily publish and subscribe to data.

dweet.io doesn't require any setup or sign-up— just publish and go. It's machine-to-machine (M2M) for the Internet Of Things (IOT) the way it was meant to be.

Check out a few of the things that are dweeting now.


It's easy to use.

No signup. No setup. It just works.

Dweeting

Send data from your thing to the cloud by "dweeting" it with a simple HAPI web API. You can also play with dweet.io using our API console.
To dweet from your thing, simply call a URL like:

Just replace my-thing-name with a unique name. That's it!

Any query parameters you add to the request will be added as key-value pairs to the content of the dweet. For example: https://dweet.io/dweet/for/my-thing-name?hello=world&foo=bar

You can also send any valid JSON data in the body of the request with a POST.

Dweet.io will also respond to JSONP requests with a ?callback= query parameter.

While we recommend using a secure https:// connection, dweet.io also supports un-secure http:// connections for devices that don't support SSL.

Dweet.io will respond with:
{
  "this": "succeeded",
  "by": "dweeting",
  "the": "dweet",
  "with": {
    "thing": "my-thing-name",
    "created": "2014-01-15T17:28:42.556Z",
    "content": {
      "hello": "world",
      "foo": "bar"
    }
  }
}

Getting Dweets

To read the latest dweet for a thing, you can call...
Note that dweet.io only holds on to the last 500 dweets over a 24 hour period. If the thing hasn't dweeted in the last 24 hours, its history will be removed.
Or to read all the dweets for a dweeter, you can call...
Dweet.io will respond with one or more dweets which look like:
{
  "this": "succeeded",
  "by": "getting",
  "the": "dweets",
  "with": [
    {
      "thing": "my-thing-name",
      "created": "2014-01-15T18:41:17.166Z",
      "content": {
        "this": "is cool!"
      }
    },
    {
      "thing": "my-thing-name",
      "created": "2014-01-15T18:41:01.583Z",
      "content": {
        "hello": "world",
        "foo": "bar"
      }
    }
  ]
}

Real-time Streams

You can also create a real-time subscription to dweets using a "chunked" HTTP response.
Just make a call to

https://dweet.io/listen/for/dweets/from/my-thing-name
(Note, this won't work in a standard browser)

From a unix command line you can run the following command to see it working:
curl -i https://dweet.io/listen/for/dweets/from/my-thing-name

The server will keep the connection alive and send you dweets as they arrive, like:
{"thing":"my-thing-name","created":"2014-02-17T01:10:21.901Z","content":{"foo":"bar"}}
If you don't know what a chunked HTTP response is, it might be easier to use one of our client libraries below.

Alerts

Alerts notify you when something in the data you dweet falls outside set of conditions. Alerts are reserved for locked things only.
To set an alert, make a call to:
https://dweet.io/alert/{recipients}/when/{thing}/{condition}?key={key}
Where:
{recipients}
A comma separated list of Email addresses. If you want to send a text/SMS message, you can do that too (via Email)— just check this out.
{thing}
A valid thing name.
{condition}

A simple javascript expression to evaluate the data in a dweet and to return whether or not an alert should be sent. You can reference the actual data in the dweet as a javascript object, like dweet.my_field or dweet["my_field"]. If the javascript expression returns anything other than a "falsey" value (false, null, undefined, 0, etc.), an alert will be sent.

For example, alert me when a temperature becomes extreme:

dweet.temp <= 32 || dweet.temp >= 212

You can also create more complex, multi-state alerts by returning a string:

if(dweet.temp <= 32) return "frozen"; else if(dweet.temp >= 212) return "boiling";

Note that the javascript expression you provide for the condition is limited to 2000 characters and may not contain complex things like loops and some other javascript reserved words. However, things like Math functions are supported.

You should normally URL-encode your condition, but you can also pass the condition in the body of a post message if it does not fit within the URL.

{key}
Since alerts are only allowed on locked things, you have to specify a key. To find out about locked things, please visit here.
Putting it all together:
https://dweet.io/alert/me@mydohmain.com/when/my_thing/dweet.donut_qty<=0?key=abc123
To remove an alert, you can call:
https://dweet.io/remove/alert/for/{thing}?key={key}

Client Libraries

You can also access dweet.io even quicker and easier with these pre-built client libraries.
Node.js
Javascript
Python
Ruby

Make it secure.

Yup. You can do that too.

By default, any(thing) can dweet or read dweets simply by knowing the thing name, but what if you have a thing you'd like to keep a bit more private? You can do that too.
Start by locking a thing...

Partners and Customers

Arrow Electronics
Ford Motor Company
Renesas
Verizon