Skip to content

list_data_sources

Discover all data sources attached to a project, including table names and column schemas. Use this BEFORE query_data to learn what tables and columns are available — it avoids the need for a dummy exploration query. Returns both uploaded Parquet files and linked Google Sheet snapshots. For each source, the ‘tables’ field lists the exact DuckDB table names to use in query_data SQL (e.g. SELECT * FROM <table_name>). The ‘schema’ field maps each table name to an ordered list of columns with their names and dtypes, giving enough metadata to write correct SQL. Google Sheet sources include a ‘snapshot_taken_at’ timestamp; call connect_google_sheet to refresh stale snapshots before querying. Intended flow: list_data_sources → inspect tables/columns → query_data. Returns: project_name (str); sources (list) — one entry per data source with fields: source_name (str), source_type (‘parquet’ | ‘google_sheets’), tables (list[str] — DuckDB table names), snapshot_taken_at (str ISO 8601 UTC | null), schema (dict[table_name, list[{name, dtype}]]), data_source_id (str UUID | null — for linked Google Sheets), spreadsheet_id (str | null — Google Sheets document ID; use this with write_gsheet or pass source_name instead); total_count (int) — number of data sources.

read-only · idempotent

NameTypeRequiredDefaultDescription
project_namestrYes

Returns a structured object. Top-level fields:

  • project_name (string)
  • sources (array<object>)
  • total_count (integer)

See the response example below for the full payload shape.

{
"name": "list_data_sources",
"arguments": {
"project_name": "forecasts"
}
}
{
"project_name": "forecasts",
"sources": [
{
"source_name": "actuals",
"source_type": "parquet",
"tables": [
"actuals"
],
"snapshot_taken_at": null,
"schema": {
"actuals": [
{
"name": "month",
"dtype": "timestamp[us]"
},
{
"name": "revenue",
"dtype": "float64"
}
]
},
"data_source_id": null,
"spreadsheet_id": null
},
{
"source_name": "headcount_sheet",
"source_type": "google_sheets",
"tables": [
"headcount_sheet__roles",
"headcount_sheet__hires"
],
"snapshot_taken_at": "2026-04-28T10:00:00+00:00",
"schema": {
"headcount_sheet__roles": [
{
"name": "role",
"dtype": "string"
}
]
},
"data_source_id": "88888888-8888-8888-8888-888888888888",
"spreadsheet_id": "1aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEFG"
}
],
"total_count": 2
}
  • Module: Data
  • Requires authentication via API token or Auth0 JWT.