Every API is Unique
Rob Galanakis on June 8, 2023
WebhookDB prides itself on being able to sync from literally any API.
As we integrate new APIs, we still find ourselves having to make slight modifications and enhancements to our core system.
This is because every API is different. And often, inconsistent.
On the plus side, using WebhookDB means not worrying about these differences and inconsistencies.
You just query a database.
Here are some fun examples to chew on.
APIs express time as POSIX timestamps in seconds, POSIX timestamps in milliseconds, ISO-8601 strings, and even novel formats.
WebhookDB normalizes these all to timestamps with timezones.
Almost no API uses the same design for sorting, searching, filtering, and field expansion.
Because WebhookDB syncs into a database, you can use whatever it provides.
Most Stripe resources, like Charges, can be enumerated directed. Some, like cards, cannot, and must be enumerated through their attached Customer.
Every Stripe resource in WebhookDB is in its own table.
In ConvertKit, you cannot iterate over active and canceled subscribers together. You iterate one list, then the other.
With WebhookDB, you are only looking at a single list of ConvertKit subscribers.
ICalendar seems well-supported but almost every library is incomplete. Many are lossy (you can't access the original parsed data).
We had to build our own parser so WebhookDB can provide fully-parsed, structured ICalendar data.
Google Calendar requires per-account webhooks (subscriptions) to be managed.
WebhookDB does this for you, and all Gogle Calendar events show up in the same table. You can also set up HTTP Sync to send everything to your own endpoint.
Microsoft Outlook Calendar first appears similar to Google Calendar, except with caveats like only the primary calendar can receive notifications.
WebhookDB syncs or polls for Outlook events as needed.
Plaid's API design is a whole world unto itself. If you know, you know, or will find out when you use the API.
Thankfully (you may be noticing a trend), you query a database filled with all your Plaid data.
Sponsy has resources, like customers, that can only be found through other resources.
WebhookDB syncs nested resources into their own table for easy access.
Twilio doesn't even have webhooks; only their event handlers, which you probably need to use yourself.
WebhookDB takes care of rapidly enumerating and storing Twilio messages.
These problems are one reason why syncing an API to a database is the best solution.
WebhookDB manages to make this sync both delightfully simple and absurdly powerful at the same time.
And it's super easy (and free!) to get started.