Python SDK for the MolBuilder REST API
Project description
molbuilder-client
Python SDK for the MolBuilder REST API.
Install
pip install molbuilder-client
Requires Python 3.11+. The only runtime dependency is httpx.
Quickstart
from molbuilder_client import MolBuilder
client = MolBuilder(api_key="mb_...")
# Parse a SMILES string
mol = client.from_smiles("CCO", name="ethanol")
print(mol.id, mol.num_atoms) # mol_xxxx 9
# Get molecular properties
props = client.get_properties(mol.id)
print(props.formula, props.molecular_weight) # C2H6O 46.07
# Get 3D coordinates
structure = client.get_3d(mol.id)
for atom in structure.atoms:
print(atom.symbol, atom.position)
# Look up an element
fe = client.get_element("Fe")
print(fe.name, fe.atomic_weight) # Iron 55.845
# Retrosynthesis
plan = client.retrosynthesis("c1ccccc1O") # phenol
print(plan.routes_found, plan.best_route.total_steps)
# Process evaluation
proc = client.process_evaluate("CCO", scale_kg=100.0)
print(proc.cost.total_usd, proc.cost.per_kg_usd)
Async usage
import asyncio
from molbuilder_client import AsyncMolBuilder
async def main():
async with AsyncMolBuilder(api_key="mb_...") as client:
mol = await client.from_smiles("CCO")
props = await client.get_properties(mol.id)
print(props.formula)
asyncio.run(main())
Error handling
All API errors raise typed exceptions that inherit from MolBuilderError:
from molbuilder_client import MolBuilder, ValidationError, RateLimitError
client = MolBuilder(api_key="mb_...")
try:
client.from_smiles("not_valid")
except ValidationError as e:
print(f"Bad SMILES: {e.message}")
except RateLimitError as e:
print(f"Slow down! Retry after {e.retry_after}s")
| HTTP Status | Exception |
|---|---|
| 401 | AuthenticationError |
| 403 | ForbiddenError |
| 404 | NotFoundError |
| 422 | ValidationError |
| 429 | RateLimitError |
| 500 | ServerError |
| 501/503 | ServiceUnavailableError |
API reference
Auth
| Method | Returns | Description |
|---|---|---|
register(email) |
APIKeyInfo |
Register a new free-tier API key |
get_token() |
Token |
Exchange API key for a JWT |
Molecule
| Method | Returns | Description |
|---|---|---|
from_smiles(smiles, name="") |
MoleculeInfo |
Parse SMILES into a molecule |
get_properties(mol_id) |
MoleculeProperties |
Computed molecular properties |
get_3d(mol_id) |
Molecule3D |
3D coordinates and bonds |
Elements
| Method | Returns | Description |
|---|---|---|
get_element(symbol) |
Element |
Look up element by symbol |
Retrosynthesis
| Method | Returns | Description |
|---|---|---|
retrosynthesis(smiles, max_depth=5, beam_width=5) |
RetrosynthesisPlan |
Plan retrosynthetic routes |
Process
| Method | Returns | Description |
|---|---|---|
process_evaluate(smiles, scale_kg=1.0, max_depth=5, beam_width=5) |
ProcessEvaluation |
Full process engineering report |
Billing
| Method | Returns | Description |
|---|---|---|
create_checkout(plan) |
CheckoutSession |
Create Stripe checkout session |
billing_status() |
BillingStatus |
Current subscription status |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
molbuilder_client-0.1.0.tar.gz
(14.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file molbuilder_client-0.1.0.tar.gz.
File metadata
- Download URL: molbuilder_client-0.1.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3075cb9a87d791923b3d2c20f89beb3742701b32cd7d0276eccc7ab98ee249f
|
|
| MD5 |
97a6bf934aa04083cb0ae1eaf44b85ed
|
|
| BLAKE2b-256 |
986f5cc1e79e007dabd2724f69fd5e83939b723cedc0a8ff2b4ca19ca7025dd9
|
File details
Details for the file molbuilder_client-0.1.0-py3-none-any.whl.
File metadata
- Download URL: molbuilder_client-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d4bec98d9885490ed839c28b7f25ab8cf71724ba617ea86ff65383233e69ab4
|
|
| MD5 |
2b5dbfcdd5fa8e94d687cf737e23ea28
|
|
| BLAKE2b-256 |
f82b32f1b8202cf089334b3072b996c96054d46e1bb83de4278ecb6f812ec00b
|