Skip to main content
Docs

Search guides and API endpoints, for example “Idempotency-Key” or “submit job”.

    Concepts

    Utilities

    Quick conversions and lookups that return their answer directly, counted against a monthly allowance instead of your wallet.

    Updated October 1, 2026

    On this page

    A utility is a small, fast calculation, such as converting a molecule between formats or looking up a fluid property. Utilities differ from jobs in three ways:

    • No wallet charge. Each call counts toward your plan's monthly utility allowance instead (Plans and limits). At the limit, submits return 403 until the next month.
    • The answer comes back as data, not a zip file.
    • No estimate and no hardware choice.

    Call a utility

    1. Submit a utility process with a utility_type and its payload. It returns a process_id (utl-…).
    2. Poll Get utility status until it finishes (usually seconds).
    3. Read the answer from Get a utility result, then delete the process to clear it from your list.

    The Python SDK does all three in one call:

    from cognichem_client import CogniChem
     
    client = CogniChem.from_env()
    result = client.utils.run(
        "convert",
        {"input_data": "CCO", "input_format": "smiles", "output_format": "pdbblock"},
    )
    print(result.data)

    As with jobs, calls made with an API key must send an Idempotency-Key (the SDK adds one for you).

    Utility types

    convert Convert one molecule or biopolymer between text formats (RDKit).

    Payload fields
    FieldTypeDescription
    input_datarequiredstring

    Limits: min length 1

    input_formatrequiredstring

    One of: "fasta", "helm", "mol2block", "molblock", "mrvblock", "pdbblock", "scsrblock", "selfies", "sequence", "smarts", "smiles", "tplblock", "xyzblock", "inchi"

    output_formatrequiredstring

    One of: "inchi", "inchikey", "cmlblock", "cxsmarts", "cxsmiles", "fasta", "helm", "molblock", "mrvblock", "pdbblock", "selfies", "sequence", "smarts", "smiles", "tplblock", "v2kmolblock", "v3kmolblock", "xyzblock"

    generate_3dboolean

    Default: false

    add_hydrogensboolean

    Default: false

    remove_hydrogensboolean

    Default: false

    coolprop Single-state thermophysical property lookup (CoolProp HEOS or INCOMP; SI units). Give two state inputs, or a single T or P for saturation. For grids or curves submit the coolprop job.

    Payload fields
    FieldTypeDescription
    fluidrequiredstring

    Limits: min length 1, max length 128

    backendstring

    Default: "HEOS"One of: "HEOS", "INCOMP"

    inputsrequiredobject
    inputs.Tnumber
    inputs.Pnumber
    inputs.Hnumber
    inputs.Snumber
    inputs.Dnumber
    inputs.Qnumber
    properties[]string[]

    One of: "A", "C", "Cp0mass", "Cpmass", "Cvmass", "D", "H", "P", "PIP", "Prandtl", "Q", "S", "T", "U", "conductivity", "dmass", "dmolar", "hmass", "hmolar", "phase", "smass", "smolar", "speed_of_sound", "surface_tension", "umass", "umolar", "viscosity"Limits: min items 1, max items 32

    druglikeness_filter Lipinski / Veber rules and structural alerts (PAINS, Brenk, NIH) for up to 50 molecules. For larger sets submit the druglikeness-filter job.

    Payload fields
    FieldTypeDescription
    input_datarequiredstring | string[]
    input_formatrequiredstring

    One of: "inchi", "molblock", "smiles"

    apply_lipinskiboolean

    Default: true

    apply_veberboolean

    Default: true

    alert_sets[]string[]

    Default: ["pains","brenk","nih"]One of: "brenk", "nih", "pains"

    qed_minnumber

    Limits: ≥ 0, ≤ 1

    sa_maxnumber

    Limits: ≥ 1, ≤ 10

    molecule_rmsd RMSD between two molecular structures after alignment (and optional atom reordering).

    Payload fields
    FieldTypeDescription
    input_data_1requiredstring

    Limits: min length 1

    input_format_1requiredstring

    One of: "fasta", "helm", "mol2block", "molblock", "mrvblock", "pdbblock", "scsrblock", "selfies", "sequence", "smarts", "smiles", "tplblock", "xyzblock", "inchi"

    input_data_2requiredstring

    Limits: min length 1

    input_format_2requiredstring

    One of: "fasta", "helm", "mol2block", "molblock", "mrvblock", "pdbblock", "scsrblock", "selfies", "sequence", "smarts", "smiles", "tplblock", "xyzblock", "inchi"

    rotation_methodstring

    Default: "kabsch"One of: "kabsch", "quaternion"

    reorder_methodstring

    Default: "inertia-hungarian"One of: "inertia-hungarian", "qml"

    add_hydrogensboolean

    Default: false

    remove_hydrogensboolean

    Default: false

    molecule_standardize Standardize one molecule (largest fragment, uncharge, canonical tautomer, stereo cleanup).

    Payload fields
    FieldTypeDescription
    input_datarequiredstring

    Limits: min length 1

    input_formatrequiredstring

    One of: "inchi", "molblock", "sdf", "smiles"

    largest_fragmentboolean

    Default: true

    unchargeboolean

    Default: true

    canonical_tautomerboolean

    Default: true

    cleanup_stereoboolean

    Default: true

    For larger inputs, several utilities have a job counterpart that runs in the background: Molecule Conversion (convert-batch), Molecule Standardizer (molecule-standardize), and Drug-likeness & Structural Alerts (druglikeness-filter).