After seeing the recent discussions about Plaid integration with Beancount, I wanted to share some practical insights about Plaid’s pricing tiers and what you can realistically accomplish on the free tier. As someone who evaluates tools like this for my consulting clients, I’ve done the research so you don’t have to.
Understanding Plaid’s Tier Structure
1. Sandbox (Completely Free)
- Unlimited API calls
- Fake institutions with test credentials
- Great for development and learning
- No real bank data
2. Limited Production (Free with Limits)
- 200 API calls total across all products
- Real bank connections
- Both successful AND failed calls count against your limit
- Limited number of Items (connected accounts) unless you have Production access
3. Full Production (Requires Application)
- Unlimited API calls
- Pay-per-use pricing
- Requires business use case approval
- Typically per-transaction or per-account fees
What Can You Actually Do with 200 Calls?
Let’s break down typical API usage for a Beancount workflow:
| Operation | Approx. API Calls |
|---|---|
| Link one bank account | 3-5 calls |
| Initial transaction fetch | 2-3 calls |
| Weekly transaction sync | 1-2 calls |
| Re-authentication (when needed) | 2-3 calls |
Rough estimate: Linking 5 accounts and doing weekly syncs for a month might use 40-60 calls. So 200 calls could get you through 2-3 months of testing.
Banks That Work Well (and Don’t)
Based on my experience and forum discussions:
Generally work well on free tier:
- Bank of America
- Wells Fargo
- Capital One
- American Express
- Most major credit unions
Known issues:
- Chase: Some users report needing full Production access. The free tier connection often breaks or requires frequent re-authentication
- Some smaller regional banks may not be supported at all
Workarounds and Strategies
Strategy 1: Maximize Sandbox First
Before burning through your 200 calls, thoroughly test your workflow in Sandbox:
# Test with sandbox credentials first
plaid2text --env sandbox my_test_account output.beancount
Strategy 2: Batch Your Syncs
Instead of daily syncs, do weekly or bi-weekly. Each sync uses API calls regardless of how many transactions exist.
Strategy 3: Request Additional Free Calls
If you’re evaluating Plaid and need more calls, you can file a support ticket. Plaid is sometimes willing to extend limits for evaluation purposes.
Strategy 4: Consider Alternatives for Personal Use
If 200 calls isn’t enough and you don’t want to pay:
- Manual CSV downloads (old reliable)
- OFX/QFX downloads from bank websites
- Other aggregation tools with different pricing
When to Upgrade to Production
Consider applying for full Production access if:
- You’re using this for a business with real clients
- You need more than 5-10 connected accounts
- You want automated daily syncs
- You’re building a product/service that uses Plaid
Cost Expectations for Production
Plaid’s pricing varies by product and volume, but rough estimates:
- Transactions product: typically cents per API call or per-account-per-month
- Auth/Identity products: higher per-verification fees
- Volume discounts available for larger users
For a typical small business or personal finance use case, expect somewhere in the range of $5-30/month depending on usage patterns.
My Recommendation
For most personal Beancount users:
- Start with Sandbox to learn the tools
- Use Limited Production to test with your real banks
- If it works well and saves you time, consider Production access as a worthwhile expense
- If 200 calls is plenty and you only sync monthly, stay on free tier
Has anyone successfully negotiated extended free tier access? Or found banks that work particularly well (or poorly) with Plaid? I’d love to hear experiences from the community.