An API or Application Programming Interface is a feature that companies often include with their software. It lets other programmers write code to interact with the software, almost like a remote control.
Most social media software companies expose APIs, including Facebook, Twitter, Instagram, and many more. If you use a 3rd-party client for any of these, those clients only exist because they can write to published APIs. For example, TweetDeck used Twitter’s API to make a Twitter client for power users (and it was so good that Twitter ended up buying them).
Many business software companies have APIs, too – APIs let people build integrations to link together various pieces of business software into (hopefully) coherent solutions.
Moraware has an API as well. It’s not as complete as it could be, but it’s certainly better than nothing. It lets companies create integrations with their products, like this one for a laser measuring tool. It lets programmers write code to automate certain tasks in our software – we even have partners who have based their businesses on building solutions that use our software (inventory is a popular area where those partners have made compelling additions). That means we’re the hub of a software ecosystem now!
One of my favorite work responsibilities is supporting programmers who use our API … I’m in customer support, but I’m also a programmer, so it only makes sense that I’m the one who does this (it’s a luxury many small companies don’t have – usually a programmer who’s busy writing other features has to provide API support, which can be distracting). I always enjoy the transition from thinking about our user interface to thinking about writing code against our API.
I’ve even started answering questions by posting projects and code snippets to github. I’m pretty sure this technically makes me an open-source programmer (and project owner), which knocks an item off my bucket list. It also makes it a lot easier to reuse similar answers for different customers. It makes me strangely happy every time I check something in and share the link with a customer.
There’s a lot we could do to improve our API. I’m the biggest advocate for doing this, but we have finite resources, and these improvements haven’t risen to the top of the list yet (there’s no guarantee they ever will, either). A couple of years ago, nobody was even using the API, but now it’s being pushed to the limit.
When companies don’t provide an API into their software – or provide an incomplete one like we do – programmers end up “hacking” solutions instead … this isn’t nefarious – it just means using heroic ways to solve a problem, or simply doing things with software that were never intended (and aren’t supported). In our case, that means some programmers scrape the web user interface of our software to get the data they need.
By contrast, an API implies an agreement with outside developers that says, “This is what we explicitly allow you to do with our software, and this is what we’ll support.” Anything outside those bounds might happen to work, but there’s no guarantee it will continue working.
Now you know what an API is – it’s just a way for programmers to manipulate someone else’s software in a controlled, supported way.