Python client for Quickbase data access with optional schema caching and pandas helpers
Project description
QuickBase-Data-Client
QuickBase-Data-Client is a focused Python client for Quickbase data access.
It is built for record queries, upserts, reports, formulas, file attachments, optional schema-assisted lookup, and pandas-based workflows. It is not a full Quickbase administration SDK, and it does not try to wrap every Quickbase endpoint.
Supported Surface
- Sync client:
QuickBaseClient - Compatibility sync path:
QuickBaseAPI - Async client:
AsyncQuickBaseClient - Compatibility/explicit async path:
AsyncQuickBaseAPI - App/table helpers:
App,Table,AsyncApp,AsyncTable - Explicit identifiers:
Identifier - Optional schema lookup:
SchemaCache - Request tuning:
RequestConfig - File uploads/downloads:
FilePayload
Current maintained capabilities:
- ID-first record query and upsert workflows
- report execution and sync formula execution
- high-level query/report pagination helpers in the sync client
- file upload, download, and delete operations in the sync client
- async core data operations: query, upsert, report, and file upload
- DataFrame conversion and DataFrame-to-upsert workflows
- configurable retries, timeouts, and request/file size limits
- package-level exceptions instead of status-wrapper error signaling
Installation
pip install quickbase-data-client
The published package name is quickbase-data-client. The import path is quickbase_data_client.
Python 3.10+ is required. pandas and numpy are direct dependencies in the current package shape.
Quickstart
Use IDs directly unless you specifically need schema-assisted name resolution.
from quickbase_data_client import Auth, QuickBaseClient
auth = Auth("example.quickbase.com", "qb-user-token")
client = QuickBaseClient(auth)
orders = client.table(id="bq123456")
query_response = orders.query_records(
"{3.GT.0}",
select=[3, 6, 7],
)
upsert_response = orders.upsert_records(
[
{"6": {"value": "INV-1001"}, "7": {"value": 125.0}},
{"6": {"value": "INV-1002"}, "7": {"value": 210.5}},
]
)
print(query_response.status_code)
print(len(query_response.data))
print(upsert_response.metadata)
QuickBaseResponse wrappers expose status_code, status_text, metadata, fields, data, raw, and parsed. Query/report responses can also be converted to pandas with .dataframe(...).
Docs
- Documentation Index
- Installation
- Quickstart
- ID-Only Usage
- Schema Cache Usage
- DataFrame Workflows
- File Handling
- Exceptions
- Retries and Configuration
- Async Support
- Examples
- Development
- Migration Notes
See the changelog for notable unreleased and released changes.
Notes On Scope
This package is intentionally narrow.
- It supports Quickbase data operations, not structural app/table administration.
- IDs are the primary contract.
SchemaCacheis optional and explicit.- Async support is intentionally smaller than the sync surface.
For structural administration such as app, table, field, relationship, trustee, Solutions/QBL, and schema export workflows, use the companion QuickBase-Structure-Client.
Compatibility Notes
QuickBaseClientis the preferred sync client name.QuickBaseAPIstill works as the compatibility path.AsyncQuickBaseClientis the preferred async client name.AsyncQuickBaseAPIstill works as the compatibility/explicit async path.App.table(...)andAsyncApp.table(...)are preferred.App.Table(...)andAsyncApp.Table(...)still work, but they are deprecated.QuickBaseHandlershould be imported fromquickbase_data_client.tools.quickbase_log_handler.- Package-root compatibility exports for
QuickBaseRequestandResponseFactoryare deprecated.
Schema Data Safety
Generated schema caches can contain tenant-specific metadata. Treat them as local runtime artifacts, not source files.
- The default SQLite cache path is
models/QuickBase_Schema.sqlite3. - Do not publish
models/contents. - Do not copy tenant schema payloads into docs or examples.
Phase 11 adds an explicit source-distribution guard so local models/ cache files are not bundled by accident.
DISCLAIMER
This project was made primarily through the use of LLMs. As a result its code is open and available for all.
License
The Unlicense. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quickbase_data_client-0.1.3.tar.gz.
File metadata
- Download URL: quickbase_data_client-0.1.3.tar.gz
- Upload date:
- Size: 69.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84050fd430245a765990e5347ed62ed34bd5d06e1ceec0e35d2f8a735a03f536
|
|
| MD5 |
4fbfcc3f93b3d3fde4d05a534c353700
|
|
| BLAKE2b-256 |
e46857172ca2f6827a4df6cf03e71a3a21015951723613e550a91e5c0503edfd
|
Provenance
The following attestation bundles were made for quickbase_data_client-0.1.3.tar.gz:
Publisher:
build_and_publish.yml on Derek-Banker/QuickBase-Data-Client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quickbase_data_client-0.1.3.tar.gz -
Subject digest:
84050fd430245a765990e5347ed62ed34bd5d06e1ceec0e35d2f8a735a03f536 - Sigstore transparency entry: 1943646608
- Sigstore integration time:
-
Permalink:
Derek-Banker/QuickBase-Data-Client@2d332dae8c8b652329cd9f77c4d635643dc0634a -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/Derek-Banker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_and_publish.yml@2d332dae8c8b652329cd9f77c4d635643dc0634a -
Trigger Event:
release
-
Statement type:
File details
Details for the file quickbase_data_client-0.1.3-py3-none-any.whl.
File metadata
- Download URL: quickbase_data_client-0.1.3-py3-none-any.whl
- Upload date:
- Size: 61.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e088db5e23519a0a0369379a33633ec9fff2d9069bd79581cf9bb361d566fcb
|
|
| MD5 |
0380257736ef5016a2c8714dde85518a
|
|
| BLAKE2b-256 |
6017f6ea4887162cce2d835feccdc7978ba6d531f8497e57357e278e27f72113
|
Provenance
The following attestation bundles were made for quickbase_data_client-0.1.3-py3-none-any.whl:
Publisher:
build_and_publish.yml on Derek-Banker/QuickBase-Data-Client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quickbase_data_client-0.1.3-py3-none-any.whl -
Subject digest:
8e088db5e23519a0a0369379a33633ec9fff2d9069bd79581cf9bb361d566fcb - Sigstore transparency entry: 1943646628
- Sigstore integration time:
-
Permalink:
Derek-Banker/QuickBase-Data-Client@2d332dae8c8b652329cd9f77c4d635643dc0634a -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/Derek-Banker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_and_publish.yml@2d332dae8c8b652329cd9f77c4d635643dc0634a -
Trigger Event:
release
-
Statement type: