Launch HN: Kable (YC W22) – All-in-one platform for API products

193 points by asommer12 ↗ HN
Hi HN! I’m Adam from Kable (https://kable.io). We make it easy to build great API products.

Kable takes care of all of the things that pull you away from your core business – API keys and authentication, usage-metering and billing, invoicing your customers, dashboards for tracking key metrics, evolving pricing to optimize revenue, surfacing usage dashboards to your customers – so you can focus on what’s most important.

Every API developer has to deal with important but unsexy responsibilities like “How will I securely manage API keys?” “How am I going to track which customers are using which parts of my product?” “How am I going to monitor usage of my API, and how can I make that information available to customers?” “Billing is complicated, invoicing is time-consuming, when am I going to find time to automate that?” This is the stuff we take care of.

I led the billing team at Hulu for five years and got a full education in the complexities of billing, payments, and accounting. Before that, I led the security team at Appian for two years, and before that I worked at WePay (YC S09), a payments API company. On a slightly weirder note...I have an obsession with API-first companies. I am fascinated by the rise of the API economy. Twilio for messaging; Stripe for payments; Algolia for search; Segment for data; the list gets longer every year. I have always been fascinated by these companies, wanted to work with them, learn from them, and serve them.

I spoke to hundreds of people building API companies and two themes rang more loudly than anything else: “We are doing X for now but we really want to do Y...” and “We haven’t built Z yet because we just don’t have the time.” These statements were always about the same topics, too: billing, invoicing, authentication, monitoring, analytics. Why was every startup struggling with the same things? I decided the best way to serve this community – a community I love – was to build tools for it all. Kable provides all the infrastructure you’d build in-house if you had all the time you needed.

The truth is, tools already exist for most of these things. So why wasn’t there wider adoption among the startup community? The answer, I learned, is pretty simple: integrating with third parties can be complicated and time-consuming. The key insight for Kable, therefore, is: it has to be trivial.

Kable can be added to any application with just three lines of code: import, configure, execute. We don’t depend on you storing external keys, nor do we require weeks-long technical integration to get onboarded. You can sign up, add us to your API, configure pricing plans, set up invoicing, and visualize your customers' usage through our dashboard – all in about 15 minutes.

Many of our first customers are other startups in our YC batch. They have been able to bring their products to market faster by outsourcing things like authentication. Right from launch they have clear visibility into their customers’ usage patterns. They don’t need to manually invoice their customers, and not only that, but having built on our infrastructure, they’re ready to tune their pricing models to optimize revenue without ever writing a line of billing code. With all this, startups can move faster than was previously possible.

Our pricing is pay-as-you-go based on the volume of events we store and the revenue we help our customers generate. That means we get to dogfood our own software for usage-based billing!

We’d love for you to try it out. You can sign up at https://kable.io and begin using our test environment for free. We require a credit card on file before provisioning live API keys, but the product is fully accessible to new users.

It’s so exciting for me to share what we’ve been working on with the HN community. You are the developers we hope to serve, and I’d love to hear your thoughts. Have you...

83 comments

[ 2.8 ms ] story [ 200 ms ] thread
Happy to see where this has ended up. Congrats on the launch.
Congrats on the launch, Adam!

We're using Kable at Rownd to better understand how our customers use our authentication and account management services. For example, we can track how many sign-ins a particular customer is driving through their website and whether their users typically use email or SMS to sign up. Eventually, we'll be able to use this data to bill our usage-based customers for their volume.

Overall, implementation was about as simple as stated above. In our Node.js backend, we imported the Kable library, created an instance with our tenant config, and then added one line to the API methods we wanted to record.

> Let's trade: Email address for API documentation

Oh, come on

[edit] hidden at https://kable.stoplight.io/docs/kable/

Updated! Thanks for helping me catch that :)
Yikes, sorry - I forgot to get that fixed. Adam has fixed it now. Thanks for pointing this out and digging up the correct link in the meantime.
> Let's trade: Email address for API documentation

In that case, I have to say no.

Argh! this was my mistake. I saw it and then forgot to tell Adam we needed to fix that before the launch. Sorry everyone! We'll get it fixed.

In the meantime, go to https://kable.stoplight.io/docs/kable/ (thanks mtmail!)

Sorry everyone! A lingering remnant gathering feedback from my pre-launch, apologies!

Just updated -- you should all have open access now. Really sorry about that!

(comment deleted)
> Let's trade: Email address for API documentation

Bad move for a developer focused product. Come on.

Sorry about that! Site should be updated now, would love to hear your feedback
Mobile menu link still goes to the name-email-wall page.

Footer works. Thanks

Congrats on the launch! How does that compare to using Stripe for charging customers?
Great question! Kable is integrated with Stripe directly, so the migration from Stripe subscriptions to Kable is easy. We use Stripe Connect, so invoices generated on Kable reach your customers at their same payment method on file through your Stripe account.
This is a very webflow website
Congrats on the launch! We were looking for exactly this service at Cofactr and we're super pumped when we found Kable. Happy users!
How do you deal with taxes? Or how do you help your customers deal with taxes?
As of today, Kable relies on our payment partners to calculate tax.

If you connect your Stripe account to Kable, you can enable automatic tax calculation in your Stripe dashboard, and invoices generated by Kable will be taxed by Stripe. As we add other payment partners, we will follow the same pattern. In the future, though, we do plan to add the option to calculate taxes directly within Kable.

I see. Stripe actually does not help with taxes at all. All the work is left for users to figure out, configure and file.
@gondo I think this was a relatively recent change by Stripe. Check out Stripe Tax -- https://stripe.com/docs/tax/invoicing

Kable uses Stripe's Invoice API directly (we don't create Stripe subscriptions which would cost an extra 0.5%). You can set up Stripe Tax to work with Invoices, and I believe most of what you'd want happens automatically.

I may be wrong though -- please let me know if you've had a different experience!

Ahh, are you talking about the actual setup of tax codes in Stripe?
Is there a way to integrate paddle?
Integrating Paddle (and other payment providers) is in our plans for the spring. Our existing customers have skewed toward Stripe, so we started there. If you're using Paddle today and want to get started with Kable, let me know and we can chat about prioritizing Paddle sooner
Have any example on how to add kable to a graphql API?
We don't currently have any customers using Kable and GraphQL together. To be totally honest, I'm not a GraphQL expert, and I don't want to give you any false information, so unfortunately no, I don't have an example for you.

Kable can be accessed through our Node and Python libraries (more languages on the way) or over HTTPS REST API. I will have to defer to your design sense about the best way to leverage these technologies with a GraphQL API today.

One of the problems with graphql is a single query can fetch your entire API.

This means to record for billing, you would need to parse the AST and tag the parts as well as their associated cost in a query.

It's not an easy drop in, unfortunately.

Kable has been super helpful for my company so far! Our billing is pretty complicated because it's usage-based and we're customizing pricing for every single customer at this point.

The integration with Kable was very simple, took like 15 minutes to get a basic implementation working. It fires "billing events" automatically and then these can be applied to custom pricing options for every customer.

Love it!

Congrats on the launch. Very appealing product.

I thought RapidAPI.com would be a direct competitor, but their site changed a lot. Have they pivoted from monetizing an API, directly? If so, then I'd definitely keep Kable on my radar.

RapidAPI does offer some of the tools that Kable offers. And if you're looking to monetize a single REST endpoint, RapidAPI is probably the right tool for the job.

Kable is infrastructure for API companies, brands, and larger projects. You wouldn't find Twilio's SMS API in RapidAPI's marketplace, nor would you find many of today's hottest new API-first companies. Kable's mission is to help those companies launch quickly and scale.

Oh, I bought the vision. I'm impressed with what's available at launch, even.

Personally, yes, I'm much more aligned with Kable value proposition. It solves pain points I have today and by experience (authentication schemes, how to throttle calls, how to monitor etc).

Congrats on the launch! It's a bit early for me to try out something like this but I'm keen on exploring a usage based pricing model for my product... I'll come knocking when the time is right :).
Congrats on the launch! Kable has really simplified billing for us and it also doubles as a pretty great API usage analytics platform
Excited about Kable! Congrats on the launch!
> Our pricing is pay-as-you-go based on the volume of events we store and the revenue we help our customers generate. That means we get to dogfood our own software for usage-based billing!

So what is your pricing? The website says "starting at $200 / month", but before I go to sign up and try to integrate, I'd like to be able to estimate if it'd be $200/mo for my company or $2,000/mo.

P.S.: I signed up, even got to a notice that tells me I can't go live without entering credit card details - but still no details on pricing.

P.P.S.: Sorry that it reads like a negative comment. I think it's great and I might actually end up using it, but not before I know if it fits our budget (and if it's worth my time).

Non-public pricing is something that really grinds my gears...
It's a big red flag for me too, I usually nope right out.
Because it's Enterprise pricing. We price based on your company. If your logo is big enough, we'll give you cost price because we'll use you as a marketing tool. If you're a government client, we'll give it to you cheap enough to get a foothold in your organisation, then pull in massive deals over years and take away discounts once it's too hard to get rid of us. If you're some random company, you get sticker price - but we can't publish that because most of our revenue comes from large Enterprise who all get custom, MNDA-protected pricing.
> If you're a government client, we'll give it to you cheap enough to get a foothold in your organisation, then pull in massive deals over years and take away discounts once it's too hard to get rid of us.

This concerns me as a non-government agency. I hope vendor lock-in isn’t your business strategy.

Just making it clear for others as I had to double check.

The one you're replying to isn't op and is just taking a jab at enterprise pricing.

The goal here is definitely not a lock-in strategy. Our lack of clear pricing is simply the nature of being a brand new company who hasn't yet had sufficient time to work with customers to solidify the right price point. As we iron out our business model we'll absolutely make pricing more transparent on our site.
The truth is that we're still iterating on our pricing model which is why it's somewhat vague on our website. We offer a few different pricing tiers that range from Free to $200/month to $800/month depending on your revenue and usage of the platform before Enterprise. If you handle very heavy traffic (millions of events recorded daily), we'll help build a pricing plan that makes sense for your business.
What happens if Kable service is down for some reason?
Great question. Our libraries are set up to handle Kable failures.

When a library request to Kable's server fails, dropped events will be logged as JSON for later processing. The Kable API is designed to handle backfilling of events, so if Kable ever goes down, we'll help you catch up on events that weren't recorded in real-time.

That's for usage, but aren't auth requests going to Kable too?
Yes, if you are using Kable for authentication, this is a larger problem but there are some fallbacks in place as well.

Our libraries cache the valid (and invalid) keys we process. So if Kable goes down, users with steady traffic (whose keys remain cached) will remain unaffected. Users who have not yet had a key validated by Kable, though, will experience problems while Kable restarts.

We have redundancies in place to ensure that Kable downtime is minimized. Obviously no system is perfect, and outages can't be avoided 100%. But we employ all best practices around redundancies, rolling deployments, and rapid response to minimize the impacts of downtime

Congrats on the launch!

How do you see yourself differentiating between Stripe billing?

Ahh, a question I get a lot, thank you for asking :)

Stripe is a payments company -- they are great at payments. They offer a full suite of tools (like subscriptions) around payments. But this is not their core competency.

Usage-based billing has three core components: * Defining pricing plans * Metering usage to generate invoices * Processing payments

Stripe is great at processing payments. But when it comes to defining usage-based pricing plans, and especially when it comes to metering usage, Stripe is actually pretty weak.

Pricing in Stripe is pretty brittle. You create products which have price IDs, and your code needs to understand these concepts. To evolve pricing for a customer, or to define a new pricing plan for an enterprise contract can be a pretty tricky thing to do.

And streaming usage data into Stripe is actually something that Stripe's docs recommends against. They recommend you aggregate your own usage metrics and post them infrequently into Stripe. Again, payments processing, not usage metering.

Kable's sweet spot as it pertains to billing is the first two items in that list. Pricing plans are super easy to define, manage, and evolve in Kable. Usage metering is our core competency. You don't need pricing concepts or external identifiers in your code. You record the *core concepts from your app* and Kable handles the rest.

I'm the founder of Saasify, a similar platform from a few years back. Love what you guys are doing, though I think you may run into some of the same issues that we ran into. Here's our post-mortem that you'll hopefully find helpful https://transitivebullsh.it/saasify-vc-feedback
Great feedback, thank you. From what I can gather, the biggest differences between Kable and Saasify are the target market and core focus. Where Saasify is focused on micro SaaS projects, Kable is aimed at helping the growing population of API-first businesses. And from a core focus perspective, where Saasify is focused on a wide range of developer needs (user accounts, marketing sites, documentation, etc), Kable is focused on the core elements of an API business: authentication, metrics, and billing. But there's definitely a good amount of similarity here, and I love to meet folks building in a similar space.
Immediately what I thought -- when your users become successful, they will churn. Ideally you want the opposite of that (expansion from successful users).
Looks interesting! Do you guys offer any sort of visibility tools/reports into customer usage of different endpoints, tracking of actual API requests (including payloads/etc) per request, etc? Is it possible to use you guys just for billing if we already have our own auth?
Hey Dylan! A bit more context on each of your questions:

With regard to endpoint visibility, yes, totally. One of our strengths is the ability to even price different endpoints differently. If you have endpoints that are high-value that you want to track differently than other endpoints, you can simply tag it, and Kable will monitor that endpoint as its own dimension. So yes, you can see which customers are calling which endpoints through our dashboard.

With regard to tracking request payloads, this is something we do not currently support. We've given this some thought, and while we might change our position in the future based on customer feedback, we are currently not storing customer request data. The reason for this is privacy. We want to be careful about what information we store from our customers' customers, so we require developers to explicitly define what information gets recorded in Kable.

Finally, with respect to billing and analytics and authentication as separate features or products: *ABSOLUTELY*. You can use Kable for billing and analytics without using Kable authentication. We want it to be super easy to use both, but we understand many customers have other systems for managing API keys or other parts of the stack. In this case, we recommend using Kable's `record` method, and using us for our core competencies of billing and analytics.

What’s the story for exporting data look like? E.g if I started with you but then wanted to migrate to a home grown solution.
There are a variety of different storage formats behind the curtain at Kable. Some things (like stored invoices) are trivial to export. Others (like full request histories) might be a bit more complicated. That said, we never want to lock you in.

We will always support customers who need to export data out of Kable into another system.

Thanks for the response! I’m sure the question sounded basic but it’s really reassuring to read.
Of course! Our mission is to support developers building great products. Our goal is to help you grow, not hold you prisoner
This totally solves something I don't want to have to build at this stage! I hacked together a garbage API key system that has nothing to do with my platform's core competencies.

Your offering is so full of useful functionality, too. Reports, metering, ... so much good. I could totally see this becoming a Twilio or Stripe for APIs.

Really, really awesome. Congrats! I'll be looking to sign up soon.

Edit: my platform is built in Rust and I don't expect you to have an SDK for that anytime soon (I'm off the beaten path). I'll see what your API looks like :)

Hey, glad to hear it!

You're actually not the first person who's asked for a Rust SDK. This is something that is already in our plans for the near future.

In the meantime, all of Kable can be accessed via HTTPS REST endpoints. I wouldn't recommend using Kable for authentication over REST due to the potential latency issues it could cause for your API. But all of our functionality around pricing, metering, billing, and invoicing can be accessed directly, even without a Rust library.

Check out our documentation for a closer look at the REST API. Would be happy to chat some more over email to help you get started until our Rust library is available.