Skip to main content

Base URL

All API calls in this guide target:
https://api.lynx.tetryx.io

1. Check API health

curl -s https://api.lynx.tetryx.io/healthz | jq
Expected:
{ "status": "ok" }

2. Submit a batch

A batch submission tells Lynx how many simulation runs to create, what parameters to sample, and how to configure compute and telemetry.
curl -sS \
  -X POST https://api.lynx.tetryx.io/jobs \
  -H 'content-type: application/json' \
  -d '{
    "name": "my-first-batch",
    "runs_override": 5,
    "config": {
      "simulation": {
        "name": "My Simulation",
        "version": "1.0.0",
        "duration_minutes": 10
      },
      "monte_carlo": {
        "runs": 5,
        "sampling_method": "latin_hypercube"
      },
      "dispersions": {
        "mass_kg": {
          "distribution": { "type": "normal", "mean": 100.0, "std_dev": 5.0 },
          "units": "kg"
        }
      },
      "compute": {
        "container": {
          "image": "your-org/your-simulation:latest",
          "cpu_request": "1000m",
          "memory_request": "2Gi"
        },
        "max_parallel_jobs": 5,
        "job_timeout_seconds": 600
      },
      "early_termination": {
        "enabled": false,
        "check_frequency_hz": 1.0,
        "conditions": []
      },
      "telemetry": {
        "sampling_rate_hz": 10.0,
        "variables": [],
        "storage": {
          "s3_bucket": "your-telemetry-bucket",
          "s3_prefix": "runs/",
          "compression": "gzip"
        },
        "buffer_flush_interval_seconds": 30
      }
    }
  }' | jq
Response:
{
  "batch_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "total_jobs": 5,
  "estimated_completion_time_mins": null
}
Save the batch_id — you’ll use it to track progress.

3. Check batch status

curl -s https://api.lynx.tetryx.io/batches/<batch-id> | jq
The response includes a breakdown of jobs by status:
{
  "batch": { "status": "Running", "total_jobs": 5, ... },
  "jobs_by_status": { "Completed": 3, "Running": 2 },
  "throughput_jobs_per_minute": 12.4
}

4. Start a runner

Runners are the workers that execute your jobs. Deploy the lynx-runner binary on your own hardware, pointed at the Lynx platform using the connection credentials from your onboarding.
lynx-runner \
  --runner-id my-runner-1 \
  --name "My Runner 1" \
  --max-concurrent-jobs 4
Once the runner is connected, it will start picking up queued jobs automatically. You can verify it registered:
curl -s https://api.lynx.tetryx.io/runners | jq
See Runner Deployment for full configuration options.

5. Fetch results

Once jobs are complete, retrieve results for the entire batch:
curl -s https://api.lynx.tetryx.io/batches/<batch-id>/results | jq
Or for a single job:
curl -s https://api.lynx.tetryx.io/jobs/<job-id>/results | jq

Next steps

Runner Deployment

Configure and scale your runner pool.

Jobs and Batches

Understand the full job lifecycle.

API Reference

Complete endpoint documentation.

Authentication

Planned authentication model.