Registry / payments / plaid-python

plaid-python

JSON →
library43.0.0pypypi✓ verified 25d ago

Official Python client for the Plaid API (bank account linking, transactions, identity, income verification). Auto-generated from OpenAPI spec. Updated monthly, major versions contain breaking changes. Only supports the 2020-09-14 API version (no version selection in client — API version is fixed per SDK release).

pip install plaid-python
INSTALL
IMPORT
SIG · PLAID-PYTHON
P
plaid-python
paymentspythonv43.0.0
Install
8.3s avg
Import
369ms
Disk
83MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v43.0.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.394s · 81.6MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 8.3s · import 0.344s · 82MB
83MB installed
● package 83MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Configuration
from plaid import Configuration
import plaid
ApiClient
from plaid import ApiClient
import plaid
PlaidApi
from plaid.api_client import PlaidApi
from plaid.api import plaid_api

Plaid uses strongly-typed request/response models. Each endpoint has its own request model (e.g. TransactionsSyncRequest). Import the specific model for each call.

import plaid from plaid.api import plaid_api from plaid.model.transactions_sync_request import TransactionsSyncRequest import json configuration = plaid.Configuration( host=plaid.Environment.Sandbox, # or Production api_key={ 'clientId': 'your_client_id', 'secret': 'your_secret' } ) api_client = plaid.ApiClient(configuration) client = plaid_api.PlaidApi(api_client) # Sync transactions request = TransactionsSyncRequest(access_token='access-sandbox-...') response = client.transactions_sync(request) transactions = response.added # Error handling try: response = client.transactions_sync(request) except plaid.ApiException as e: error = json.loads(e.body) print(error['error_code']) # e.g. 'ITEM_LOGIN_REQUIRED'
Debug
Known issues
breakingv8.0.0 (August 2021) completely removed the old Client class and all previous import patterns. Any tutorial using 'from plaid import Client' or 'Client(client_id=..., secret=..., environment=...)' fails with ImportError.
fix
Use Configuration + ApiClient + PlaidApi pattern. See README for current quickstart.
affects: < 8.0.0
breakingplaid-python ships a major version (x.0.0) roughly monthly. Major versions may include breaking changes — new required fields, renamed parameters, or removed endpoints. Unpinned installs will auto-upgrade.
fix
Pin to a specific version in production: pip install plaid-python==38.3.0. Monitor changelog before upgrading major versions.
affects: all
breakingEach endpoint requires importing its specific request model. Passing a plain dict instead of the typed request object raises a TypeError. Old-style dict-based calls from pre-v8 tutorials do not work.
fix
Import the model for each endpoint: from plaid.model.transactions_sync_request import TransactionsSyncRequest, then pass an instance.
affects: >= 8.0.0
gotchaSandbox and Production have separate API secrets. The client_id is shared but the secret differs per environment. Using the wrong secret for an environment returns 401.
fix
Get environment-specific secrets from Plaid Dashboard > Team Settings > Keys. Store separately as PLAID_SECRET_SANDBOX and PLAID_SECRET_PRODUCTION.
affects: all
gotchaPlaid API responses are typed objects, not dicts. Code trying to access response['transactions'] fails with TypeError. Attributes are accessed as response.added, response.modified, etc.
fix
Access typed attributes: response.added for new transactions, response.next_cursor for pagination cursor, etc.
affects: >= 8.0.0
gotchaBeta product APIs (e.g. Assets, CRA) are subject to breaking changes without versioning, with 30 days notice. GA products are versioned but the SDK fixes to a single API version — there is no per-request API version override.
fix
Monitor Plaid changelog for beta product changes. For GA products, upgrade SDK major versions intentionally, not automatically.
affects: all
Upgrade
Version history
43.0.0latest on PyPI · released Aug 18, 2026
Audit
Dependencies
urllib3requiredHTTP client used internally.
Agent activity
43 hits · last 30 days
node
38
CCBot/2.0 (https://commoncrawl.o
1
Resources
plaid-python — pip install plaid-python · libregistry