Developers

API (preview)

Programmatic access to public Helix simulations. This page sketches the shape we're designing toward — endpoints are not stable yet and will change before launch.

Not yet shipped

These endpoints are a design preview. Nothing on this page is live in production. We'll cut a 0.1 once the auth flow and rate limiter are in place — sign up at /contact to get the early-access link.

Base URL

All endpoints live under https://api.simedo.work/v1. Requests must include an API key in the Authorization header:

Authorization: Bearer hlx_live_<your-key>

API keys are issued per user and scoped to public-read by default. Write scopes (upload, edit, delete) require a separate confirmation flow.

List simulations

GET /v1/simulations
  ?category=protein
  &tag=gromacs
  &sort=recent
  &cursor=<opaque>

Returns a paginated list of public simulations matching the filter. Each entry has id, name,uploader, nAtoms,nFrames, publishedAt, and a links object pointing at the viewer, embed, and download URLs.

Get a simulation

GET /v1/simulations/:id

Full metadata for a single simulation, including the parsed topology summary (chains, residue counts), tags, license, and the uploader's description.

Stream a trajectory

GET /v1/simulations/:id/trajectory
  ?start=0
  &end=500
  &stride=5
  &format=xtc

Streams a trajectory slice in the requested format. Range parameters let you pull a window without downloading the whole file.

Rate limits

The planned defaults for read endpoints:

  • 60 requests per minute per IP, unauthenticated.
  • 1000 requests per minute per API key.
  • 5 trajectory downloads per minute per API key.

Burst headroom and per-route quotas are still being tuned — comments welcome.

SDKs

A small Python SDK will ship alongside v1. It wraps the endpoints above and adds helpers for handing a Helix simulation directly to MDTraj or MDAnalysis:

from helix import client

c = client.from_env()
sim = c.simulations.get("sim_8x4n2")
traj = sim.as_mdtraj(stride=10)