Upcoming Events in June

Memorial Day weekend (un)officially marked the start of summer and saw Team Kloudless at a number of events. First up, Hack UCI, where 200 hackers gathered for the final Major League Hacks event of the spring season. Eliot Sun, our CEO, and Vinod Chandru, our VP of Engineering, were on hand to help out with hacks and hang out with hackers.

Team Kloudless also hung out with the AutoDevBot team at their API hackathon and conference. Our co-founder Brian Tang spoke about API Design and Development, while Timothy Liu and David Thorman mentored hackathon participants. The best-use-of Kloudless API winner, chosen by Lise Statelman, allowed users to search for content on Twitter (by searching a hashtag) then send the search results to users’ cloud storage accounts for them to consume later. Congratulations to Quincy Larson and Noah Kaplan for their very cool hack!

Kloudless co-founder Brian Tang speaking at AutoDevBot API Conference

Kloudless will be participating in or hosting several events in June and we hope to see you there!


In the Bay Area

June 4
Kloud Kantina in Berkeley @ Kloudless HQ, 2075 Allston Way #203

We’ve hosted several Kloud Kantinas since April and have received positive feedback from attendees, including thanks for connecting entrepreneurs to investors and developers to community resources. Additionally, we’ve seen attendees’ product demos get feedback, valuable for helping them get to the next step in development. All this during fun times over pizza and beer. Want to get involved? Please join the Kloud Kantina Meetup group and get notifications of upcoming events! Or register on Eventbrite now!

June 6
Startup Weekend B2B in San Francisco @ Rocketspace, 180 Sansome Street
Screenshot 2014-05-29 10.24.11
For those unfamiliar with Startup Weekend, it’s a large, growing global community of passionate entrepreneurs with 45,000 alumni who have created more than 8,000 startups. Zaarly, FoodSpotting (acquired by OpenTable), and Giant Thinkwell are a few of the startups that were conceived and launched at previous Startup Weekend events. Attendees can expect Startup Weekend B2B to follow the same basic model as other Startup Weekends. Entrepreneurs pitch their startup ideas and get feedback from their peers. Teams form organically around the top ideas, which are selected by the community via popular vote. They have 54 hours to validate the market, create a business model, design and code the MVP before pitching it to judges.

We’re stoked to be a prize sponsor at Startup Weekend’s first business-to-business (B2B) focused event, where more than 100 hackers, designers, and business minds will collaborate during three days to create minimum viable products (MVPs) whose target customers are other businesses. Additionally, Kloudless co-founder Timothy Liu will be on hand as a mentor to offer teams support.

June 18
Kloud Kantina in San Francisco @ Microsoft San Francisco Centre, 835 Market Street, Suite 700
We’re bringing Kloud Kantina across the Bay for our first San Francisco event! This Happy (work) Hour will follow the same format as the others! Attendees will have the opportunity to meet other developers, designers, and entrepreneurs as well as give and solicit feedback on their projects, all over a bite and a brew. Since Kloudless is a Microsoft BizSpark company, we are excited to have Microsoft as our venue! Be sure to RSVP on Eventbrite or the Kloud Kantina Meetup group so we can enough bites and beer for all!


On the East Coast

June 13 – 15
MassHack in Boston @ Boston Convention & Exhibition Center, 415 Summer Street

While we’re West Coast at heart, we have lots of love for the East Coast. That’s why we’re excited to be on site at the first MassHack, where teams of 1–4 developers will work for 48 hours to create some innovative apps while connecting with the East Coast’s venture capital and academic communities.

MassHack Promo from MassHack on Vimeo.


Future Events

We’ve had requests for Kloud Kantinas in LA, NYC and St. Louis, Missouri. Where else should we have Kloud Kantinas? Let us know in the comments, by emailing hello@kloudless.com or by joining Kloud Kantina Meetup group and letting us know! You can also bookmark our blog, as we’ll share about any upcoming events we’re adding to the calendar as they happen.

Send Documents on Feature Phones with Twilio and Kloudless

Hey hey! Following an intense month of events, I got inspired by all the cool hacks at Hack(bright) for Good, companies at TechCrunch Disrupt and developers at Kloud Kantina.

I thought txt.us, a WhatsApp for feature phones (find their project source code here), was especially cool, so I wanted to see if I could take the idea one step further: the ability to send files via SMS using a link.


Team txt.us presenting at #hackbrightforgood

[tl;dr check out the finished Twilio + Kloudless project and the source code on GitHub to see an app that lets you send files stored in the cloud via SMS]

The Code

The application provides the following commands, which are sent via SMS to the application’s Twilio phone number:

  • ls – returns indexed list of visible folders
  • cd (<index>|..) – change to listed directory or to parent respectively
  • get <index> – Get an SMS with a link to download the file
  • send <index> <phone number> – send an SMS with link to file to number (e.g. +15555555555)
  • reset – starts your session back from the beginning

It is built using the Flask application that you created by the end of the Twilio SMS and MMS Python Quickstart. I had to add a bit of extra code to make it useable as a public web application, but the main cloud storage code interaction code is in the handler.py file. There I made the following translations from what I wanted into the Kloudless Python SDK code:

  • ls for accounts: kloudless.Account.all()
    this will list all accounts that your application has access to

    • In the final product, I end up storing account ID’s with phone numbers so that not every phone number sees every account.
    • To look up an individual account, you can simply do kloudless.Account.retrieve(account_id) where account_id is the id number of the account you want.
  • ls for a directory, if you have the right account object in account and the folder id in folder_id: account.folders(id=folder_id).contents()
    • To list the contents of the root folder for a particular account (with the account object stored in account): account.folders().contents() this works because the id defaults to the root directory of the cloud storage account.
  • get if you have the file object stored in file_obj and the account in account: account.links.create(file_id=file.id)
    • This returns a link object containing a url that the user can visit to preview (if the source supports it) or download the file.
    • I decided to just return a link, since I wasn’t sure whether all file types could be sent via MMS and most phones have some kind of web browser (though it might be fairly bare bones)
  • send is basically like get except that you are sending it to someone else so you have to make an extra Twilio API call

Once the basic commands were mapped out, it was relatively simple to wrap the functionality in an object that we can easily re-use.

The Twilio functionality I used was also very straight forward. For handling web hook responses, I simply create a TWiML response like so:

resp = twilio.twiml.Response()
resp.message("This should be the response from the command handler")

This can be returned to the Twilio webhook to send a response to an incoming text message. The command handler I made just outputs the message that we want to send back.

The only other functionality that I used was sending messages, which is also really straight forward:

twilio_client = TwilioRestClient(account="blah", token="blah")
                              body="This is a message!")

And that is it, those are the basic pieces I used to make this app, the core parts of this application is only about 150 lines of code, the rest is just fluff to make the application more web ready (like having an actual website to log in and manage connected accounts).

Using Twilio + Kloudless

To use Twilio+Kloudless, first click the link and enter your phone number.
Check your phone for the confirmation code and enter it into the form field. Once your account is confirmed, you can connect your different cloud storage accounts via the web interface.

From your phone, text “ls” to the stated number, which then prompts you through interacting with your connected accounts. I won’t spoil all of the fun, so I’ll let you check out the project yourself.


Throughout this project, I didn’t have to write a single line of cloud storage service specific code, and with just those simple commands detailed above, this app works with accounts from any of the nine services supported by Kloudless.

With Twilio and Kloudless, you can use a feature phone to send files (no need for a smartphone!). Check out the code on GitHub — feel free to fork it and build your own functionality on top. If you want to get started on your own project, sign up for Twilio or Kloudless here. To bounce ideas around, leave a comment below or drop us a line at hello@kloudless.com.

Dev Log: Q&A with Chris Wang, PhotoSinc

Kloudless’ API has been available for just more than a month, and it’s clear — our developers are awesome! Dev Logs are the stories of developers who have created some sweet hacks using Kloudless and other technologies. Know of a hack or smart dev who should be featured in Dev Logs? Email an@kloudless.com for next steps!

Chris Wang is featured in today’s Dev Logs — check it out!

Tell us a bit about yourself — who are you and what kind of problems do you like solving?

I just finished up my second year at Georgia Tech studying Computer Engineering, and I’m off to intern at Qualcomm in San Diego. Most of my experience and interests lie in embedded software, but as of this past semester’s hackathon season, I’ve been learning a lot of Java and Android development. I credit the majority of my knowledge and intuition to massive open online classes (MOOC) held through edX, Coursera, and Udacity, and I am an avid MOOC supporter and contributor. I don’t understand why the majority of people with an internet connection aren’t taking advantage of these services, as they are free and are from the most prestigious universities and amazing people in the world… Anyway, I enjoy solving any type of problem that isn’t linear in nature and I enjoy hacking things that make my everyday life easier. My handle for most social media and Github is christopherjwang. Now that it is post-hackathon season, and I’m a lot more experienced, the majority of those Github hackathon projects will be getting a complete overhaul and maybe some cute, snarky comments.

What inspired your project at the Emory Hackathon?

PhotoSinc Christal Wang and Kush Patel

PhotoSinc at Emory Hackathon was inspired by one of the worst combinations—laziness and impatience. I’m tired of waiting for people to upload or share photos and videos on their favorite sites and I’m not even sure what types of pictures there are out there of me. It’s also a hassle to bug people to upload everything and most of the sharing methods aren’t necessarily private, as not everything should be on social media. Now that I think of it, I’m still waiting to get a video that was made about two years ago of me beating my roommate in a game of Starcraft 2 with my feet. Imagine all the other precious moments captured in digital media that I don’t have…I thought this was going to be a relatively simple project, but I was more wrong than my high school teacher yelling at me that “NOTHING IS SMALLER THAN A CENTIMETER!” With that misconception, I really wanted to give my current roommate (not the one I beat at Starcraft) and my sister a little introduction to hackathons and computer science. I like the idea of using hackathons to introduce newcomers to computer science and programming, as I was in the same boat about a year ago. Emory was also local, and didn’t require a bus ride more than ten hours—so I thought this project and the situation would fit perfectly together.

How / why did you decide to use the Kloudless API?

I used Kloudless because I’m a huge Kloudless fan and their support is nothing short of incredible. I had no idea what I was doing, and submitted a support ticket at 3am at Bitcamp (UMD’s Hackathon) the week before Emory Hackathon, and I got a response from Vinod, Kloudless’ co-founder, fifteen minutes later. At Emory, he shot me an email because my account showed up in a single error log. I want him running every warranty company on the planet. I tried using Kloudless’s ability to share uploaded files easily, and used their service in a super hacky way to replace an actual web server for (failed) facial recognition. (ed. note: Vinod is pretty awesome, though we’re happy that he’s running engineering at Kloudless instead of warranty companies.)

What would you like to see created using the Kloudless API?

I’d like to see Kloudless support for Flickr, and have someone make a “cloud storage system” that disguises your files as photos, and utilizes the 1tb of data Flickr gives you. This has probably been done by now, so maybe someone can use Kloudless to remotely backup all of your cloud storage solutions to Flickr, just in case something weird happens.

What do you plan to build next? Does it include Kloudless? Why or why not?

I’m taking a step back and finishing up all the loose ends I’ve made with hackathon projects. My teammate, Pavleen Thukral, and I are looking to polish up two projects in particular—FocusNotes, a google glass note-taking app, and Lockbox, a more secure cloud storage utilizing the cloud storage solutions commonly used (e.g. Dropbox, Google Drive, OneDrive). Both of these projects utilized Kloudless! I also need to take the time to fill up all the holes in my knowledge of computer science. I think I’m at a stage where I can “make things work”, but that is only acceptable to me to a certain extent. This ability is great in a hackathon setting, but I know it is not sustainable. Regardless, I am heavily involved in projects at the university and start- up scene. I’m the only undergraduate working on the back-end grading system for the physics massive open online course hosted at Georgia Tech and I’m an embedded software engineer and Android developer at Monsieur Co., a fledgling start-up making a robotic bartender.

Chris Wang and Pav Thukral 3rd place, VTHacks

Thanks for sharing your story, Chris! Come back next week to get Pav and Christal’s story, and sign up to get your own Kloudless developer account. Swap tips and ideas in the comments below or ping us at hello@kloudless.com!

Hi Hackers! The Cloud Storage API Now Available

It’s been a whirlwind hackathon season, with Team Kloudless supporting Hack PSUBitCampEmory Hacks, Hack UVa, Hack RU, LA Hacks, Hack(bright) for Good, She Hacks ATX and others. We’ve been excited to take part in these events as we opened up our API, the cloud storage API that allows developers to code once and integrate many cloud storage services. Currently, Kloudless supports Dropbox, Box, Google Drive, Microsoft OneDrive, Copy, Citrix ShareFile, Bitcasa, Egnyte and SugarSync.

development time too damn high

We proudly support hackathons to help developers quickly integrate cloud storage services into their apps. We’re pleased to share some of the more interesting hacks we’ve seen so far.



FocusNotes, a Google Glass app built at BitCamp, allows users to take notes in class via a Bluetooth keyboard while eliminating the need to break concentration or take eyes off the professor. The creators of FocusNotes used Kloudless to save for later viewing on a computer. Pretty epic and deserving of the quadricopter.

Kloudless Quadricopter quadcopter drone giveaway

From the developer:

FocusNotes allows you to focus on a speaker at the same time as focusing on your notes by creating a simple yet powerful bulleted note taking text editor on Glass. You can follow along with the professor wherever they may walk in the room and have your notes right in front of you. Just use your own laptop keyboard to type and use our cool UI. Plug glass into your laptop so it never runs out of juice. Simple! Just save it and we push the file, completely converted to a beautifully formatted bulleted Word Document, to your SkyDrive [using the Kloudless API], as if you’d taken notes on a laptop.



PhotoSinc, created at at Emory Hackathon, lets users privately share photos cloud to cloud, bypassing social media. Check out this video from the developer:

PhotoSinc* will recognize people in your photos and send links of those images from your phone. It utilized IDOL to build a database for facial recognition, Kloudless API for flawless syncing to the cloud, and Twilio to send out texts. PhotoSinc is a safe and hassle-free way to share and receive photos.
*Since Lyft and other companies are switching the ‘i’ to a ‘y,’ we decided to go against the flow because ‘PhotoSync’ is already taken.


Photo Kloud

At Hack(bright) for Good, Matt Green created Photo Kloud, a lightweight Chrome extension that enables users to easily save web images to their cloud storage accounts. Simple, elegant and got the job done.


Wish you won a quadricopter? We’re giving away more throughout open beta! Sign up for a free developer account at developers.kloudless.com and add api@kloudless.com to your address book. We’re emailing exclusive opportunities to win quadricopters and you don’t want to miss out. Keep abreast of happenings by following @KloudlessAPI on Twitter, dropping us a note in the comments below or connecting with us IRL at Kloud Kantina!

Where in the World is Kloudless?

It’s been a whirlwind that’s keeping Team Kloudless BUSY! Here’s what’s coming up soon — we hope you can join us for some (or all!) of these activities, because you are awesome and they’re just plain fun!

Kloud Kantina

Kloud Kantina
Every other Wednesday, Kloudless hosts a free Happy (work) Hour for open co-working. Stop by with your projects and share what you’re working on. Get feedback from other smart people over pizza and beer.

The next Kloud Kantina is this Wed., 5/21, at Kloudless HQ. Click to register on Eventbrite today! Registration closed? Just tweet @KloudlessAPI with the #KloudKantina and we’ll let you in!


Egnyte logo
Egnyte Webinar Series, Egnyte API: Develop New Integrations
On Thurs., 5/22, our very own CEO Eliot Sun will be hosting a webinar with Egnyte’s principal product manager, Sean Puttergill. They’ll discuss what to do if you need to integrate 3rd party storage (such as Egnyte!) with your current internal applications and workflows. You’ll learn how to:

  • Access the API and start developing today
  • Easily develop new enterprise applications
  • Streamline your email workflow with Kloudless and Egnyte

Specifically from Eliot, you’ll learn:

  • What problem is Kloudless solving?
  • Evaluating Egnyte for fit and features
  • Implementation and experience
  • Outcome and learning

Register for the Egnyte API: Develop New Integrations webinar here.

Looking for fun Memorial Day Weekend plans? Kloudless will be at Hack UCI in Orange County. Eliot and the Kloudless team will be on hand to help you with whatever you need. While our expertise is in integrating cloud storage services, we’re pretty good at getting the network back up, helping out with GitHub set up, or just being around for a Settlers of Catan break. Stop by, say hi and grab some swag!

Screenshot 2014-05-19 14.23.08

AutoDevBot API Conference and Hackathon in SF is where co-founder Brian Tang and the rest of the team will be! We’ll be speaking on API design and development, drawing from our experience creating the Kloudless API. Want free or 50% off conference tickets? know in the comments below, or tweet @KloudlessAPI!


We hope you can join us at any or all of the above events. Any cool developer community events you’re excited about? Let us know in the comments below, or tweet @KloudlessAPI to let us know about them!

Sharing files with Citrix ShareFile: a Look at the API

Disclaimer: This is coming from my personal experience with the Citrix ShareFile API and other cloud storage APIs. It is meant as a summary of the good aspects as well as the “gotchas” that I have encountered. Hopefully it will provide some insight into decisions that were made when designing the Kloudless API.
Developing for Enterprise Cloud Storage

Google and Dropbox are household names while Box is in the headlines for its ongoing IPO. However, the enterprise cloud storage space is a completely different landscape, with various companies like SugarSync, Egnyte, Bitcasa, and Citrix ShareFile all competing for companies’ cloud storage needs. What should you, as a developer, consider when addressing enterprise customers’ concerns?

Citrix ShareFile Features

ShareFile recently revamped their API, transitioning from an HTTPS endpoint to an ODATA specific HTTP Rest API. As a developer, the new API looks like many others, offering a familiarity and ease to integrate functionality. However, a few unique features separate ShareFile from the rest.

Control Planes (with Subdomains)
Like many other API providers, Citrix ShareFile implements the OAuth 2.0 protocol for authorization. ShareFile’s endpoints are:

  • Request Token
  • Access Token
  • Refresh Token
  • API requests

The authentication endpoint is separate from API requests based on Control Planes. The Control Plane separates user authentication, access control, reporting, and brokering from where any corporate data is stored. Enterprises can now feel safe about their data as Citrix’s service offers an API to interact with that data.  In addition, the subdomains allow for user creation, which is extremely important for CIOs, enterprises, and other groups. As a developer, I notice that the <appcp> corresponds to a specific control plane (sharefile.com, securevdr.com, etc.), which must be tracked.

On Premise Storage Zones

In this diagram, you’ll notice the second feature of Citrix ShareFile’s architecture: Storage Zones. Citrix ShareFile gives you the flexibility to choose where corporate data is stored with Citrix-managed Storage Zones or Customer-managed Storage Zones in two flavors: Amazon S3 or Microsoft Azure. Plainly, some companies want their corporate data on premise or on their own servers. This is a great feature for an Enterprise cloud storage provider. Now, as a developer, how does all of this affect me?

ShareFile API

The underlying product architecture of Citrix ShareFile gives insight into how the API is structured. Most endpoints look familiar, but I will highlight the key similarities and differences.

Items endpoint
The Items endpoint is the typical interface to a user’s files and folders. ShareFile has specifically exposed the following entities: File, Folder, Note, Link, and Symbolic Links. Each item entity has its own OData representation with the corresponding functions to create folders, retrieve folder contents, update an item, and even create links to specific items.

Storage Centers and Zones endpoint
The Zones and Storage Centers allow for interaction through the API. This is extremely important if companies want to deploy private storage centers or zones. Other cloud storage providers do not have or expose this functionality because of the architecture. One thing to keep in mind as a developer is that a user’s data may be spread across different storage centers and zones, but to a user, it appears as a single account.

Kloudless and ShareFile

At Sharefile’s Synergy Conference in early May 2014, interesting new features were announced. ShareFile can now connect not only to Sharepoint but a few other enterprise content platforms like Alfresco, Documentum, and Filenet. The connection theme continues, with the Kloudless API allowing developers to connect to enterprise and consumer cloud storage services through a standard API interface. Kloudless gives the developer flexibility in choosing what cloud storage features to integrate into their product including native functionality and user interface components. If you want to develop for users with both personal and company cloud storage accounts, you can get started quickly and easily with Kloudless — we’ll help!

Take a look at developers.kloudless.com as we continue to improve our developer friendly resources (SDKs, API mashups, and example apps)! Have any ideas or questions about the Kloudless API? Leave your questions and comments below, or drop a note to hello@kloudless.com.

Eat, Drink, and Talk Tech: Kloud Kantina is coming to YOU!

The inaugural Kloud Kantina saw 25 technologists and entrepreneurs gather in Berkeley for a midweek happy hour with work and networking in a relaxed, casual environment.

Lise and Jackson preparing for Kloud Kantina

These events are held so that developers of all levels can meet up, brainstorm, get feedback from peers and experts while indulging in some great food and drinks.

Attendees from the first Kloud Kantina, hosted April 23 at Kloudless’ Berkeley headquarters said it was a great opportunity to get help on current projects and were excited to learn about and connect with community resources they were unaware of.

Kloud Kantina

The Next Kloud Kantina

This Wed., May 7th Egnyte is opening up their new Mountain View headquarters for the next Kloud Kantina. Join us and Egnyte from 6-8 PM for fun, food and drinks. Space is limited, so reserve your ticket here.

Kloud Kantinas will continue every other Wednesday throughout the Bay Area — keep an eye on our Facebook or Twitter to learn more about the next Kantinas. Not Bay Area based? No problem! Let us know where you’d like to see a Kloud Kantina! We’ll host them throughout the U.S. in select cities and let us know if you want your city to be on the list.

Want to get involved in Kloud Kantina? I’d love to chat with anyone who is interested in connecting developers to resources, fostering innovation and growing the community. Tweet at @KloudlessAPI with the #KloudKantina or just drop me an email.
Hope to see you at Kloud Kantina!

Kloud Kantina Banner

Migrating Google Docs to Google Drive

Google’s Data Standardization

Google has been known as the king of (big) data, and Kloudless integrates with Gmail to move data from email to cloud storage. Google’s push for organizing the world’s information and making it universally accessible and useful was ahead of its time. This clearly shows in Google’s design of a data protocol for developers to develop products on Google’s platform. When Kloudless integrated Google Docs, it was part of a larger list of “GData” APIs.

The Documents List API was part of a greater set of APIs following the Google Data Protocol. Besides docs, there were:

  • analytics
  • apps
  • blogger
  • books
  • calendar
  • contacts
  • exif
  • finance
  • geo
  • health
  • marketplace
  • photos
  • sites
  • youtube

When Google Drive was introduced in 2012, Kloudless had an opportunity to retool its functionality. Recently, the rise of JSON has led to APIs moving to a different data standard.

Migrating from Documents List to Drive SDK

The Google Drive SDK uses the same infrastructure as the Documents List API; however, there are a few key differences beyond the inherent syntactical changes.

Authorization Mechanisms and Scopes

At Kloudless, we wanted to facilitate users’ account creation and management. Part of this process was to help users keep track of their identity with OpenID, OAuth 1.0 and OAuth 2.0. Switching from Docs to Drive meant that beyond just switching scopes, we would be moving to a pure OAuth 2.0 implementation to authorize users. Google overhauled their entire authentication system beyond just Google Docs to promote Google+ sign in. The OAuth protocol is an open standard for authorization and many services moved away from the OAuth 1.0 RFC specification to the OAuth 2.0 RFC. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices.

Design and Data types and Atom Pub XML to JSON

While Kloudless predominantly uses JSON in most of its API, Google’s Data protocol allows for differentiating data types more succinctly and creating resources with both JSON and Atom Pub XML.  The underlying file store of GDrive allows for more robust querying based on the numerous metadata attributes in the XML (now also in JSON).  Furthermore, Google Drive allows you to have multiple files with the same name and to have multiple parent folders.  The structure of Google Drive is extremely flexible although Collections are now deprecated.

File uploads and secure file storage!

Google Drive allows for 10GB uploads to their service.  While other services allow for unlimited file size like Dropbox (through chunked uploads / desktop client) and Bitcasa, Google Drive’s free tier has a 15GB limit with the cheapest options to upgrade for storage.

You also have the most comprehensive access controls for a consumer application of files with Google Drive.



Advantage: Kloudless

Kloudless works hard to have the most current API, so developers can work on user focused applications without worrying about features that no longer exist.  With every major revision to an underlying cloud storage API, Kloudless will update its back-end infrastructure to account for changes with seamless integration.  So for example, any user of the Kloudless product would not have noticed any change when moving from Google Docs to Google Drive.  We aim to provide the same seamless upgrade for all of our cloud storage services in our API.

Let us know if you’ve migrated from Google Docs to Google Drive and what you think!