NEROX/REST API
Integration

REST API

Language-agnostic HTTP integration. Submit jobs and retrieve results from any system that can make HTTP requests.

Submit a job

bash
curl -X POST https://driftrail.com/nerox/api/v1/jobs \
  -H "Authorization: Bearer nrx_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "problem_type": "tsp",
    "payload": {
      "distance_matrix": [[0,10,15],[10,0,20],[15,20,0]]
    },
    "solver": "gpu",
    "config": { "n_runs": 512 }
  }'

# Response:
# { "job_id": "job_abc123", "status": "queued", "queued_at": "..." }

Poll for result

bash
# Poll until status is "completed" or "failed"
curl https://driftrail.com/nerox/api/v1/jobs/job_abc123 \
  -H "Authorization: Bearer nrx_sk_..."

# Response when done:
# {
#   "job_id": "job_abc123",
#   "status": "completed",
#   "result": {
#     "objective": 45.0,
#     "solution": [0, 2, 1],
#     "runtime_s": 3.2,
#     "gpu_seconds": 3.2
#   }
# }

Submit QUBO from any language

javascript
// JavaScript / Node.js example
const response = await fetch('https://driftrail.com/nerox/api/v1/jobs', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.NEROX_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    problem_type: 'qubo',
    payload: { Q: [[1, -2], [-2, 1]] },
    solver: 'gpu',
  }),
});
const { job_id } = await response.json();

// Poll for result
let result;
while (true) {
  const r = await fetch(`https://driftrail.com/nerox/api/v1/jobs/${job_id}`, {
    headers: { 'Authorization': `Bearer ${process.env.NEROX_API_KEY}` },
  });
  const data = await r.json();
  if (data.status === 'completed') { result = data.result; break; }
  if (data.status === 'failed') throw new Error(data.error);
  await new Promise(resolve => setTimeout(resolve, 2000));  // poll every 2s
}
console.log(result.solution, result.objective);

Full API reference

See the API Reference for all endpoints, request/response schemas, rate limits, and error codes. An OpenAPI 3.0 specification is available at https://driftrail.com/nerox/api/openapi.json.