Submit jobs through a unified API. ML predictions, HPC simulations, lab bookings, and more — all with real-time status updates and priority queuing.
Every compute task on MARC27 is a job. Submit one with a type, input, and optional priority.
POST /api/v1/jobs
{
"type": "ml_predict",
"project_id": "...",
"priority": 10,
"input": {
"model": "megnet-formation-energy",
"structure": "BaTiO3"
}
}# Or with the Python SDK
job = client.jobs.create(
type="ml_predict",
model="megnet-formation-energy",
input={"structure": "BaTiO3"}
)
print(job.result)
# {"energy": -3.42, "unit": "eV/atom", "confidence": 0.97}# Check status
GET /api/v1/jobs/{id}
# Cancel a pending job
POST /api/v1/jobs/{id}/cancelSubscribe to job events via Server-Sent Events for real-time status updates, progress, and results.
GET /api/v1/jobs/{id}/events
Accept: text/event-stream
event: status
data: {"status": "running"}
event: progress
data: {"percent": 45, "message": "Processing structure..."}
event: completed
data: {"output": {"energy": -3.42, "unit": "eV/atom"}}Each job type is handled by a specialized executor. Use the type field when submitting a job.
ml_predictML Predict
Run inference on pre-trained materials science models — formation energy, band gap, stability, molecular dynamics.
plugin_execPlugin Exec
Execute containerized plugins in a sandboxed environment with configurable resource limits.
hpc_submitHPC Submit
Submit jobs to registered HPC clusters (SLURM, PBS). Fire-and-return with status polling.
simulationSimulation
Run DFT, molecular dynamics, or other simulations. Small runs execute locally; large runs delegate to HPC.
lab_bookingLab Booking
Book time on autonomous robot labs and test facilities. Results delivered via webhook callback.
llm_proxyLLM Proxy
Route LLM requests through MARC27 with managed API keys. Supports OpenAI and Anthropic with streaming.
dataset_processDataset Process
Process datasets — format conversion, filtering, featurization, and validation.
mcp_hostMCP Host
Deploy and manage MCP servers with health monitoring, auto-restart, and scaling.
Jobs are processed in priority order (higher number = higher priority, FIFO within same priority). Some executors create child jobs automatically — for example, a simulation may spawn an HPC job for large workloads.
# List child jobs
GET /api/v1/jobs/{parent_id}/children