API as a product. How to sell your work when all you know is a back-end
Guide on how to release and sell your code without managing a website, servers, users, and payments. With 0$ up-front cost.
Guide on how to release and sell your code without managing a website, servers, users, and payments. With 0$ up-front cost.
Photo by David Rangel on Unsplash
In this post, I will go through my experience of developing, deploying, and selling my API via an API marketplace. I did not have to set up a website or think about how to integrate payment processing solutions. I just wrote my code and deployed it.
80% off until I hit my first 100 paid subscribers
Building a startup requires a team. A team of a few jacks of all trades: coders, marketing, sales. And, it is a long and exhausting path, therefore, low chances to succeed.
You do not have to launch a startup to begin your own thing. I believe there is a way to make products while doing only the back-end job.
Over the past year, I have come up with a plan of how I could release my own product without having to deal with managing users and/or dealing with payment processing.
It is a 3 steps procedure:
Make an API that solves a problem
Deploy it with a serverless architecture
Distribute through an API Marketplace
1. Make an API that solves a problem
About 6 months ago I had to implement a “procedure” that extracts information from news articles published online. A script that takes article URL as an input and returns structured records such as title, published date, authors, media links, etc.
Visualization of my function by Vladyslav Kuchaiev. https://kuchaiev.com/
It took me a few minutes to find out that there is a Python library that does all that. Few more minutes of coding, and I had a working prototype.
Once you have a code that does something, it is not that difficult to wrap it up as an API. What might be difficult is to deploy and host it.
2. Deploy it with a serverless architecture
Just a serverless function
I had to process hundreds of articles a few times per hour. All at the same moment. A spike of 200–800 news URLs that have to be analyzed, then nothing for an undefined amount of time.
We were already building our solution on AWS, so I figured out that AWS Lambda should be the best option for this case.
AWS Lambda is a serverless Function-as-a-service tool that runs your code in response to an event. You do not have to maintain servers. You pay only for the time that function is executed.
I deployed a Lambda function. It worked just as it supposed to: it handled hundreds of simultaneous calls by making concurrent invocations. And, you pay only for the time when it is executed.
That was the moment where I thought: “Well, it was quite easy. Does any company sells an API that does that?”
Google search for “article extraction API”
Yes, they exist. It seems like they are doing exactly the same thing as I did for my side-project.
It is good news because:
There is a market for such a thing
I have a few examples to compare
Serverless API
Now we have to transform our serverless function to a serverless API.
I used Zappa python package that does all the heavy lifting for me.
I wrote an API with Flask, then deployed it with AWS Lambda and API Gateway through Zappa. The full API code is open-sourced on my GitHub page.
Another great package to deploy your serverless code that works with many programming languages and many cloud providers is Serverless.
On average, my AWS bill for 50,000 calls of my API would be around 0.6 to 0.8$. Excluding Free Tier!
50,000 API calls for a similar solution are in a 30–250$ range.
So, the question is what are the other costs that I should imply to distribute, promote, and, more importantly, charge for my API.
Most likely, it will not be enough to make me rich but can be enough to cover my subscription bills for Netflix, Spotify, Leetcode, and others.
3. Distribute through an API Marketplace
According to RapidAPI:
An API marketplace works in the same way as these other online marketplaces, allowing providers to list APIs and developers to consume them. Like other types of marketplaces, a typical API marketplace has several components including a developer portal and an API provider portal.
Disclaimer: I am not affiliated/paid/getting any special discounts by RapidAPI at the time I write it. I chose this platform as I believe it is the best one for me.
To release my API on RapidAPI Marketplace, I followed the next procedures:
I deployed an API on AWS with API Gateway and Lambda
Created an x-api-key on API Gateway to restrict the access
Connected my API to RapidAPI marketplace
Shared the x-api-key with RapidAPI
When the end-user makes a call to RapidAPI endpoint (from my API page), it takes care of discounting the token from the user’s plan. Then, RapidAPI makes a call to my API with the x-api-key that I provided.
No matter how many different users are using my API through RapidAPI. For my back-end, it is always identical calls with the same x-api-key.
So, I do not have to manage users in any way: payment collections, usage plans, usage dashboard— all of this is not my burden anymore.
The price for that is 20% of any transaction. No transaction — no pay. For example, if I sell a plan of 100,000 calls/month for 50$ → I get 80% of it (40$).
I do not have to pay to RapidAPI if no one buys any plans.
The Launch
Feel free to go to the page of my API where you can test it for free.
Get the full code of the API on my GitHub repository. The description of how to set it up is included.
I am on ProductHunt today (20 April, 2020), so there is a great chance to see if such a product can get attention from the community.
API that you could do
Probably, you have the function itself already. It might be a simple thing that combines a few Python libraries (like mine). It does not matter if you think that any developer who you know can reproduce your code. There are still thousands of people who might be willing to buy it. It will be almost always cheaper for them to pay you instead of writing the code, deploying and maintaining it.
A list of API that are in-demand and many developers can do:
Text summarization API
Text paraphrase API
Text categorization API
Image classification API
API to extract and normalize locations from text/web page
API to scrape emails from any URL
You use open-source libraries to handle the core functionality. Combine them and obtain unique code.
Moreover, if you have already developed such a code and have used it then you know your audience which is great for product development.
Deliver end-to-end solution
The best way is to make your resume stand out is by demonstrating that you are capable to make something final. Searching for your first job as a software engineer/data scientist/data engineer/back-end engineer might be extremely difficult, but having your own fully released and maintained API should bring you to the top 1%.
Many recruiters will be more willing to open your product page rather than your GitHub repository.
Conclusion
APIs that I find on API marketplaces are mostly produced by companies, not individuals. Software products produced by companies are much less prone to errors. However, the price is high. Indie hackers working on the bootstrapped projects would prefer to take a look at something less sophisticated but cheap.
The global economy is entering the time of recession. Companies’ budgets will shrink. Those who can propose cheap substitutes to existing solutions should see the rise in demand. So, maybe now is the time.
About me
My name is Artem, I build newscatcherapi.com - ultra-fast API to find news articles by any topic, country, language, website, or keyword.
I write about Python, cloud architecture, elasticsearch, data engineering, and entrepreneurship.