Documentation built for the way engineers read.
Working examples first. Conceptual background second. The runbook on the third tab. Every page links to the test that proves the snippet still runs.
Get a working call against Aether in under ten minutes.
Longer walkthroughs for the workloads people actually run.
- Couple thermal and structural on a turbine bladeEngineering · multiphysics
- Run a fragment screen end-to-endDrug discovery
- Drive RTL through signoffSemiconductors
- Schedule a wet-lab campaignAutonomous labs
- Ship an agent through the runtimeLong-horizon agents
- Adopt Aether for software in a 200-engineer orgSoftware · adoption
- Run on-prem, air-gappedDeployment
- Customise refusal corpusSafety · advanced
The complete surface area — call by call, field by field.
- Aether API · PythonSDK reference
- Aether API · TypeScriptSDK reference
- Aether API · GoSDK reference
- Aether API · OpenAPIRaw surface
- Tool-policy DSLCapability gating
- Instrument adaptersLiquid handlers, dispensers, open robotics
- IDE vendor adapters15 surfaces
- CLI referenceaether(1)
- Trace and event schemaOTel + JSON
How to run Aether in production — deploy, monitor, recover.
- VPC deploymentAWS, GCP, Azure, OCI
- On-prem and air-gappedSovereign installs
- Monitoring and tracesPrometheus + OTLP
- Backup and recoveryRPO and RTO targets
- Upgrade strategyBlue/green for the runtime
- Capacity planningGPU sizing, concurrency
- Incident response runbookSeverity matrix + on-call
- Compliance evidenceSOC 2, GxP, ITAR
How we write these pages.
Every documentation page in Aether follows the same shape — so once you've read one, you've read them all.
The smallest working example appears in the top half of the page. Copy-pasteable. Tested in CI. If the snippet doesn't run, the page is broken.
Why the API has the shape it has — the trade-offs we made, and the ones we didn't. Every concept page links to the snippet and to the reference.
The boring operational details: limits, retries, error codes, what to page about. Every reference and concept page closes on the operational realities.
Every endpoint, schema first.
For each endpoint on the surface — the request shape, the response shape, and the error codes you should code against. Full schemas in the OpenAPI file; this page is for the reader trying to ship.
- POST
/v1/simulateForward-in-time simulation across CFD / FEA / MD / DFT / MHD / multiphysics.Request body{ "domain": "multiphysics", "geometry_uri": "s3://bucket/blade.step", "physics": ["thermal", "structural"], "boundary_conditions": { ... }, "horizon_s": 12.0, "stream": true }Response body{ "trajectory_id": "trj_01HK...", "stream_url": "wss://api.apexworldlabs.com/v1/sessions/...", "compute_units_estimate": 12.4, "model_version": "simos-280b-2026-04" }Errors:400 validation_error403 policy_denied429 rate_limited503 model_overloaded - POST
/v1/fepAlchemical free-energy perturbation — relative or absolute binding free energies.Request body{ "targets": ["pdb:1abc", "pdb:2def"], "library_uri": "s3://bucket/ligands.sdf", "method": "fep+", "convergence": { "target_se_kcal_per_mol": 0.3 } }Response body{ "campaign_id": "fep_01HK...", "edges": [{ "ligand": "L1", "target": "1abc", "ddg_kcal_per_mol": -1.4, "se": 0.21 }], "compute_units_estimate": 1200.0 }Errors:400 validation_error403 policy_denied - POST
/v1/admetADMET endpoint panel — per-endpoint score, calibration and confidence.Request body{ "molecules": ["c1ccccc1O", "C(C(=O)O)N"], "endpoints": ["herg", "ames", "logp", "solubility", "cyp_inhibition"] }Response body{ "results": [ { "molecule": "c1ccccc1O", "herg": { "score": 0.12, "ci": [0.08, 0.16] }, ... } ] }Errors:400 validation_error403 policy_denied - POST
/v1/rtl/synthesiseRTL synthesis with PPA targets. Hands off to placement on success.Request body{ "rtl_uri": "s3://bucket/core.v", "pdk": "asap7-predictive", "targets": { "freq_mhz": 1800, "area_um2": 92000, "power_mw": 380 }, "enable": ["dft", "lvs", "drc"] }Response body{ "run_id": "rtl_01HK...", "wns_ns": -0.04, "area_um2": 91240, "power_mw": 372, "drc_clean": true, "gds_uri": "s3://bucket/out.gds" }Errors:400 validation_error403 policy_denied503 model_overloaded - POST
/v1/code/editWhole-repo planned edit. Returns diff, plan, tests and a drafted PR.Request body{ "repo_uri": "s3://bucket/repo.tar", "intent": "Migrate from Python 3.8 to 3.12 with strict mypy.", "policy": { "max_files_changed": 800, "require_tests_pass": true } }Response body{ "edit_id": "edt_01HK...", "plan_uri": "https://api.apexworldlabs.com/v1/plans/...", "pull_requests": [{ "title": "...", "files_changed": 247, "tests_status": "pass" }] }Errors:400 validation_error403 policy_denied409 concurrent_modification - POST
/v1/lab/planPlan a wet-lab campaign — bind reagents, schedule plates, allocate instruments.Request body{ "objective": "antibody developability screening · n=96", "assays": ["thermal_stability", "aggregation_propensity", "hERG"], "instruments": ["plate_reader_01", "liquid_handler_03"], "constraints": { "weeks": 4, "max_plates_per_day": 12 } }Response body{ "plan_id": "lab_01HK...", "plates": [{ "id": "P01", "layout": "..." }], "instrument_schedule": [...] }Errors:400 validation_error403 policy_denied - GET
/v1/sessions/{id}Resume a long-horizon session. Memory and tool history are restored.Request body(no body)Response body{ "session_id": "sess_01HK...", "started_at": "2026-05-01T12:00:00Z", "memory_entries": 482, "policy": { "capabilities": ["solver:*", "filesystem:read"] } }Errors:401 missing_credentials404 not_found - GET
/v1/traces/{id}Pull the full audit trace for a run — every decision and tool call.Request body(no body)Response body{ "trace_id": "trc_01HK...", "spans": [{ "name": "tool_call", "tool": "cfd_solver", "duration_ms": 124000, "signed_by": "agent-key:..." }] }Errors:401 missing_credentials403 policy_denied
Terms of art, defined.
A short list of the terms we use throughout the docs. If a word is doing load-bearing work on a page, it'll be here.
- Trajectory
- A streamed series of time-step states from a forward-in-time simulation. Trajectories are interruptable, branchable and steerable mid-flight.
- Capability gate
- A policy check between the model and a real-world tool call. Refusal corpora, controlled-pathogen lookups and export-control rules live here.
- Tool
- A callable the model can invoke. Solvers, instruments, CAD kernels and your own services are all tools. Each tool declares a capability requirement.
- Session
- A long-horizon conversation with memory, audit trail and policy attached. Sessions persist across days and can be resumed by ID.
- Eval
- A scored, traced replay of a workload against a target metric. Evals are versioned and runnable in CI.
- Refusal
- A model-layer denial of an unsafe or out-of-policy request. Refusals are tested per release against a versioned red-team corpus.
- Trace
- An immutable audit record of every decision, tool call and memory write the model made during a session. Exportable as OTel spans or JSONL.
- Forward-deployed engineer
- An Apex engineer who pairs with the customer team for the duration of a pilot. Senior, technical, and on the hook for the win condition.
What we promise about every page.
These are not aspirations. If a page breaks one of these rules, file an issue on /docs and we will fix it before the next release.
- 01Snippets pass CI before they ship.
- 02Every page links to the test that proves it.
- 03Trade-offs are stated, not hidden.
- 04Failure modes are documented with the success modes.
- 05Status badges are honest: GA, Preview, or Roadmap.
- 06Examples use real data shapes from real workloads.
Missing something?
If a page you needed wasn't there, write to docs@apexworldlabs.com. The next time anyone looks, it will be.