Tag Archives: Application programming interface

Google Releases Reseller API to Make Life Easy for Channel Partners

Send to Kindle

English: Two persons shaking handGoogle is making great strides when it comes to working with the channel. In addition to continuing to invest in resources and tools (and having great products), this week they announced a new Google Apps Reseller API, making it easier for resellers to add new customers, transfer customers, etc.

Being easy to work with is an important consideration for the channel when looking at their technology vendor choices. If two solutions are similar in terms of functionality, market demand and the economic potential, the channel will often err towards those vendors who are reducing the friction when it comes to working together. Making it easier for their customers to sign up for and deploy Google Apps will only help as Microsoft pushes Office 365 through the channel.

Streamlining the purchase process is only one way in which Google (and other vendors) should be making it easier for resellers to work with them. Technology vendors need to focus on improving the processes before the prospect considers their solution and afterwards, when their channel partners deploy and manage their solutions.Like Google, Backupify has had a reseller portal since the initial release of our Backupify for Google Apps solution. Short of having Backupify installed as an optional choice for every new Google Apps user, we wanted to make it easy for resellers to add and manage new Backupify users’ accounts.

Backupify is a Gold sponsor of the gSocial Conference, an independent group of Google Apps resellers and ISVs meeting in Sunnyvale, CA next month. If you have questions about the new Google Apps Reseller API, there’s likely no better place to meet peers and professionals with insider knowledge of the new functionality.

7 Principles for Implementing Comfortable APIs

Send to Kindle

7Here at Backupify, we consume many web APIs. Since we are in the process of building our own API, I thought it would be useful to list some of the features we consider important from a usability standpoint (think UX for APIs). Hopefully this will spur some discussion to help us address other usability concerns prospective developers might have.

1. Authentication
Don’t reinvent the wheel here. If you use something standard, then developers will be familiar with it and be quicker to get up to speed. Even with a complex standard like OAuth, using a third-party toolkit means that after you’ve done it once, it’s pretty trivial thereafter.

2. Versioning
Being rigorous about your API versioning can only benefit your users. No one likes to have their code mysteriously break on them due to changes in an API. That said, there are ways to make providing a versioned API easier for your users (as well as easier on yourself).

  • Fork a new (major) version whenever there is a breaking change – this includes behavior- or field-modification or removal.
  • Bump a minor version number for non-breaking changes (behavior or field additions), as a courtesy to your users. Typically you’ll only let the user select a major version of the API to use, but you can let them know the minor version in the response.
  • Allow multiple ways to specify version – i.e. request headers (more restful) and URLs (more user-friendly)
  • Provide a way for users to always employ just the latest version of your API (default version to latest).
  • Make it easy for code to tell what version of an API is being used – i.e. version string in response header, and git checksums for the minor version.
  • Have a well-documented phase-out period for old API versions, and actually stick to it.

3. Response Headers
Response headers are a convenient place to stick information that you’d like your users to see on every request. They’re also a good place to put operational data like the major.minor version string and throttling limits, e.g.

$ curl -i http://api.myapp.com

HTTP/1.1 200 OK

Content-Type: application/json

Status: 200 OK

X-OAuth-Scopes: read, write

X-Accepted-OAuth-Scopes: read

X-RateLimit-Limit: 1000

X-RateLimit-Remaining: 789

X-MyApp-Version: 1.280d6

I’m not sure if the above header names are de-facto standards, but github uses them, so that’s good enough for me.

4. Throttling
If you have to throttle requests, make it easy to determine limits. Response headers are my preferred location for this data. API endpoints also work for this, but make sure they don’t count against the API limit.

5. Formats
When possible, it’s nice to allow the user to select what data format they want to receive the response in, with a reasonable default. Using a document builder pattern helps a lot here. For example, in a ruby project, the rabl gem makes it very easy to provide both XML and JSON(p) output formats. You should also make sure to format exceptional/error response in the same format the data was requested in to make it easier for your users to see/parse those responses without parse exceptions.

6. Consistent parameter naming
If you have pagination parameters on some API calls, make those parameters the same for all API calls that need it. Likewise, any other cross-cutting parameters should be consistent across your API.

7. Documentation
This is key. Document all the endpoints and data formats, across versions, highlighting changes between versions. It’s also very nice to provide a live console for API exploration against real data.

Are there other elements of a successful API you think we missed? Do you disagree with some of our API standards? We welcome your feedback in the comments section.

Backupify Snapshot Now Exports Salesforce CRM Data – Full Salesforce Backup Coming Soon

Send to Kindle


Back in November, we asked our users which SaaS application our Snapshot data liberation tool should tackle next. Your demands led directly to Snapshot for Salesforce, which debuts its BETA release today.

Want a local download of all your Salesforce CRM data whenever you need it? Snapshot for Salesforce is the tool for you.

Of course, Salesforce already offers its users an option to download data, so what does Snapshot for Salesforce do that Salesforce itself doesn’t? Here’s the rundown:

Download your Salesforce data as often as you like. Snapshot offers downloads on demand, so if you want Salesforce exports on back-to-back days, Snapshot has you covered.

Select which Salesforce objects to download, and know beforehand if you need to. What if you just want to export your Leads table and nothing else? With Snapshot, you can hand-pick any and every object type for export, capturing exactly the data you want into a single download — then return the same day and export a completely different object set. Moreover, Snapshot displays precisely how many objects of each type are in your Salesforce account, saving you the trouble of downloading “empty” data types.

Password-protect your Salesforce downloads. Snapshot for Salesforce gives you the option to password-protect the ZIP exports you receive, giving your data an extra layer of protection.

Bottom line: Snapshot for Salesforce is designed to give you export flexibility above and beyond what is available from Salesforce itself. It’s another tool in your data ownership arsenal from Backupify.

During our BETA period, Snapshot for Salesforce is available only to Salesforce Unlimited and Salesforce Enterprise subscribers, but we have plans to open access to all Salesforce users in the near term.

As with all Snapshot products, your first download is free. During the Snapshot for Salesforce BETA, you can also request additional downloads free of charge! And don’t worry about exhausting your Salesforce API limits; we cap Snapshot’s daily API calls to protect your Salesforce access, so you can conduct regular Snapshot for Salesforce exports without fear of overtaxing your API bandwidth.

(Before you ask, yes, a Backup for Salesforce from Backupify is in the works to provide regular, automated online backups of all your Salesforce data. You can sign up here to be alerted when Backup for Salesforce is ready.)

Backupify SnapshotYou asked for it, now give Snapshot for Salesforce a tryand tell us what you think.

Backing Up Facebook On Backupify? You Need to Re-Authorize

Send to Kindle

In response to recent API changes within Facebook, Backupify users backing up Facebook need to re-authorize their accounts. If this applies to your account, you should receive the email below:

We’re contacting you to let you know that your Backupify account needs attention. Recent changes in Facebook’s API required us to alter our Facebook backup system. As a result, we need you to re-authorize your Facebook account to re-start your backups. Don’t worry, it’s easy. Here’s what you need to do:

Step 1. Login to Backupify.

Step 2. Select your Facebook account(s) listed in the Backup tab

Step 3. Click the Reauthorize button at the top of the page, then follow the instructions

That’s it. After these steps, Backupify will again be able to connect to your Facebook account and verify that all your Facebook data is safely backed up.

If you have any questions, or receive any email that takes you to a non-Backupify URL, please the Backupify Support Desk.

Understanding Your Twitter Archives

Send to Kindle

In the past week we have received multiple questions from Backupify’s Twitter backup customers asking how they can find their Twitter archives and what that data means. With over 34,000 Twitter backup accounts under management at Backupify, we figure they are not the only ones with this question.

First, it needs to be noted that at the time we have two Twitter archive formats. Our ‘old’ version is located on our legacy platform. (You may remember we switched Backupify’s platform from PHP to Ruby on Rails.) The old style of backups reside on the PHP side, the new version resides on Ruby on Rails.

If you are a legacy customer (meaning you have been using our backup system since before October) then your backups most likely reside on the PHP platform. If you’re unsure, log on, go to the Archives tab and see if you are brought to the below screen:

twitter backupIf you see the above screen, lets continue (if you see another screen, this means you’re account and backups reside on our new Rails platform, so read further down for details)

From the drop down menu in the Archives section, choose Twitter. Once clicked, you’ll see a list of links including a comprehensive PDF file we’ve generated that includes your Twitter bio and all of your Tweets (remember, if you signed up with us and had over 3,200 tweets, Twitter’s API only allows us to pull the most recent 3,200. However, every consecutive backup will backup more tweets – after awhile you will have accumulated much more than 3,200 tweets on Backupify). This serves as a timeline for all your Twitter activity. There are currently no links in the PDF to the tweet from Twitter, but you can click on your Twitter handle within the PDF to be directed to your actual Twitter profile.

Your Twitter backup also includes:

  • Sent and received direct messages
  • Favorited tweets
  • Followers and following lists
  • Mentions from others
  • Your own tweets

When you click on any one of these links, for example ‘Favorites’, you will be brought to a feed of all your activity within this folder. Again, you will not be brought to any individual tweet, direct message, or mention when you click on a link, but you will be brought to that specific part of your profile, such as the ‘Favorites’ section.

If you’re on the new Rails Platform, you will see the following Archives screen:

twitter backupNote: If you are on the old platform and want to migrate to the new platform, simply click on the box to the right (see photo here) once you log on and you will automatically be transferred to the new system. We are in the process of moving all legacy Twitter users from our PHP platform to the Rails platform. Soon, you will not have to switch between platforms and there will be one standard Twitter backup version. Please bear with us during this transition period.

From the Rails Archive section, select the desired Twitter account of which you would like to view archives. Right now, this data might not make much sense to you, but trust us, all the necessary data is there in full when Twitter allows us to restore (Read here as to why we cannot yet restore Twitter).

What you will see is a list of tweet data including the tweet ID number, node type, and the day it was backed up. When you click on ‘Details’ to the left, you will see this. Since you can’t do much with this data until restore is available, we have also made available a PDF to visualize your tweets in a sensible format. Click ‘Generate Twitter PDF Book’ and you will be emailed this document shortly after.

While we realize these archives are not ideal, we are working as hard as we can with what Twitter’s API gives us to allow you to do as much as you can with your archives. The PDF seems to be the most popular feature of our archive formats so far, but we are excited to offer you more to do with this data in the coming months. If there is a particular format or method you’d like to employ to view your Twitter archives, please feel free to let us know in the comments section.

Don’t yet have a Backupify Twitter backup account? Sign up here.