Announcement - Preview the all-new impCentral™ API

Many of our customers use a variety of great command-line and GUI tools to create and build great IoT connected products using the Electric Imp Platform. We think you will be thrilled with the new technology we’re introducing today as it’s going to make development tools more effective than ever before.

It’s called the impCentral™ API, the powerful successor to the Electric Imp Build API.

We launched the Build API in June 2015 as a means for advanced developers to interact with our impCloud™ directly rather than through our web interface. The Build API made possible a number of powerful developer tools, some from us, others from our growing developer community.

We have now completely redesigned and rewritten that API and the result is the impCentral API, a new technology focused on eliminating the complexities of IoT and complementing your overall product strategy by enabling you to securely develop, launch, manage and scale your IoT products with the tools and applications of your choice.

  • Simplified and consolidated — the impCentral API forms a single, consistent access point for any tool, of any kind that needs to talk to the impCloud, whether for development work, production control, device management — or all three.
  • More control and flexibility — the impCentral API embodies our advanced technology that enables customers to organize devices as their product workflow needs. For example, every Electric Imp customer has their own product development workflow: they may want a production-like environment for QA testing before going to a company-wide alpha test; then to a limited external beta test before pushing out to a few locations or to different contractors helping to build connected products and then, finally, update all devices. The impCentral API makes these once complex actions easy to do and yet flexible to meet your changing needs.
  • Seamless integration — the impCentral API uses open standards like the [JSON API specification](http://jsonapi.org/) to deliver consistent input and output for whatever task you need to perform, in a form familiar to web developers worldwide.

We’re making the impCentral API available as a public preview, which you can access here: https://preview-api.electricimp.com/v5.

First, you’ll want to check out the features the new API offers, which you can do by visiting our online documentation. We have a primer that will introduce you to the API’s new concepts, and a guide to help you quickly port your tool from the Build API. There’s also a full API reference, of course.

Existing Build API-based tools will continue to access impCloud. We are committed to giving toolmakers plenty of time to port their code to the impCentral API, and the two APIs will co-exist for the time being. Formal End of Life on the Build API will occur once impCentral is feature complete, at which time we will give 90 days notice of the Build API closure. So now is the time to begin planning your migration strategy.

In the meantime, we’ll be working to add more features and complete the impCentral API. You can find a list of known issues and limitations here.

As you try out impCentral’s many features, please let us know on the Electric Imp Forum how you’re getting on, let us know about any problems you experience, or if you have suggestions for future releases.

Kenny Lee,
impCentral Product Manager,
Electric Imp.

Hi

Just now, I’ve been trying to download my device logs using the new impCentral API via JavaScript. Running into the cross domain request error: "Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access. "

Works fine from a bash script, so I assume this is the usual cross domain JS problem. Are you supporting CORS or some other method to allow access via JavaScript?

Thanks!

Hi @randyking, thanks for reporting, we’re looking into it and will provide an update soon.

Thanks! If it turns out you can support JS, a working example of a request would be very useful!

Hi Randy. Surprisingly we never tested with locally-hosted browser-based calls… nice catch.

We’ll work on opening up CORS permissions to allow this use-case. It’s (short-term) going to be a little annoying because the uid / pwd auth endpoint will not be opened up – you’ll need to use login keys to get access, and those endpoints don’t exist yet (they’ll hopefully land next week).

Short version: once we’ve opened up API access, you’ll need to use curl / what-have-you to get a refresh token, then you’ll be able to hard-code that refresh token for the time being. Starting next week (insert legalese in re: no guarantees concerning timeframe implied), that changes to hard-coding or requesting a login key that you generate yourself using the API.

Let me know if any of that doesn’t make sense – great to see people using this.

  • a.

I’m closing comments here in favor of separate forum posts for easier tracking and separation-of-concerns; please feel free to open new issues as necessary. Thank you!