Web portal · JSON API

Documentation

Put a structure in — a molecule (SMILES) or a protein sequence — pick how deep to go, get a deterministic dossier back. Same input, same numbers, every time.

Quickstart

1. Request access → we approve you → log in. 2. New submission → paste a panel or use the guided builder. 3. Watch it compute live, read the dossier in-browser, download it, or pull it from the API. Every dossier carries a SHA-256 hash seal so a result is verifiable.

Panel format

A panel is JSON. Small molecules go under compounds; each row needs a smiles (or a name / CAS / InChIKey we can resolve).

{
  "options": { "tier": 1 },
  "compounds": [
    { "name": "vanillin",  "smiles": "O=Cc1ccc(O)c(OC)c1" },
    { "name": "caffeine", "smiles": "Cn1cnc2c1c(=O)n(C)c(=O)n2C" }
  ]
}

What comes back

Every run returns a deterministic dossier — read it in-browser, download the PDF, or pull the JSON. Each compound comes back with its taste class, off-note flag, aroma and the full instrument panel, all under one SHA-256 seal. A taste screen looks like:

{
  "compound": "vanillin",
  "taste_class": "sweet / vanilla",
  "off_note": false,
  "aroma": ["vanilla", "creamy"],
  "intact_mass_Da": 152.15,
  "confidence": 0.82,
  "seal_sha256": "9f2a...e7c1"
}

Depth tiers

Set options.tier. Tier 1 = taste, off-note, masking (≤60 / dossier). Tier 2 = + aroma, shelf-life, blend (≤120). Tier 3 = + safety, stability and the full protein instrument panel (≤180). Overflow is deferred to the full program.

Proteins

Give a sequence (or a UniProt accession we fetch), plus any context — structure (e.g. "11S hexamer"), n_disulfide, conditions (pH, ionic strength, scan rate). More context → a deeper answer.

JSON API

Authenticate with your API key (Authorization: Bearer <key>). Runs are async: submit, poll, fetch the report. Endpoints: POST /v1/runs, GET /v1/runs/<id>, …/report, GET /v1/deliverables, /v1/usage, /v1/billing.

curl -X POST https://app.hansley.ca/v1/runs \
  -H "Authorization: Bearer $RARAMA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tier":1,"compounds":[{"name":"vanillin","smiles":"O=Cc1ccc(O)c(OC)c1"}]}'

Keys & account

Your API key lives under Account in the portal — view its prefix and rotate it anytime (the old key stops working immediately). Usage and quota are always on your dashboard. Questions? Open a ticket from the portal.