NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #228 most downloaded on PyPI
Google BigQuery API client library
Last release today
02 Oct 2026
Release timing varies
gaps range from 1 weeks to 3 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
10 years old
197 releases · first in 2016
Add client.get_service_account_email
client.get_service_account_email (#5203)Remove deprecated Client methods
One column per quarter.
Use job.configuration resource for XXXJobConfig classes
job.configuration resource for XXXJobConfig classes (#5036)page_size parameter for list_rows and use in DB-API for arraysize (#4931)selected_fields for listing query result rows (#5072)Add support for EncryptionConfiguration
EncryptionConfiguration (#4845)google-api-core has been updated to version 1.0.0. This may cause some incompatibility with older google-cloud libraries, you will need to update those libraries if you have a dependency conflict. (#4944, #4946)Table.full_table_id and TableListItem.full_table_id docstrings. (#4906)This is the release candidate for v1.0.0.
This is the release candidate for v1.0.0.
delete_contents to delete_dataset. (#4724)SchemaField.from_api_repr(). (#4754)LoadJobConfig.from_api_repr. (#4727)Add Client.insert_rows() and Client.insert_rows_json(), deprecate Client.create_rows() and Client.create_rows_json().
to_dataframe() method to row iterators. When Pandas is installed this
method returns a DataFrame containing the query's or table's rows.
(#4354)QueryJob to wait for and get the query results.
(#4350)Table.reference and Dataset.reference properties to get the
TableReference or DatasetReference corresponding to that Table or
Dataset, respectively.
(#4405)Row.keys(), Row.items(), and Row.get(). This makes Row act
more like a built-in dictionary.
(#4393,
#4413)Client.insert_rows() and Client.insert_rows_json(), deprecate
Client.create_rows() and Client.create_rows_json().
(#4657)Client.list_tables, deprecate Client.list_dataset_tables.
(#4653)Client.list_tables returns an iterators of TableListItem. The API
only returns a subset of properties of a table when listing.
(#4427)QueryJob.query_results(). Use QueryJob.result() instead.
(#4652)Client.query_rows(). Use Client.query() instead.
(#4429)Client.list_datasets returns an iterator of DatasetListItem. The API
only returns a subset of properties of a dataset when listing.
(#4439)0.28.0 significantly changes the interface for this package. For examples of the differences between 0.28.0 and previous versions, see [Migrating to t
0.28.0 significantly changes the interface for this package. For examples of the differences between 0.28.0 and previous versions, see Migrating to the BigQuery Python client library 0.28. These changes can be summarized as follows:
Row class allows for access by integer index like a tuple, string
index like a dictionary, or attribute access like an object. (#4149)Dataset (#4026)Table (#4207)Table.streaming_buffer property (#4161)TableReference class (#3942)DatasetReference class (#3938, #3942, #3993)ExtractJob.destination_uri_file_counts property. (#3803)client.create_rows_json() to bypass conversions on streaming writes.
(#4189)client.get_job() to get arbitrary jobs. (#3804, #4213)client.list_datasets() (#4205)QueryJob.undeclared_query_parameters property. (#3802)QueryJob.referenced_tables property. (#3801)QueryJob (#3800)QueryJob.query_plan property. (#3799)client.run_async_query(), use client.query() instead. (#4130)client.run_sync_query(), use client.query_rows() instead. (#4065, #4248)QueryResults read-only. (#4094, #4144)get_query_results private. Return rows for QueryJob.result() (#3883)*QueryParameter and UDFResource classes to query module (also
exposed in bigquery module). (#4156)client from Table class (#4159)table.exists() (#4145)table.list_parations to client.list_partitions (#4146)table.upload_from_file to client.load_table_from_file (#4136)table.update() and table.patch() to client.update_table() (#4076)table.insert_data() to client.create_rows(). Automatically
generates row IDs if not supplied. (#4151, #4173)table.fetch_data() to client.list_rows() (#4119, #4143)table.delete() to client.delete_table() (#4066)table.create() to client.create_table() (#4038, #4043)table.reload() to client.get_table() (#4004)Table.name attribute to Table.table_id (#3959)Table constructor takes a TableReference as parameter (#3997)client from Dataset class (#4018)dataset.exists() (#3996)dataset.list_tables() to client.list_dataset_tables() (#4013)dataset.delete() to client.delete_dataset() (#4012)dataset.patch() and dataset.update() to client.update_dataset() (#4003)dataset.create() to client.create_dataset() (#3982)dataset.reload() to client.get_dataset() (#3973)Dataset.name attribute to Dataset.dataset_id (#3955)client.dataset() returns a DatasetReference instead of Dataset. (#3944)dataset.AccessGrant -> dataset.AccessEntry. (#3798)dataset.table() returns a TableReference instead of a Table (#4014)Dataset constructor takes a DatasetReference (#4036)job.begin() method private. (#4242)LoadJobConfig class and modify LoadJob (#4103, #4137)CopyJobConfig class and modify CopyJob (#4051, #4059)default_dataset changed from Dataset to
DatasetReference (#4037)client.load_table_from_storage() to client.load_table_from_uri()
(#4235)client.extract_table_to_storage to client.extract_table().
Method starts the extract job immediately. (#3991, #4177)XJob.name to XJob.job_id. (#3962)LoadTableFromStorageJob -> LoadJob and
ExtractTableToStorageJob -> jobs.ExtractJob (#3797)google-cloud-core ~= 0.28, in particular, the
google-api-core package has been moved out of google-cloud-core. (#4221)PyPI: https://pypi.org/project/google-cloud-bigquery/0.28.0/
Remove client-side enum validation.
Table.row_from_mapping helper. (#3425)google.cloud.future to google.api.core (#3764)__eq__ and __ne__. (#3765)google.cloud.iterator to google.api.core.page_iterator (#3770)nullMarker support for BigQuery Load Jobs (#3777), h/t @leondealmeidajob_id to be explicitly specified in DB-API. (#3779)SchemaField serialization and deserialization. (#3786)get_query_results method to the client. (#3838)getQueryResults method. (#3844)max_results is set. (#3845)PyPI: https://pypi.org/project/google-cloud-bigquery/0.27.0/
Using the requests transport attached to a Client for for resumable media (i.e. downloads and uploads) (#3705) (this relates to the httplib2 to reques
requests transport attached to a Client for for resumable media
(i.e. downloads and uploads) (#3705) (this relates to the httplib2 to
requests switch)autodetect property on LoadTableFromStorageJob to enable schema
autodetection. (#3648)job.result() to
wait for jobs to complete instead of polling manually on the job status.
(#3626)is_nullable property on SchemaField. Can be used to check if a
column is nullable. (#3620)job_name argument added to Table.upload_from_file for setting the job
ID. (#3605)google.cloud.bigquery.dbapi package, which implements PEP-249
DB-API specification. (#2921)Table.view_use_legacy_sql property. Can be used to create views
with legacy or standard SQL. (#3514)results() method from the QueryJob class. Use
query_results() instead. (#3661)SchemaField is now immutable. It is also hashable so that it can be used
in sets. (#3601)google-cloud-core ~= 0.26, in particular, the underlying HTTP
transport switched from httplib2 to requests (#3654, #3674)google-resumable-media for loading BigQuery tables
from local files. (#3555)tests (vs. unit_tests) in MANIFEST.in (#3552)author_email in setup.py to googleapis-publisher@google.com.
(#3598)PyPI: https://pypi.org/project/google-cloud-bigquery/0.26.0/
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →