Skip to main content
Docs

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

    Tools · Cheminformatics & Structure

    Purchasability Screen

    Check which molecules are listed as in stock in ZINC20, with vendors and catalog numbers, by exact, parent or connectivity InChIKey match
    On this page

    Prices, workflows, and method papersOpen in the app

    Run it from the API

    Submit with Submit a job and the job_type below. Price it first with Estimate job reservation cost: submitting reserves that amount from your wallet, and the charge settles at the actual runtime.

    Purchasability Screen purchasability-screen

    Job type
    purchasability-screen
    Hardware
    cpu (default)
    Typical runtime
    5 min on CPU

    Payload

    Provide exactly one of: input_data + input_format, input_table.

    Payload fields
    FieldTypeDescription
    input_data[](string | artifactRef)[]

    Limits: min items 1, max items 10000

    input_formatstring

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

    input_tablestring | object[] | artifactRef
    smiles_columnstring

    Default: "smiles"Limits: min length 1

    min_match_levelstring

    Default: "parent"One of: "exact", "parent", "connectivity"

    Example

    from cognichem_client import CogniChem
    
    client = CogniChem.from_env()  # reads COGNICHEM_API_KEY
    payload = {
        "input_data": [
            "CC(=O)Oc1ccccc1C(=O)O",
            "CC(=O)Oc1ccccc1C(=O)[O-].[Na+]",
            "C[C@H](N)C(=O)O",
            "CCCCCCCCCCCCCCCCCCCCCCCCCN",
        ],
        "input_format": "smiles",
        "min_match_level": "parent",
    }
    
    estimate = client.jobs.estimate(job_type="purchasability-screen", payload=payload, resource="cpu")
    print(f"Reserves ${estimate.cost:.2f}")
    
    job = client.jobs.submit(
        job_name="my-purchasability-screen-run",
        job_type="purchasability-screen",
        payload=payload,
        resource="cpu",
    )
    status = client.jobs.wait(job.process_id)
    if status.status == "completed":
        client.jobs.result(job.process_id, save_path=".")

    Sample data from the job catalog; long values are shortened here. Each job_name must be unique among your jobs.

    Workflow inputs

    • Molecules (list) · optionalSMILES, INCHI, MOLBLOCK
    • Table (list) · optionalCSV, TSV, JSON

    Workflow outputs

    • ArchiveZIP
    • TableCSV
    • MoleculesSMILES
    • MoleculesSMILES