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.typedmarker
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
- Issues: GitHub Issues
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.