Please read this carefully before developing with /data.mill for applications.
Before proceeding with this introductory guide, we recommend becoming familiar with JavaScript Object Notation (JSON). This document will provide you with basic understanding of our software as a service. It is designed to help you begin exploring and developing with our API as quickly as possible.
Before you can begin developing with our API, you must register a new account for free. The registration is free of charge. When you register, a developer account is created for you, which allows you to generate your API keys associated with your account. Your account will also allow you to communicate with our team regarding your application and usage and vice versa.
After you have created a new account you need to log in and create a new license key and further a new GUID (global unique identifier). These two keys are used as your personal API keys. Note that every API request requires both keys, so you will need to include them in each request. We highly recommend to generate new API keys for each application to get a separate usage report for each application.
In order to enable the payment of different currencies, we have introduced a system based on credit balance as payment for the individual functions. The currency of the account is called /data.mill credits. To use any function, the account must be charged in advance. If the credit price of a function is higher than the current balance, the function can not be executed. The credits will be deducted from your balance after executing the function. Your credits have no expiration date. After creating a new account you will receive a welcome package of 1,000 /data.mill credits to test your preferred API functions. Simply visit our online shop to get more credits. The credit price of each function can be found in the according API documentation.
Each function of our software solution has its own API endpoint which can be found in the according documentation. All request data must be provided in the body of the request and needs to be UTF-8 and URL encoded. Please keep in mind that you need to send your API keys in every request.
Our API returns all data in valid JSON. A few programming languages include native support for JSON. For those that don't, you can find a suitable library at http://www.json.org.
Remember, don't share your account information with anyone, including your API keys (license key and GUID)!
Note that embedding your keys in a distributed client application, like a desktop or mobile application, means that your keys can be compromised. Even secure storage or encrypted keys on a client can be breached. The only way to ensure your API keys remain safe is to have the client application access your own server, which then makes the appropriate request to the API using HTTPS and append your API keys. Even in the worst case scenario, if someone does manage to get your keys from your server, through a man-in-the-middle or other type of attack, you can easily regenerate your keys and update them in your server. If you have your keys distributed across numerous client applications, you won't be able to do that without breaking all of the clients.
For similar reasons, generally you should not commit your API keys to your code base, especially if you plan on building a distributed binary from that code base. Even if your code base is for a server application, we recommend reading your API keys from a configuration file running on the server, rather than committing it to the code base. This practice limits your exposure to only the boxes that the server is running on, allows you to easily swap out keys without having to rebuild and redeploy. This also prevents accidental sharing of your keys if you ever open source or otherwise share parts of your code.
Note that for teams working together on an application, there will be an obvious need to share an API key for your application. Our intention is not to discourage sharing along these lines, but rather sharing with people outside of your organization or who are working on other projects.
The sidebar represents the whole functionality of our API. Feel free to click on them to get detailed information about each function.