Tools
Tables Load
tables_load
MCP
Load a CSV or TSV file into the current project's editable BigQuery catalog
Load a CSV or TSV file into the project's editable BigQuery catalog.
The file can be provided by a public HTTP(S) URL or Base64 content.
For a local file, upload it at https://app.botify.com/:organization/:project/o/storage/tmp and pass the returned URL as source_url.
CSV/TSV files may be gzip compressed.
The operation fails when the destination table exists unless replace_existing is explicitly enabled.
Playground
Billing
Schemas
Playground
Your organization, project and token stay in this browser's local storage and are sent
straight to the API — this page never sees them.
Billing
Fixed cost per item requested. Loading a file reads no existing data, so no data-scanned charge applies.
These usage SKUs can be charged on a call.
SKU
Credits
Description
Tool call
1 per request
Charged once per successful item.
Schemas
item is what you send, config how the tool behaves,
and the response is what you get back.
Item
object
Properties
table_name
string
required
Destination table name in the editable catalog; must not match a managed table family
pattern "^[A-Za-z_][A-Za-z0-9_]{0,1023}$"
table_description
string | null
Optional BigQuery table description
Default: null
source_url
string | null
HTTP(S) URL of the source file. Temporary uploaded URLs on https://app.botify.com/:organization/:project/o/storage/tmp are allowed.
Default: null
content_base64
string | null
Base64-encoded file content. Prefer source_url for large files.
Default: null
format
DelimitedFormat
Delimited input format, or auto-detect from the filename
Type:
DelimitedFormat
Default: "auto"
columns
ColumnDefinition
Optional explicit BigQuery schema. When omitted, BigQuery infers the schema from the file header and rows.
Items:
ColumnDefinition
Default: null
replace_existing
boolean
Replace an existing table. Disabled by default to prevent unintentional data loss.
Default: false
Example
Copy
{
"table_name": "string",
"table_description": null,
"source_url": null,
"content_base64": null,
"format": "auto",
"columns": null,
"replace_existing": false
}
Type Definitions
2 types
These are the available sub-object types that can be used in the
properties above.
ColumnDefinition
object
#
Definition of a column in the table.
name
string
required
Name of the column
type
string
required
BigQuery column type
Values:
STRING
BYTES
INTEGER
INT64
FLOAT
FLOAT64
NUMERIC
BIGNUMERIC
BOOLEAN
BOOL
TIMESTAMP
DATE
TIME
DATETIME
GEOGRAPHY
RECORD
STRUCT
JSON
mode
string
Column mode
Values:
NULLABLE
REQUIRED
REPEATED
Default: "NULLABLE"
description
string | null
Optional description of the column
Default: null
fields
ColumnDefinition
Nested fields for RECORD type columns
Items:
ColumnDefinition
Default: null
Values:
auto
csv
tsv
Response
object
Properties
table_name
string
required
Created or loaded table name
rows_loaded
integer
required
Number of rows loaded
format
string
required
Detected file format
replaced_existing
boolean
required
Whether an existing table was replaced
Example
Copy
{
"table_name": "string",
"rows_loaded": 0,
"format": "string",
"replaced_existing": true
}
Endpoints
POST
http://agents.botify.com/{organization}/{project}/tables_load/process
POST
http://agents.botify.com/{organization}/{project}/tables_load/batch_process
POST
http://agents.botify.com/{organization}/{project}/tables_load/async_process
POST
http://agents.botify.com/{organization}/{project}/tables_load/async_batch_process
See running a long job in the background for the polling flow.
cURL
Copy
curl -X POST "http://agents.botify.com/{organization}/{project}/tables_load/process" \
-H "Authorization: Bearer $BOTIFY_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"item": {
"table_name": "<table_name>"
}
}'
Over MCP
This tool is exposed as the MCP tool tables_load. An MCP client passes
organization, project and item as tool arguments.
Set up MCP →
Raw metadata