Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

molbuilder_client-0.1.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

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

Hashes for molbuilder_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e3075cb9a87d791923b3d2c20f89beb3742701b32cd7d0276eccc7ab98ee249f
MD5 97a6bf934aa04083cb0ae1eaf44b85ed
BLAKE2b-256 986f5cc1e79e007dabd2724f69fd5e83939b723cedc0a8ff2b4ca19ca7025dd9

See more details on using hashes here.

File details

Details for the file molbuilder_client-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for molbuilder_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d4bec98d9885490ed839c28b7f25ab8cf71724ba617ea86ff65383233e69ab4
MD5 2b5dbfcdd5fa8e94d687cf737e23ea28
BLAKE2b-256 f82b32f1b8202cf089334b3072b996c96054d46e1bb83de4278ecb6f812ec00b

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