Download your Stripe account to a SQL database

Table Dog (tdog) is a CLI tool that downloads your Stripe account into a SQL database (MySQL, Postgres or SQLite). On the first run it will download all objects. After that, events are applied to bring your database up to date.

The CLI can be run once to get all data up to the present moment, or it can run as a daemon in the background to poll Stripe’s /events URL and keep your database continuously up to date (less than 1 second behind).

Self-contained, portable, performant

Comparison grid

Table Dog Sigma Misc
Cloud Sync
Avoids unencrypted data passing through third party services. Runs on-premises

No external access by third parties
Data remains inside of Stripes network Plain text data passes through possibly-insecure black box server, shared with other customers data
Updated in real time

100% of the dataset is in RAM next to your code for fast custom queries
Daily only

Must export the whole dataset everyday
Schedule used (E.g. "hourly")
Can handle 2M+ writes per month without delay Efficient native machine code runs next to your database server Batch process once a day No dedicated resources (shared multi-tenant server).

High network latency for each write between sync server and your remote DB
Exact process/schema can be archived/vendored into version control tdog is a single binary file Cannot pin older version Cannot pin older version
Supports the database engine you currently use

Allows leveraging your existing SQL tools (libraries, ORM's, GUI's, admin processes) and developer skill
Cannot reuse SQL tools (custom SQL dialect)
Snapshots SQL dump

Incremental disk based snapshots
Latest dataset only, no export SQL dump

Incremental disk based snapshots
No DB server needed SQLite can handle billions of rows.

Only needs a local file system
Managed (custom SQL dialect) Must provide internet accessible IP/user/pass of your database server (insecure)
Fast first download

Avoid the global Stripe account rate limit lock which could cause down time for your current systems

Note: A full download is only required on the first run

Set a custom concurrent requests per second

Optionally abort the entire download when a HTTP 429 is encountered
Wait a day Default low concurrency setting

No abort on 429

Could take days for large accounts
Web UI,
Shareable query URL's
Datasette Just data transfer to your SQL server

Datasets, not request/responses.

Having your complete Stripe account in a SQL database allows you to think in datasets instead of requests and responses.

How tdog can save you time

The tdog CLI can help you with the following tasks:


Avoid having a public server for Stripe webhooks

To keep your database up to date Stripe gives you two options: a public HTTP endpoint for webhooks, or poll the /events URL.

Tdog polls the /events URL and applies the events to your database, so you can just query for the state you need without having either a publicly accessible web server, or a long running process to poll the /events URL.

No database needed

You do not need a database server to leverage SQL – tdog can write directly to an SQLite file. Use your languages existing SQLite API to run SQL queries against the database file.



Table Dog is designed and developed by Enzo from England. Say Hello: