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

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.

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.

License

Apache License 2.0. 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.1.tar.gz (58.2 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.1-py3-none-any.whl (60.1 kB view details)

Uploaded Python 3

File details

Details for the file quickbase_data_client-0.1.1.tar.gz.

File metadata

  • Download URL: quickbase_data_client-0.1.1.tar.gz
  • Upload date:
  • Size: 58.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for quickbase_data_client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f1a9f13ee8a2ef5d4583fb85a4a5910cbae1966aa4d2071cf1c4185740676230
MD5 74589379c2a734b842920d9f80730ae3
BLAKE2b-256 49afaf74398d11c3b6c5073768cde56f395e73bb2b516ea066c09a0315e1be24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quickbase_data_client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f11ed425445c9f3194fd7cb4085fa71c51348b69e208c0c12fa29a75707bb84f
MD5 6ceb9d132fe4f3df4a0ada470f7da1b7
BLAKE2b-256 02c48e2007190698a7fca002e42202187fe29f7913ccafcb64cf8157b89a4a84

See more details on using hashes here.

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