Skip to main content

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

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.
  • SchemaCache is 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

  • QuickBaseClient is the preferred sync client name.
  • QuickBaseAPI still works as the compatibility path.
  • AsyncQuickBaseClient is the preferred async client name.
  • AsyncQuickBaseAPI still works as the compatibility/explicit async path.
  • App.table(...) and AsyncApp.table(...) are preferred.
  • App.Table(...) and AsyncApp.Table(...) still work, but they are deprecated.
  • QuickBaseHandler should be imported from quickbase_data_client.tools.quickbase_log_handler.
  • Package-root compatibility exports for QuickBaseRequest and ResponseFactory are 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quickbase_data_client-0.1.3.tar.gz (69.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quickbase_data_client-0.1.3-py3-none-any.whl (61.0 kB view details)

Uploaded Python 3

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

Hashes for quickbase_data_client-0.1.3.tar.gz
Algorithm Hash digest
SHA256 84050fd430245a765990e5347ed62ed34bd5d06e1ceec0e35d2f8a735a03f536
MD5 4fbfcc3f93b3d3fde4d05a534c353700
BLAKE2b-256 e46857172ca2f6827a4df6cf03e71a3a21015951723613e550a91e5c0503edfd

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quickbase_data_client-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for quickbase_data_client-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8e088db5e23519a0a0369379a33633ec9fff2d9069bd79581cf9bb361d566fcb
MD5 0380257736ef5016a2c8714dde85518a
BLAKE2b-256 6017f6ea4887162cce2d835feccdc7978ba6d531f8497e57357e278e27f72113

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page