Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

BigQuery (Service Account)

Service Account dataanalytics

BigQuery (Service Account)

Connect this agent connector to let your agent:

  • Run run — Execute a SQL query synchronously against BigQuery and return results immediately
  • List list — List all tables and views in a BigQuery dataset
  • Get get — Retrieve metadata and schema for a specific BigQuery table or view, including column names, types, descriptions, and table properties

This connector uses Service Account authentication.

Set up the connector

In Scalekit dashboard, go to Agent AuthCreate Connection. Find BigQuery (Service Account) and click Create.

That’s it — no OAuth credentials or redirect URIs needed. BigQuery Service Account uses server-to-server authentication handled entirely through your GCP service account credentials.

Code examples

Connect to BigQuery using a GCP service account — Scalekit handles authentication automatically using your service account credentials.

import { ScalekitClient } from '@scalekit-sdk/node';
import 'dotenv/config';
const connectionName = 'bigqueryserviceaccount'; // get your connection name from connection configurations
const identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
const scalekit = new ScalekitClient(
process.env.SCALEKIT_ENV_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET
);
const actions = scalekit.actions;
// Create a connected account with your service account credentials
await actions.getOrCreateConnectedAccount({
connectionName,
identifier,
authorizationDetails: {
staticAuth: {
serviceAccountJson: '<paste your GCP service account JSON here>',
},
},
});
// Execute a BigQuery tool
const result = await actions.executeTool({
toolName: 'bigqueryserviceaccount_run_query',
connectionName,
identifier,
toolInput: {
query: 'SELECT 1 AS test',
},
});
console.log(result);

Proxy API Calls

// Make a direct BigQuery REST API call via Scalekit proxy
// Base URL is already scoped to: .../bigquery/v2/projects/{project_id}
const result = await actions.request({
connectionName,
identifier,
path: '/datasets',
method: 'GET',
});
console.log(result);
bigqueryserviceaccount_get_dataset Retrieve metadata for a specific BigQuery dataset, including location, description, labels, access controls, and creation/modification times. 1 param

Retrieve metadata for a specific BigQuery dataset, including location, description, labels, access controls, and creation/modification times.

Name Type Required Description
dataset_id string required The ID of the dataset to retrieve
bigqueryserviceaccount_get_job Retrieve the status and configuration of a BigQuery job by its job ID. Use this to poll for completion of an async query job submitted via Insert Query Job. 2 params

Retrieve the status and configuration of a BigQuery job by its job ID. Use this to poll for completion of an async query job submitted via Insert Query Job.

Name Type Required Description
job_id string required The ID of the job to retrieve
location string optional Geographic location where the job was created, e.g. US or EU
bigqueryserviceaccount_get_model Retrieve metadata for a specific BigQuery ML model, including model type, feature columns, label columns, and training run details. 2 params

Retrieve metadata for a specific BigQuery ML model, including model type, feature columns, label columns, and training run details.

Name Type Required Description
dataset_id string required The ID of the dataset containing the model
model_id string required The ID of the model to retrieve
bigqueryserviceaccount_get_query_results Retrieve the results of a completed BigQuery query job. Supports pagination via page tokens. Use after polling Get Job until status is DONE. 5 params

Retrieve the results of a completed BigQuery query job. Supports pagination via page tokens. Use after polling Get Job until status is DONE.

Name Type Required Description
job_id string required The ID of the completed query job
location string optional Geographic location where the job was created, e.g. US or EU
max_results integer optional Maximum number of rows to return per page
page_token string optional Page token from a previous response to retrieve the next page of results
timeout_ms integer optional Maximum milliseconds to wait if the query has not yet completed
bigqueryserviceaccount_get_routine Retrieve the definition and metadata of a specific BigQuery routine (stored procedure or UDF), including its arguments, return type, and body. 2 params

Retrieve the definition and metadata of a specific BigQuery routine (stored procedure or UDF), including its arguments, return type, and body.

Name Type Required Description
dataset_id string required The ID of the dataset containing the routine
routine_id string required The ID of the routine to retrieve
bigqueryserviceaccount_get_table Retrieve metadata and schema for a specific BigQuery table or view, including column names, types, descriptions, and table properties. 2 params

Retrieve metadata and schema for a specific BigQuery table or view, including column names, types, descriptions, and table properties.

Name Type Required Description
dataset_id string required The ID of the dataset containing the table
table_id string required The ID of the table or view to retrieve
bigqueryserviceaccount_list_datasets List all BigQuery datasets in the project. Supports filtering by label and pagination. 4 params

List all BigQuery datasets in the project. Supports filtering by label and pagination.

Name Type Required Description
all boolean optional If true, includes hidden datasets in the results
filter string optional Label filter expression to restrict results, e.g. labels.env:prod
max_results integer optional Maximum number of datasets to return per page
page_token string optional Page token from a previous response to retrieve the next page
bigqueryserviceaccount_list_jobs List BigQuery jobs in the project. Supports filtering by state and projection, and pagination. 5 params

List BigQuery jobs in the project. Supports filtering by state and projection, and pagination.

Name Type Required Description
all_users boolean optional If true, returns jobs for all users in the project; otherwise returns only the current user's jobs
max_results integer optional Maximum number of jobs to return per page
page_token string optional Page token from a previous response to retrieve the next page
projection string optional Controls the fields returned: minimal (default) or full
state_filter string optional Filter jobs by state: done, pending, or running
bigqueryserviceaccount_list_models List all BigQuery ML models in a dataset, including their model type, training status, and creation time. 3 params

List all BigQuery ML models in a dataset, including their model type, training status, and creation time.

Name Type Required Description
dataset_id string required The ID of the dataset to list models from
max_results integer optional Maximum number of models to return per page
page_token string optional Page token from a previous response to retrieve the next page
bigqueryserviceaccount_list_routines List all stored procedures and user-defined functions (UDFs) in a BigQuery dataset. 4 params

List all stored procedures and user-defined functions (UDFs) in a BigQuery dataset.

Name Type Required Description
dataset_id string required The ID of the dataset to list routines from
filter string optional Filter expression to restrict results, e.g. routineType:SCALAR_FUNCTION
max_results integer optional Maximum number of routines to return per page
page_token string optional Page token from a previous response to retrieve the next page
bigqueryserviceaccount_list_table_data Read rows directly from a BigQuery table without writing a SQL query. Supports pagination, row offset, and field selection. 6 params

Read rows directly from a BigQuery table without writing a SQL query. Supports pagination, row offset, and field selection.

Name Type Required Description
dataset_id string required The ID of the dataset containing the table
table_id string required The ID of the table to read rows from
max_results integer optional Maximum number of rows to return per page
page_token string optional Page token from a previous response to retrieve the next page
selected_fields string optional Comma-separated list of fields to return; if omitted all fields are returned
start_index integer optional Zero-based row index to start reading from
bigqueryserviceaccount_list_tables List all tables and views in a BigQuery dataset. Supports pagination. 3 params

List all tables and views in a BigQuery dataset. Supports pagination.

Name Type Required Description
dataset_id string required The ID of the dataset to list tables from
max_results integer optional Maximum number of tables to return per page
page_token string optional Page token from a previous response to retrieve the next page
bigqueryserviceaccount_run_query Execute a SQL query synchronously against BigQuery and return results immediately. Best for short-running queries. For long-running queries use Insert Query Job instead. 7 params

Execute a SQL query synchronously against BigQuery and return results immediately. Best for short-running queries. For long-running queries use Insert Query Job instead.

Name Type Required Description
query string required SQL query to execute
create_session boolean optional If true, creates a new session and returns a session ID in the response
dry_run boolean optional If true, validates the query and returns estimated bytes processed without executing
location string optional Geographic location of the dataset, e.g. US or EU
max_results integer optional Maximum number of rows to return in the response
timeout_ms integer optional Maximum milliseconds to wait for query completion before returning
use_legacy_sql boolean optional Use BigQuery legacy SQL syntax instead of standard SQL