Which Sources and Destinations Does CloudQuery Support?
Updated
CloudQuery syncs 80+ cloud and SaaS sources into a database you already operate, with Postgres, BigQuery, Snowflake, and S3 named as destinations. All sources land in one normalized relational schema rather than 80 separate raw APIs, so you query everything in standard SQL. If a source you need isn't covered, you can build it with the SDK.
Sources: what CloudQuery can read from
CloudQuery describes itself as an open-source, self-hosted tool that syncs 80+ cloud and SaaS sources. Named examples in the product material include:
- AWS
- GCP
- Azure
- GitHub
- Okta
The "80+" figure is the coverage claim, and the listed providers are the concrete examples given. For the full, current list, check the integrations page on the site — coverage changes as new plugins are added.
If a source is missing
The material states that missing sources can be built with the SDK. That's the documented path when your provider or SaaS app isn't in the existing set.
Destinations: where the data lands
CloudQuery writes into a destination database you already run. The named destinations are:
| Destination | Type |
|---|---|
| Postgres | Relational database |
| BigQuery | Cloud data warehouse |
| Snowflake | Cloud data warehouse |
| S3 | Object storage |
The design intent is that you point CloudQuery at the database you already operate, rather than standing up a new store just for cloud data.
How sources get unified
This is the part that matters more than the raw count. Instead of each provider arriving in its own shape, sources land in one normalized relational schema. The material contrasts this directly with the DIY approach:
- The old way: a separate script or exporter per provider, each with its own query language or dashboard filters, credentials and data spread across tools you don't fully control, and no version history.
- With CloudQuery: one tool syncing 80+ sources into your database, queried in standard SQL, self-hosted so data stays on your network unless you choose otherwise, and every sync defined in version-controlled YAML reviewed in pull requests.
The practical payoff: an agent or analyst reasoning over AWS, GCP, Azure, GitHub, and Okta data works against the same relational shape, not five different APIs.
Choosing this setup — and when it fits
CloudQuery is a reasonable fit if:
- You want cloud and SaaS data in a database you already run, not a vendor-hosted store.
- You need standard SQL across providers instead of learning per-tool query languages.
- You want sync configuration version-controlled and reviewed like code.
- You're feeding infrastructure data to AI agents — the material positions the synced data as a context layer, with an MCP server in PostgreSQL or Snowflake Mode that agents can query directly.
It's a weaker fit if you only need a single provider's data in that provider's native console, or if you can't self-host. The tool is explicitly self-hosted, so data control depends on your own environment.
Verifying coverage before you commit
- Check the integrations list on cloudquery.io for your specific sources — the 80+ figure is a headline, not a guarantee your provider is included.
- Confirm your destination is one of Postgres, BigQuery, Snowflake, or S3 (or check whether others are supported).
- If your source is missing, plan for SDK work rather than assuming it's covered.
- Install and run a first sync to confirm the normalized schema matches what your queries expect. The material describes a three-step flow: install the binary, define sources in YAML, run the sync once or on a schedule.
Pricing details aren't established here beyond a "Pricing" page and a "Free" reference on the site — check that page directly for current terms rather than assuming a free tier covers your scale.