SmartFile API Overview
The SmartFile API is available to our customers and partners to automate file sharing tasks. The API can be used for a variety of purposes.
- Create user accounts in response to some trigger.
- Integrate online backup with your software.
- Manage user accounts with an external provisioning system.
- Add file sharing to your application or web site.
The API utilizes an industry-standard RESTful interface. This interface is extremely lightweight and compatible with any web-enabled programming platform.
SmartFile Terms
There are a number of terms we use at SmartFile to identify things. These terms may or may not be obvious. Here are some definitions of terms you will see throughout our API and it's documentation.
- Quota - Limits the amount of system resources an entity can consume. Users, Groups and Sites can all have Quotas.
- User - An account used by a single person or entity. A User account may have a Quota defined for it. A user belongs to a site and can only access resources within their assigned site.
- Group - A set of users grouped together to enable them to share some common attributes. For example, permissions assigned to a group are applied to Users which are members of that group.
- Site - An entity which can have an unlimited number of users associated with it. It also has an assigned quota and can have it's own web address. Sites can also be branded to effect their color scheme.
- Account - For the most part an Account is equivalent to a Site. Each Account has a Site and vice-versa. The only exception to this is the Reseller Account.
- Reseller Account - A special Account that allows access to multiple Sites. This Account type is generally used when a company wishes to resell SmartFile services to their customers.
- Package - Resellers have the ability to define their own products. We call them packages, a package consists of a Quota, price and annual subscription availability. You can build your own Packages in SmartFile and use our API to integrate them into your CRM solution.
- SiteUser - Resellers can in addition to managing Sites also manage the Users of their Sites. These Users are referred to as SiteUsers; a SiteUser exists as a child of a reseller's site.
SmartFile API Access
To access the API, you must use an API key and password. These identifiers are not the same as your SmartFile account username and password. You must authorize API access for your account.At this time only HTTP Basic authentication is supported.
We fully support SSL with a valid certificate. We strongly encourage the use of SSL when connecting to our API.
SmartFile API Version Numbers
The SmartFile API is identified by a version number. Our version numbering scheme consists of a major version and a minor revision. The very first version of our API was version 1.0 (major: 1, revision: 0).
The API version number is expressed in the URL that is used to access our API. for example, version 1.0 of our API is available at the following URL.
http://app.smartfile.com/api/1.0/As we make additions or improvements to our API we will increment the revision number. The reason we do this is to ensure that our changes do not adversely affect anyone that is currently using our API.
From time to time, we will make changes to our API that are guarenteed to cause problems for our users. When we do this, instead of incrementing the revision we will start a whole new major version. For example the first time this happens, the API version will change to 2.0.
The Bleeding Edge
For any given major version, there may be a number of revisions. Generally when you start an integration project, you will want to use the latest API version. However as time passes, and new API revisions are made available, it could be a hassle to update your references to our API to point to the latest and greatest. This is why we provide a shortcut for tracking a major API version. For example /1/ will always point to the newest SmartFile API revision within version 1 of the API. This means that you can always count on http://app.smartfile.com/api/1/ to be the latest revision of API version 1.
SmartFile API Sample Clients
To get you started quickly, we provide a number of sample implementations in various programming languages.
- C# - This is the second longest example in our library. I don't envy you!
- Java - Just in case anybody still uses Java. It's Enterprise-y.
- PHP - Very popular, chances are you know PHP.
- Python - This is our native language here at SmartFile.
- Bash - This one is just for fun. We don't really expect you will be integrating with our API using shell scripts, but who knows!
If you don't see your language of choice above, don't worry, if you have ever written software for the web, you should have no problem using our API. At the very least, the above should be able to search as a low-level roadmap for your own implementation. See below for the details of how to communicate with the SmartFile API.
SmartFile API Guides
If you are planning to utilize our API, you will need the nitty gritty details. Each specific version of the SmartFile API will have a set of function calls and expected return values. Below you can find the documentation for each of the available versions of the SmartFile API.
