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.
Metadata
Release files for quickbase-data-client 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quickbase_data_client-0.1.3.tar.gz | 69.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quickbase_data_client-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 130.8 kB
Release files / quickbase_data_client-0.1.3.tar.gz
| Download URL | quickbase_data_client-0.1.3.tar.gz |
|---|---|
| Size | 69.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84050fd430245a765990e5347ed62ed34bd5d06e1ceec0e35d2f8a735a03f536
|
|
BLAKE2b-256 checksum How to use checksums |
e46857172ca2f6827a4df6cf03e71a3a21015951723613e550a91e5c0503edfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 24, 2026.
Transparency logRelease files / quickbase_data_client-0.1.3-py3-none-any.whl
| Download URL | quickbase_data_client-0.1.3-py3-none-any.whl |
|---|---|
| Size | 61.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8e088db5e23519a0a0369379a33633ec9fff2d9069bd79581cf9bb361d566fcb
|
|
BLAKE2b-256 checksum How to use checksums |
6017f6ea4887162cce2d835feccdc7978ba6d531f8497e57357e278e27f72113
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 24, 2026.
Transparency log