Developer Resources
EVRYTHNG makes it easy for developers to store and share real-time information about things — any sort of things — and to build secure applications and services that use real-time data from and about any object in the real world.
What we do?
EVRYTHNG is a platform for powering applications or services driven by dynamic information about physical objects (or ‘Thngs’ as we like to call them). Our motto — Every Thing Connected — defines a world where every ‘Thng’ has an active digital presence on the Internet (a little Facebook profile if you want), which allows a new class of Web applications that use real-time information flowing from, to, and about any object in the world to be developed rapidly.
What we provide?
The EVRYTHNG platform supports the creation and secure hosting of an Active Digital Identity (ADI) for any physical object. An ADI is simply a Web resource with information about a thing in the form of dynamic (where it is now) or static (when and where it has been made) attributes. We provide a RESTful API for accessing, creating, storing, manipulating, sharing, or searching the ADIs for millions of real-world objects, and also a set of services and tools that can be useful for such applications.
Beta Program
EVRYTHNG is currently operating a closed Beta program and is available only to a limited group of commercial and academic partners. If you’d like to apply for this program, simply sign up for an account. You will be asked to fill in a short survey and tell us a bit about you and your project before we can activate your account.
Now what?
This site provides all the resources you need to get started. First, check out our quickstart guide, then download some code, and you’ll be all set to start building ADI-driven applications.
Help!
If you need any help and want to get in touch with us, please have a look at the various support channels we provide, or simply use the orange button on the left (“support and feedback”).
Quickstart Guide
Once your user account has been activated, you can directly login on the EVRYTHNG portal using your username/password or social network. The portal is a Web interface for our platform where you can manage Active Digital Identities (ADIs) for objects, and to share ADIs with other users without writing any code.
To use our API, you first need your personal authentication token (get it here) which is needed to sign every request to our API, as explained in the overview. The API allows to create, update, and share private Thngs, but also to search and use public Thngs and collections of Thngs. Feel free to browse our API documentation using the menu on the left, or download some examples you can use right away to test our API.
In case you need any further information, have a look at our support page which summarizes all the channels available to get the most out of EVRYTHNG.
We look forward to your input so don’t hesitate to share with us and ideas and suggestions on how we could provide you a better service and experience.
Concepts
Thngs have various Properties and can be organized into Collections, and operated on by Users and Groups. Access control schemes can be used to decide who can interact with what resource and how.
thng- An abstract notion of an object which has location & property data associated to it. Also called Active Digital Identities (ADIs), these resources can model real-world elements such as persons, places, cars, guitars, mobile phones, etc.
user- Each interaction with the EVRYTHNG back-end is authenticated and a user is associated with each action. This dictates security access.
property- A Thng can have properties: arbitrary key/value pairs to store any data. Values could be either text or binary.
collection- A collection is a grouping of Thngs. Collections can be created by various users, and the same Thng can be in more than one collection.
API Overview
API Authentication
Access to the API takes place via HTTPS requests to the evrythng.net domain. The EVRYTHNG API uses HTTP Token authentication, which means every request must include the X-Evrythng-Token HTTP header, where the <token> must be replaced with an API token you can find on this page in the portal (accessible only when logged in).
We provide example API calls using curl that can be pasted as is in your terminal (obviously you must change the <token> header). The following request will return a list of all the Thngs you have:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/thngs'
HTTP/1.1 200 OK
Content-Type: application/json
Status: 200 OK
Content-Length: 2
{}
Your API tokens are special codes that allow software and devices to connect to your account. Tokens work like a password so you should keep them safe just as you do with your login and password. If you think one of your tokens might have been compromised, you can disable it and generate a new one.
The Accept: application/vnd.evrythng-v2+json header is used to negotiate the version of the API your request is sent to, and allow users to still access their data via an older API version. The latest and greatest is version 2, it was released on January 26, 2012.
HTTP Verbs
Where possible, API strives to use appropriate HTTP verbs for each action.
- HEAD
- Can be issued against any resource to get just the HTTP header info.
- GET
- Used for retrieving resources.
- POST
- Used for creating resources, or performing custom actions.
- PUT
- Used for replacing resources or collections, or update Thngs.
- DELETE
- Used for deleting resources. Please note that for optimization purposes, a successful delete will return a
204 No Contentresponse (i.e., an OK with no further content).
Client Errors
There are three possible types of client errors on API calls that receive request bodies:
-
Sending invalid JSON will result in a
400 Bad Requestresponse.HTTP/1.1 400 Bad Request Content-Length: 35 {"message":"Problems parsing JSON"} -
Sending the wrong type of JSON values will result in a
400 Bad Requestresponse.HTTP/1.1 400 Bad Request Content-Length: 40 {"message":"Body should be a JSON Hash"} -
Sending invalid files will result in a
422 Unprocessable Entityresponse.HTTP/1.1 422 Unprocessable Entity Content-Length: 149 { "message": "Validation Failed", "errors": [ { "resource": "Collection", "field": "title", "code": "missing_field" } ] }
All error objects have resource and field` properties so that your HTTP client can handle the problem appropriately. There is also an error code to let you know what is wrong with the field. These are the possible validation error codes:
- missing
- This means a resource does not exist.
- missing_field
- This means a required field on a resource has not been set.
- invalid
- This means the formatting of a field is invalid. The documentation for that resource should be able to give you more specific information.
- already_exists
- This means another resource has the same value as this field. This can happen in resources that must have some unique key (such as Label names).
Pagination
Requests that return multiple items will be paginated to 30 items by
default. You can specify further pages with the ?page parameter. You
can also set a custom page size up to 100 with the ?per_page parameter.
curl https://evrythng.net/thngs?page=2&per_page=100
The pagination info is included in the Link header:
Link: <https://evrythng.net/thngs?page=3&per_page=100>; rel="next",
<https://evrythng.net/thngs?page=50&per_page=100>; rel="last"
Linebreak is included for readability.
The possible rel values are:
next- Shows the URL of the immediate next page of results.
last- Shows the URL of the last page of results.
first- Shows the URL of the first page of results.
prev- Shows the URL of the immediate previous page of results.
Rate Limiting
We limit requests to API to 5000 per day. This is keyed off either your login, or your request IP. You can check the returned HTTP headers of any API request to see your current status.
You can file a support issue to request white listed access for your application.
JSON-P Callbacks
You can send a ?callback parameter to any GET call to have the results
wrapped in a JSON function. This is typically used when browsers want to embed
EVRYTHNG content in web pages by getting around cross domain issues. The
response includes the same data output as the regular API, plus the relevant
HTTP Header information.
curl https://evrythng.net?callback=foo
foo({
"meta": {
"status": 200,
"X-RateLimit-Limit": "5000",
"X-RateLimit-Remaining": "4966",
"Link": [ // pagination headers and other links
["https://evrythng.net?page=2", {"rel": "next"}]
]
},
"data": {
// the data
}
}
You can write a javascript handler to process the callback like this:
function foo(response) {
var meta = response.meta
var data = response.data
console.log(meta)
console.log(data)
}
All of the headers are the same String value as the HTTP Headers with one
notable exception: Link. Link headers are pre-parsed for you and come through
as an array of [url, options] tuples.
A link that looks like this:
Link: <url1>; rel="next", <url2>; rel="foo"; bar="baz"
… will look like this in the Callback output:
{
"Link": [
[
"url1",
{
"rel": "next"
}
],
[
"url2",
{
"rel": "foo",
"bar": "baz"
}
]
]
}
Thngs
Creating thngs
Create a single thng
POST /thngs
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X POST \
'https://evrythng.net/thngs' \
-d '[ {
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488" } ]'
Parameters
- name
- (string) An UTF-8 string that you can use to identify your thng in a human-friendly manner. The system uses auto-generated ID’s as unique identifiers so you may define the syntax and semantics of
nameas you like, but it should be unique within the scope of your thngs.
Optional Parameters
- description
- (string) An UTF-8 string that gives more details about your thng.
- is_public
- (boolean) Sets visibility setting for the thng, e.g.,
true(default is:false). - latitude
- (string) Sets the latitude of a thng, e.g.
43.772828(default is:null). - longitude
- (string) Sets the longitude of a thng, e.g.
11.24948(default is:null).
Input
{
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488"
}
Response
Status: 201 Created
{
"id": "44ed3d1ad0b1cdc02490081ca",
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488",
"created_at": "2011-11-28T18:23:41+00:00"
}
Create many thngs at once
POST /thngs
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X POST \
'https://evrythng.net/thngs' \
-d '[ {
"name": "org.webofthings.thngs.camera",
"description": "This is the camera in my room!" }, {
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488" } ]'
Input
[
{
"name": "org.webofthings.thngs.camera",
"description": "This is the camera in my room!"
},
{
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488"
}
]
Response
An array of the IDs of thngs that were successfully created.
Status: 200 OK
[
"4f0d53040b1cdc364a000001",
"44ed3d1ad0b1cdc02490081ca"
]
Listing thngs
Get a single thng
GET /thngs/{id}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/thngs/{id}'
Response
Status: 200 OK
{
"id": "4f0d53040b1cdc364a000001",
"name": "org.webofthings.thngs.camera",
"description": "This is the camera in my room!!!",
"is_public": true,
"latitude": null,
"longitude": null,
"created_at": "2011-04-18T23:23:56Z"
}
All timestamps are returned in ISO 8601 format:
YYYY-MM-DDTHH:MM:SSZ
Get all thngs
GET /thngs
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/thngs'
Response
Status: 200 OK
[
{
"id": "4f0d53040b1cdc364a000001",
"name": "org.webofthings.thngs.camera",
"description": "This is the camera in my room!!!",
"is_public": true,
"latitude": null,
"longitude": null,
"created_at": "2011-04-18T23:23:56Z"
},
{
"id": "44ed3d1ad0b1cdc02490081ca",
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488",
"created_at": "2011-11-28T18:23:41+00:00"
}
]
All timestamps are returned in ISO 8601 format:
YYYY-MM-DDTHH:MM:SSZ
Editing a thng
PUT /thngs/{id}
Input
{
"description": "This is the camera in my room!!!"
}
Response
Status: 200 OK
{
"id": "4f0d53040b1cdc364a000001",
"name": "org.webofthings.thngs.camera",
"description": "This is the camera in my room!!!",
"is_public": true,
"latitude": null,
"longitude": null,
"created_at": "2011-04-18T23:23:56Z"
}
Deleting a thng
DELETE /thngs/{id}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X DELETE
'https://evrythng.net/thngs/4f0d53040b1cdc364a000001'
Response
Status: 200 OK
Properties
Creating properties
Each thng can have various properties (properties are simple key/value pairs).
Create a single property
POST /thngs/{identifier}/properties
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X POST \
'https://evrythng.net/thngs/44ed3d1ad0b1cdc02490081ca/properties' \
-d '[ {
"key": "Volume",
"value": "20" } ]'
Input
{
"key": "Volume",
"value": "20"
}
Response
Status: 201 Created
{
"key": "Volume",
"value": "20",
"created_at": "2011-04-18T12:10:56Z"
}
Create many properties
POST /thngs/{identifier}/properties
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X POST \
'https://evrythng.net/thngs/44ed3d1ad0b1cdc02490081ca/properties' \
-d '[ {
"key": "Volume",
"value": "20" }, {
"key": "Consumption",
"value": "30" } ]'
Input
[
{
"key": "Volume",
"value": "20"
},
{
"key": "Consumption",
"value": "30"
}
]
Response
Status: 201 Created
[
{
"key": "Volume",
"value": "20",
"created_at": "2011-04-18T12:10:56Z"
},
{
"key": "Consumption",
"value": "30",
"created_at": "2011-04-18T12:10:56Z"
}
]
Listing properties
Get a single property
One can retrieve the value of various parameters for each object by addressing them directly.
GET /thngs/{identifier}/properties/{key}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/thngs/44ed3d1ad0b1cdc02490081ca/properties/Volume'
Response
Status: 200 OK
{
"key": "Volume",
"value": "20",
"created_at": "2011-04-18T12:10:56Z"
}
Get all properties of a thng
GET /thngs/{identifier}/properties
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/thngs/4ed3d1ad0b1cdc02490081ca/properties'
Response
Status: 200 OK
[
{
"key": "Volume",
"value": "20",
"created_at": "2011-04-18T12:10:56Z"
},
{
"key": "Consumption",
"value": "30",
"created_at": "2011-04-18T12:10:56Z"
}
]
Update a property
Properties can be updated and are identified by their key:
PUT /thngs/{identifier}/properties/{key}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X PUT \
'https://evrythng.net/thngs/44ed3d1ad0b1cdc02490081ca/properties/Volume' \
-d '{ "key": "Volume", "value": "30" }'
Input
{
"key": "Volume",
"value": "30"
}
Response
Status: 200 OK
{
"key": "Volume",
"value": "30",
"created_at": "2011-04-18T12:10:56Z"
}
Deleting a property
DELETE /thngs/{id}/properties/{key}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X DELETE
'https://evrythng.net/thngs/4f0d53040b1cdc364a000001/properties/Volume'
Response
Status: 200 OK
Collections
- Creating a collection of thngs
- Listing collections
- Editing a collection
- Deleting a collection
- List all thngs in a collection
- Adding (existing) thngs to a collection
- Removing a thng from a collection
- Removing all thngs from a collection
Creating a collection of thngs
POST /collections
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X POST \
'https://evrythng.net/collections' \
-d '{ "name": "Home Collection", "description": "Contains all the things I have at home" }'
Input
{
"name": "Home Collection",
"description": "Contains all the things I have at home"
}
Optional Parameters
- description
- (string) An string that gives more details about your collection.
- is_public
- (boolean) Sets visibility setting for the collection, e.g.,
true(default is:false).
Response
Status: 201 Created
{
"id": "44ed3d1ad0b1cdc02490081cc",
"name": "Home Collection",
"description": "Contains all the things I have at home",
"is_public": false,
"created_at": "2011-04-18T23:23:56Z"
}
Listing collections
Get a single collection
GET /collections/{id}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/collections/44ed3d1ad0b1cdc02490081cc'
Response
Status: 200 OK
{
"id": "44ed3d1ad0b1cdc02490081de",
"name": "org.webofthings.thngs.cameras",
"description": "Contains all my cameras",
"is_public": true,
"created_at": "2011-04-18T23:23:56Z"
}
Get all collections
List an authenticated user’s collections of thngs:
GET /collections
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/collections'
Response
Status: 200 OK
[
{
"id": "44ed3d1ad0b1cdc02490081cc",
"name": "Home Collection",
"description": "Contains all the things I have at home",
"is_public": false,
"created_at": "2011-04-18T23:23:56Z"
},
{
"id": "44ed3d1ad0b1cdc02490081de",
"name": "org.webofthings.thngs.cameras",
"description": "Contains all my cameras",
"is_public": true,
"created_at": "2011-04-18T23:23:56Z"
}
]
Editing a collection
PUT /collections/{id}
Input
All thngs from the previous version of the collection are carried over by default.
{
"name": "Home Collection",
"description": "Contains all the things I have at home"
}
Response
Status: 200 OK
{
"id": "44ed3d1ad0b1cdc02490081cc",
"name": "Home Collection",
"description": "Contains all the things I have at home",
"is_public": false,
"created_at": "2011-04-18T23:23:56Z"
}
Deleting a collection
DELETE /collections/{id}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X DELETE
'https://evrythng.net/collections/44ed3d1ad0b1cdc02490081cc'
Response
Status: 200 OK
List all thngs in a collection
List an authenticated user’s collections of thngs:
GET /collections/44ed3d1ad0b1cdc02490081cc/thngs
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X GET \
'https://evrythng.net/collections/44ed3d1ad0b1cdc02490081cc/thngs'
Response
Status: 200 OK
[
{
"id": "4f0d53040b1cdc364a000001",
"name": "org.webofthings.thngs.camera",
"description": "This is the camera in my room!!!",
"is_public": true,
"latitude": null,
"longitude": null,
"created_at": "2011-04-18T23:23:56Z"
},
{
"id": "44ed3d1ad0b1cdc02490081ca",
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488",
"created_at": "2011-11-28T18:23:41+00:00"
}
]
Adding (existing) thngs to a collection
PUT /collections/{id}/thngs
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X PUT \
'https://evrythng.net/collections/4f0d98ab0b1cdc41d7000001/thngs' \
-d '["4f0d53040b1cdc364a000001", "44ed3d1ad0b1cdc02490081ca"]'
Input
An array of thngs’ IDs.
[
"4f0d53040b1cdc364a000001",
"44ed3d1ad0b1cdc02490081ca"
]
Response
An array of the IDs of thngs that were successfully added to the collection.
Status: 200 OK
[
"4f0d53040b1cdc364a000001",
"44ed3d1ad0b1cdc02490081ca"
]
Removing a thng from a collection
DELETE /collections/{id}/thngs/{id}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X DELETE \
'https://evrythng.net/collections/4f0d98ab0b1cdc41d7000001/thngs/4f0d53040b1cdc364a000001'
Response
Status: 200 OK
Removing all thngs from a collection
DELETE /collections/{id}/thngs
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
-X DELETE \
'https://evrythng.net/collections/4f0d98ab0b1cdc41d7000001/thngs'
Response
Status: 200 OK
Search
Get results that match specified query
GET /search?q={search_query}
Or, in curl:
curl -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.evrythng-v2+json' \
-H 'X-Evrythng-Token: <token>' \
'https://evrythng.net/search?q=Room&geocode=43.772828,11.249488,5km&type=mine'
Optional Parameters
- q
- Search query (should be URL encoded). The text of the query will be searched into to the
nameanddescriptionfields (case-independant search) of all your thngs and all public thngs, e.g.,:Cafe%20DiemorAndroid. - geocode
- Returns thngs located within a given radius of the given latitude/longitude.
The value is specified by
latitude,longitude,radius, where radius units must be specified as either “mi” (miles) or “km” (kilometers). Example:-14.407778,-71.3,5km - type
- (
mine|all) Does the search either over my thngs (mine) or all public thngs (all).
All the parameters can be combined (e.g., q=Camera&geocode=43.772828,11.249488,5km&type=all
Note that results might be paginated (look here for a description of how we handle pagination).
Response
Status: 200 OK
[
{
"id": "4f0d53040b1cdc364a000001",
"name": "org.webofthings.thngs.camera",
"description": "This is the camera in my room!!!",
"is_public": true,
"latitude": null,
"longitude": null,
"created_at": "2011-04-18T23:23:56Z"
},
{
"id": "44ed3d1ad0b1cdc02490081ca",
"name": "Room-212-Santa-Maria-Novella",
"description": "Room 212 at the Santa-Maria Novella in Florence, Italy",
"is_public": true,
"latitude": "43.772828",
"longitude": "11.249488",
"created_at": "2011-11-28T18:23:41+00:00"
}
]
Usage Guidelines
Rules of engagement
For the moment, our service has been made available only via a private beta program. You get to use EVRYTHNG for free for a while, while in exchange we’ll ask for your feedback on how you use and find it, how it can be improved, what problems you encounter, and so forth.
Your participation is subject to your acceptance of our terms of use and our license agreement, that are available online. You are requested to keep your usage of our platform within reasonable limits (up to 5000 requests per day).
Fair Usage Policy
We are aware of the risks of constrained bandwidth and storage resources compromising the viability of the beta program if usage moves beyond scope. The serving environment has been sized to provide a testbed for application development rather than a highly scalable, and fully resilient service.
Therefore we have imposed artificial limits on how the platform is to be used, managed through Usage Restrictions. The limits imposed are “soft” and your application will not stop working when the limits are exceeded, however accounts that constantly exceed these limits can be temporarily suspended.
In the event you require more than what is offered, please contact us and we can provide expanded resources to meet your needs.
Code Samples and Libraries
Official Wrappers
Java
- Java wrapper (written by EVRYTHNG)
Ruby
- Ruby wrapper (written by EVRYTHNG)
Community Contributed Samples, Wrappers and Projects
Arduino
- A project for uploading data to the EVRYTHNG API from Arduino.
Get the code! | Contributed by Javier Montaner
Getting Support
We provide free support, but before contacting us directly, we do ask that you make sure that you’ve exhausted the available resources we offer described below.
Discussion Group
You can also, join our discussion group and get involved into our community. You will meet other users, share project ideas and learn about their experiences with our services. As a valued member of our developer community you’ll always be the first to know about our latest releases, code samples, new features, and many more.
FAQ, Ideas, Suggestions, Bugs, Knowledge base
For more technical help you can explore our knowledge base where you will find our FAQ, problems and solutions other users have experienced, and also propose and vote for new features you’d like to see on EVRYTHNG. If your question remains unanswered or your problem unsolved, you can create a ticket using the little widget on the left of your screen (“support & feedback”), or simply by writing us an email.
Service Status
We are working very hard to make sure our service are always up and running. However, as long as we rely on machines, downtimes and service perturbations do happen. We announce these on the @evrythngapi twitter account, don’t forget to follow it if you want to stay informed!