QuickBase JS SDK v2 - v2.2.2
    Preparing search index...

    Interface QuickbaseConfig

    Core types for the QuickBase SDK v2

    interface QuickbaseConfig {
        appToken?: string;
        auth: AuthConfig;
        autoPaginate?: boolean;
        baseUrl?: string;
        convertDates?: boolean;
        debug?: boolean;
        fetchApi?: (
            input: string | URL | Request,
            init?: RequestInit,
        ) => Promise<Response>;
        rateLimit?: RateLimitConfig;
        readOnly?: boolean;
        realm: string;
        schema?: Schema;
        timeout?: number;
    }
    Index

    Properties

    appToken?: string

    Application token for XML API calls.

    App tokens are only needed for the XML API when:

    • The app has "Require Application Tokens" enabled, AND
    • You're NOT using user token authentication (which bypasses app token checks)

    The JSON API does not use app tokens.

    const qb = createClient({
    realm: 'myrealm',
    auth: { type: 'ticket', username: 'user@example.com', password: 'pass' },
    appToken: 'your-app-token',
    });

    Authentication configuration

    autoPaginate?: boolean

    Automatically paginate all paginated requests when awaited (default: false)

    baseUrl?: string

    Base URL override (default: https://api.quickbase.com/v1)

    convertDates?: boolean

    Convert ISO date strings in responses to JavaScript Date objects (default: true)

    debug?: boolean

    Enable debug logging (default: false)

    fetchApi?: (
        input: string | URL | Request,
        init?: RequestInit,
    ) => Promise<Response>

    Custom fetch implementation (default: global fetch)

    rateLimit?: RateLimitConfig

    Rate limiting and retry configuration

    readOnly?: boolean

    Read-only mode prevents any write operations. Uses defense-in-depth with two layers:

    1. Explicit blocklist of known write endpoints
    2. HTTP method check (blocks POST/PUT/DELETE/PATCH unless allowlisted)
    const qb = createClient({
    realm: 'myrealm',
    auth: { type: 'user-token', userToken: '...' },
    readOnly: true,
    });
    // qb.runQuery() works
    // qb.upsert() throws ReadOnlyError
    realm: string

    Your QuickBase realm (e.g., "mycompany" for mycompany.quickbase.com)

    schema?: Schema

    Schema aliases for tables and fields. Allows using readable names instead of QuickBase IDs in queries.

    schema: {
    tables: {
    projects: {
    id: 'bqw3ryzab',
    fields: {
    name: 6,
    status: 7,
    dueDate: 12,
    }
    }
    }
    }
    timeout?: number

    Request timeout in milliseconds (default: 30000)