Source connector
Plaid connector
Plaid integration for databases, warehouses and BI tools
Bank account connectivity and transaction feeds. Datrise captures Plaid entities such as accounts, transactions, balances, items, institutions and account holders, then lands normalized and typed models for warehouse reporting, attribution, and AI workflows.
The Plaid API (Plaid-Version 2020-09-14) authenticates with API key, incremental runs key on cursor, and Plaid caps calls at Limits are per endpoint and per Item/client, not account-wide, e.g. /accounts/get is 15 requests/minute per Item and 15,000/minute per client in Production, while /transactions/refresh is capped at 2/minute and 120/hour per Item.
Of the 6 objects, 5 sync as upserts keyed on the primary key and 1 as append-only streams, so each incremental run moves only what changed since the last watermark. Every object lands in its own table (for example `plaid_accounts`) with a schema derived from the Plaid API rather than a flattened CSV, in any of the 43 supported destinations.
Datrise is in early access: pick a destination below to open the Plaid pipeline page, and join the waitlist to get the Plaid connector with guided onboarding.
What Plaid data Datrise extracts
Each object lands in its own typed table. Sync mode is derived from the object: history-style objects append, everything else upserts.
| Object | Landing table | Sync mode |
|---|---|---|
| accounts | plaid_accounts | Upsert by primary key, incremental on updated-at |
| transactions | plaid_transactions | Append-only, incremental by timestamp |
| balances | plaid_balances | Upsert by primary key, incremental on updated-at |
| items | plaid_items | Upsert by primary key, incremental on updated-at |
| institutions | plaid_institutions | Upsert by primary key, incremental on updated-at |
| account holders | plaid_account_holders | Upsert by primary key, incremental on updated-at |
Plaid API: setup facts for the connector
Verified against the vendor documentation on 2026-09-02. Unknown values are left blank rather than guessed.
| API | Plaid API (Plaid-Version 2020-09-14) |
|---|---|
| Authentication | API key — Every call needs a client_id + secret (request body or PLAID-CLIENT-ID/PLAID-SECRET headers) plus a per-Item access_token obtained by exchanging a Link public_token; the bank-side OAuth redirect inside Link authenticates the end user to their institution, not the ETL client to the Plaid API. |
| Pagination | cursor — The recommended /transactions/sync endpoint pages with a `cursor`/`next_cursor` and `has_more` flag; the older /transactions/get endpoint instead uses `count`/`offset` against `total_transactions`. |
| Rate limit | Limits are per endpoint and per Item/client, not account-wide, e.g. /accounts/get is 15 requests/minute per Item and 15,000/minute per client in Production, while /transactions/refresh is capped at 2/minute and 120/hour per Item. |
| Incremental cursor | cursor — Call /transactions/sync with the `cursor` from the prior response to get only added/modified/removed transactions; Plaid now recommends triggering this only from the SYNC_UPDATES_AVAILABLE webhook, not the legacy DEFAULT_UPDATE/INITIAL_UPDATE/HISTORICAL_UPDATE webhooks. |
| Webhooks | Yes — Item and product webhooks (e.g. SYNC_UPDATES_AVAILABLE, TRANSACTIONS_REMOVED, ITEM_ERROR) |
| Bulk export | No |
| Deletes detectable | Yes — Removed transactions are returned by transaction_id in the `removed` array of each /transactions/sync response. |
What bites when replicating Plaid
- The `/transactions/sync` endpoint replaces the legacy `DEFAULT_UPDATE`, `INITIAL_UPDATE`, and `HISTORICAL_UPDATE` webhooks with a single `SYNC_UPDATES_AVAILABLE` event, so a connector still listening for the old webhook names silently stops seeing updates.
- `/transactions/refresh` is separately rate-limited to 2 requests per minute and 120 per hour per Item in Production, on top of the general per-endpoint limits.
- Every request needs both a `client_id`/`secret` pair and a per-Item `access_token`; the `access_token` alone is rejected with an authentication error if the client credentials are missing.
- Webhook payloads are signed as a JWT in the `Plaid-Verification` header, and Plaid's verification steps require rejecting any webhook whose `iat` claim is more than 5 minutes old.
Popular destinations for Plaid
Choose a destination below to open the ready pipeline page.
- AAirtable
Relational spreadsheet destination for ops and go-to-market teams.
View pipeline - AAmazon Athena
Serverless SQL over S3 data lake tables.
View pipeline - AAmazon DynamoDB
Serverless key-value and document store on AWS.
View pipeline - AAmazon QuickSight
AWS serverless BI with SPICE and embedded analytics.
View pipeline - AAmazon Redshift
AWS petabyte-scale warehouse with Spectrum.
View pipeline - AAmazon S3 Data Lake
Object storage landing zone for parquet and snapshots.
View pipeline - AApache Superset
Open-source BI for SQL exploration, charts, and dashboard publishing.
View pipeline - AAzure Data Lake Storage
ADLS Gen2 object storage for analytics workloads.
View pipeline - AAzure Synapse
Microsoft analytics workspace with SQL pools.
View pipeline
Plaid connector FAQ
- What Plaid data does the connector extract?
- 6 objects: accounts, transactions, balances, items, institutions and account holders. Each lands in its own table with types preserved; history-style objects (1: transactions) load as append-only streams.
- Is the Plaid integration incremental?
- Yes. After the initial full load, every run reads only records changed since the last watermark (updated-at or event timestamp) and applies an upsert or an append depending on the object.
- Where can I load Plaid data?
- Into 43 destinations: relational databases, cloud warehouses, data lakes, spreadsheets and BI tools. Each Plaid → destination pair has its own page with the object-to-table mapping.
Related sources
Other sources in the same category, each with its own connector page.
Early access
Launch your Plaid pipeline with guided onboarding
Join the waitlist to get priority access for Plaid integrations with guided setup, schema-aware mapping, and production-grade incremental sync.