Skip to main content

buildmyiq-sdk

Official Python SDK for BuildMyIQ — a learning, course-authoring, and assessment platform on the Burdenoff platform.

Pre-launch notice: BuildMyIQ is launching in 2026. This package is published ahead of general availability so integrators can build early. There is no live production service yet — join the waitlist at buildmyiq.com to get early access.

This SDK is a thin shell over burdenoff-sdk-libs. It mounts the shared platform modules plus the BuildMyIQ domain module and a standalone sandbox module, and exposes them as one ergonomic, fully typed client.

Features

  • Async/await throughout, built on httpx
  • Dual-endpoint GraphQL client (workspace + global gateways)
  • 23 mounted modules: the shared generic set + buildmyiq + sandbox
  • Multiple auth flows: email/password, device code, PKCE, client credentials
  • Automatic token refresh
  • Typed error hierarchy
  • Full type hints with py.typed marker

Installation

pip install buildmyiq-sdk

# Development install
pip install -e ".[dev]"

Quick Start

import asyncio
from buildmyiq_sdk import BuildmyiqSDK


async def main():
    # Defaults to the shared prod gateways and the burdenoff_cli_buildmyiq
    # OIDC client. Override the endpoints for local dev.
    sdk = BuildmyiqSDK()

    # Sign in with email/password
    await sdk.auth.sign_in(email="user@example.com", password="secret")

    # BuildMyIQ-domain operations are nested under sdk.buildmyiq
    courses = await sdk.buildmyiq.courses.list()
    enrollments = await sdk.buildmyiq.enrollments.list()

    # Shared cross-product modules are mounted at the top level
    tags = await sdk.tags.list()

    await sdk.close()


asyncio.run(main())

Nested namespace

Per the platform mandate (no compatibility shim), every module surface is nested under its owning module. The BuildMyIQ domain bundle keeps its sub-entities nested:

await sdk.buildmyiq.courses.list()
await sdk.buildmyiq.modules.list()
await sdk.buildmyiq.lessons.list()
await sdk.buildmyiq.assessments.list()
await sdk.buildmyiq.questions.list()
await sdk.buildmyiq.submissions.list()
await sdk.buildmyiq.enrollments.list()
await sdk.buildmyiq.cohorts.list()
await sdk.buildmyiq.certificates.list()
await sdk.buildmyiq.skills.list()
await sdk.buildmyiq.system.health()

Modules

All methods are async. The following modules are mounted on the BuildmyiqSDK instance: auth, billing, channels, conversations, devportal, export, files, groups, health, integrations, buildmyiq, notifications, organizations, products, rbac, sandbox, scheduler, security, store, support, tags, tours, workspaces.

Configuration

from buildmyiq_sdk import BuildmyiqSDK

sdk = BuildmyiqSDK(
    workspace_endpoint="https://graphqlworkspaces.burdenoff.com/workspaces/graphql",
    global_endpoint="https://graphql.burdenoff.com/global/graphql",
    client_id="burdenoff_cli_buildmyiq",   # default
    oidc_issuer=None,                       # derived from global_endpoint
    api_key=None,
    access_token=None,
    refresh_token=None,
    workspace_token=None,
    timeout=30.0,
    auto_refresh=True,
)

Error Handling

from buildmyiq_sdk import (
    BuildmyiqError,
    AuthenticationError,
    AuthorizationError,
    NetworkError,
    ValidationError,
    RateLimitError,
    DeviceCodeExpiredError,
    DeviceCodeDeniedError,
)

try:
    await sdk.auth.sign_in(email="user@example.com", password="wrong")
except AuthenticationError:
    print("Invalid credentials")
except NetworkError:
    print("Could not reach the API")
except BuildmyiqError as e:
    print(f"SDK error: {e}")

Development

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

make format        # black + isort
make lint          # flake8
make type-check    # mypy (strict)
make test          # pytest
make sanity        # format-check + lint + type-check + test (cov>=80) + build

License

Proprietary — Copyright Burdenoff Consultancy Services Pvt. Ltd.

Support

Metadata

Release files for buildmyiq-sdk 2026.1107.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for buildmyiq-sdk 2026.1107.1
File Size Uploaded Provenance Actions
buildmyiq_sdk-2026.1107.1.tar.gz 17.7 kB Without provenance Details for buildmyiq_sdk-2026.1107.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for buildmyiq-sdk 2026.1107.1
File Interpreter ABI Platform Actions
buildmyiq_sdk-2026.1107.1-py3-none-any.whl Python 3 none any Details for buildmyiq_sdk-2026.1107.1-py3-none-any.whl

Total release size: 26.3 kB

Release files / buildmyiq_sdk-2026.1107.1.tar.gz

Download URL buildmyiq_sdk-2026.1107.1.tar.gz
Size 17.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9335da2f9f8b83316ebfef4aaa22da6edd3fac962c436390d00eb48b06948687
BLAKE2b-256 checksum
How to use checksums
7517b4f13f367cea0218ac96cacc27fe8879e17cf496f99e588564603841f4f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.18

Release files / buildmyiq_sdk-2026.1107.1-py3-none-any.whl

Download URL buildmyiq_sdk-2026.1107.1-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
04e789300e3c5e130861ce5212baa1ee3fc8b2373ee54dd7682fc4a17a30bb95
BLAKE2b-256 checksum
How to use checksums
c9e322ab3d04ab886a6bd6967e5735b1914c630b6abf5b7253064af39907996b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.18

Security for buildmyiq-sdk 2026.1107.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page