Back to source list
plaid
Official
Premium

Plaid

Sync from Plaid to any destination

Publisher

cloudquery

Latest version

v1.7.0

Type

Source

Platforms
Date Published

Price per 1M rows

Starting from $17

monthly free quota

1M rows

Set up process #


brew install cloudquery/tap/cloudquery

1. Download CLI and login

See installation options

2. Create source and destination configs

Plugin configuration

cloudquery sync plaid.yml postgresql.yml

3. Run the sync

CloudQuery sync

Overview #

CloudQuery Plaid Source Plugin

A Plaid source plugin for CloudQuery that loads data from the Plaid API to any database, data warehouse or data lake supported by CloudQuery, such as PostgreSQL, BigQuery, Athena, and many more.

Supported Resources #

For a full list of supported resources, see the tables documentation.

Example #

The following source configuration file will sync supported data points to a PostgreSQL database. See the CloudQuery Quickstart for more information on how to configure the source and destination.
kind: source
spec:
  name: "plaid"
  path: "cloudquery/plaid"
  version: "v1.7.0"
  destinations: [postgresql]
  # Learn more about the configuration options at https://cql.ink/plaid_source
  spec:
    # plugin spec section
    client_id: ${PLAID_CLIENT_ID}
    client_secret: ${PLAID_CLIENT_SECRET}
    access_token: ${PLAID_ACCESS_TOKEN}
    
    # optional
    environment: sandbox

Plaid Spec #

  • client_id (string, required)
    A Plaid client ID from your dashboard. See the Plaid docs for more information
  • client_secret (string, required)
    A Plaid client secret from your dashboard. See the Plaid docs for more information
  • access_token (string, required)
    A Plaid access token obtained by following the link authorization flow. We provide an example application to generate a token for testing purposes only. For production usage you should set up a hosted frontend application and backend server that saves access tokens from link authentication flows initiated by your users. See the Plaid docs for more information
  • environment (string, optional)
    The Plaid environment to use. Defaults to sandbox. See the Plaid docs for more information. Should match the Plaid secret you are using
  • concurrency (integer, optional, default: 50000) A best effort maximum number of Go routines to use. Lower this number to reduce memory usage.
  • scheduler (string, optional, default: dfs) The scheduler to use when determining the priority of resources to sync. Supported values are dfs (depth-first search), round-robin, shuffle and shuffle-queue.
    For more information about this, see performance tuning.

Authentication #

As working with financial data, Plaid relies heavily on authentication and authorization, therefore obtaining authentication credentials for the plugin is a two-step process.
This Getting Started tutorial explains quite shortly how to get started with Plaid API: https://plaid.com/docs/quickstart/
Obtaining the Plaid credentials
In order to use the Plaid plugin, you'll need to obtain a client_id and a secret from the Plaid dashboard, Integrations section.
The next thing one has to do is to get a LINK Token. This will give back an access token with permissions to certain financial institutions and accounts.
In order to do this, you'll have to:
  1. Clone the following repo: https://github.com/plaid/quickstart
  2. Copy and update the .env file with your Plaid credentials & environment
  3. Run the app using either Docker or other methods described in the repo
    1. If you're using Docker, you can run the following command: make up language=go
  4. Open the app in your browser and follow the steps to get the LINK Token
  5. Copy the access token from the browser and use it in the CloudQuery plugin configuration

Example Queries #

List recent transactions #

select name, category, amount, iso_currency_code, date, merchant_name, payment_channel from plaid_transactions
order by
  date desc
limit
  10
Example result:
name                  |                   category                   | amount | iso_currency_code |    date    |   merchant_name   | payment_channel 
---------------------------------------+----------------------------------------------+--------+-------------------+------------+-------------------+-----------------
 Uber 063015 SF**POOL**                | {Travel,Taxi}                                |    5.4 | "USD"             | 2023-01-30 | "Uber"            | online
 CREDIT CARD 3333 PAYMENT *//          | {Payment,"Credit Card"}                      |     25 | "USD"             | 2023-01-30 | null              | other
 ACH Electronic CreditGUSTO PAY 123456 | {Transfer,Debit}                             |   5850 | "USD"             | 2023-01-29 | null              | online
 CD DEPOSIT .INITIAL.                  | {Transfer,Deposit}                           |   1000 | "USD"             | 2023-01-29 | null              | other
 United Airlines                       | {Travel,"Airlines and Aviation Services"}    |   -500 | "USD"             | 2023-01-28 | "United Airlines" | in store
 Touchstone Climbing                   | {Recreation,"Gyms and Fitness Centers"}      |   78.5 | "USD"             | 2023-01-28 | null              | in store
 Starbucks                             | {"Food and Drink",Restaurants,"Coffee Shop"} |   4.33 | "USD"             | 2023-01-27 | "Starbucks"       | in store
 McDonald's                            | {"Food and Drink",Restaurants,"Fast Food"}   |     12 | "USD"             | 2023-01-27 | "McDonald's"      | in store
 SparkFun                              | {"Food and Drink",Restaurants}               |   89.4 | "USD"             | 2023-01-26 | null              | in store
 INTRST PYMNT                          | {Transfer,Credit}                            |  -4.22 | "USD"             | 2023-01-25 | null              | other
(10 rows)


Licenses #

The following tools / packages are used in this plugin:
NameLicense
github.com/adrg/xdgMIT
github.com/apache/arrow/go/v13Apache-2.0
github.com/apache/arrow/go/v17Apache-2.0
github.com/apapsch/go-jsonmerge/v2MIT
github.com/aws/aws-sdk-go-v2Apache-2.0
github.com/aws/aws-sdk-go-v2/configApache-2.0
github.com/aws/aws-sdk-go-v2/credentialsApache-2.0
github.com/aws/aws-sdk-go-v2/feature/ec2/imdsApache-2.0
github.com/aws/aws-sdk-go-v2/internal/configsourcesApache-2.0
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/iniApache-2.0
github.com/aws/aws-sdk-go-v2/internal/sync/singleflightBSD-3-Clause
github.com/aws/aws-sdk-go-v2/service/internal/accept-encodingApache-2.0
github.com/aws/aws-sdk-go-v2/service/internal/presigned-urlApache-2.0
github.com/aws/aws-sdk-go-v2/service/licensemanagerApache-2.0
github.com/aws/aws-sdk-go-v2/service/marketplacemeteringApache-2.0
github.com/aws/aws-sdk-go-v2/service/ssoApache-2.0
github.com/aws/aws-sdk-go-v2/service/ssooidcApache-2.0
github.com/aws/aws-sdk-go-v2/service/stsApache-2.0
github.com/aws/smithy-goApache-2.0
github.com/aws/smithy-go/internal/sync/singleflightBSD-3-Clause
github.com/bahlo/generic-list-goBSD-3-Clause
github.com/buger/jsonparserMIT
github.com/cenkalti/backoff/v4MIT
github.com/cloudquery/cloudquery-api-goMPL-2.0
github.com/cloudquery/plugin-pb-goMPL-2.0
github.com/cloudquery/plugin-sdk/v2/internal/globMIT
github.com/cloudquery/plugin-sdk/v2/schemaMIT
github.com/cloudquery/plugin-sdk/v2/typesMPL-2.0
github.com/cloudquery/plugin-sdk/v4MPL-2.0
github.com/cloudquery/plugin-sdk/v4/globMIT
github.com/cloudquery/plugin-sdk/v4/scalarMIT
github.com/davecgh/go-spew/spewISC
github.com/ghodss/yamlMIT
github.com/go-logr/logrApache-2.0
github.com/go-logr/stdrApache-2.0
github.com/goccy/go-jsonMIT
github.com/google/flatbuffers/goApache-2.0
github.com/google/uuidBSD-3-Clause
github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptorsApache-2.0
github.com/grpc-ecosystem/grpc-gateway/v2BSD-3-Clause
github.com/hashicorp/go-cleanhttpMPL-2.0
github.com/hashicorp/go-retryablehttpMPL-2.0
github.com/invopop/jsonschemaMIT
github.com/klauspost/compressApache-2.0
github.com/klauspost/compress/internal/snaprefBSD-3-Clause
github.com/klauspost/compress/zstd/internal/xxhashMIT
github.com/mailru/easyjsonMIT
github.com/mattn/go-colorableMIT
github.com/mattn/go-isattyMIT
github.com/oapi-codegen/runtimeApache-2.0
github.com/pierrec/lz4/v4BSD-3-Clause
github.com/plaid/plaid-go/v26/plaidMIT
github.com/pmezard/go-difflib/difflibBSD-3-Clause
github.com/rs/zerologMIT
github.com/samber/loMIT
github.com/santhosh-tekuri/jsonschema/v6Apache-2.0
github.com/spf13/cobraApache-2.0
github.com/spf13/pflagBSD-3-Clause
github.com/stretchr/testifyMIT
github.com/thoas/go-funkMIT
github.com/wk8/go-ordered-map/v2Apache-2.0
github.com/zeebo/xxh3BSD-2-Clause
go.opentelemetry.io/otelApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttpApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttpApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlptraceApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttpApache-2.0
go.opentelemetry.io/otel/logApache-2.0
go.opentelemetry.io/otel/metricApache-2.0
go.opentelemetry.io/otel/sdkApache-2.0
go.opentelemetry.io/otel/sdk/logApache-2.0
go.opentelemetry.io/otel/sdk/metricApache-2.0
go.opentelemetry.io/otel/traceApache-2.0
go.opentelemetry.io/proto/otlpApache-2.0
golang.org/x/expBSD-3-Clause
golang.org/x/netBSD-3-Clause
golang.org/x/oauth2BSD-3-Clause
golang.org/x/syncBSD-3-Clause
golang.org/x/sysBSD-3-Clause
golang.org/x/textBSD-3-Clause
golang.org/x/xerrorsBSD-3-Clause
google.golang.org/genproto/googleapisApache-2.0
google.golang.org/grpcApache-2.0
google.golang.org/protobufBSD-3-Clause
gopkg.in/yaml.v2Apache-2.0
gopkg.in/yaml.v3MIT


Join our mailing list

Subscribe to our newsletter to make sure you don't miss any updates.

Legal

© 2024 CloudQuery, Inc. All rights reserved.

We use tracking cookies to understand how you use the product and help us improve it. Please accept cookies to help us improve. You can always opt out later via the link in the footer.