Skip to Content
API Reference

API Reference

NeoRun provides a REST API for programmatic access to deployments, pods, and project management.

Authentication

All API requests require authentication via one of:

curl -H "X-API-Key: neo_sk_your_key_here" \ https://api.neorun.dev/v1/pods

Create API keys in Settings → API Keys. Keys support expiration (30d, 90d, 1y, or never).

JWT Token (for frontend/mobile apps)

curl -H "Authorization: Bearer <supabase_jwt>" \ https://api.neorun.dev/v1/pods

Base URL

https://api.neorun.dev/v1

Endpoints

Projects

List Projects

GET /projects

Returns all projects owned by the authenticated user.

Create Project

POST /projects Content-Type: application/json { "repo_url": "https://github.com/user/repo", "name": "My Project" }

Jobs (Deployments)

Get Job Status

GET /jobs/{job_id}

Returns current job status, build steps, and timing information.

Create Build Job

POST /jobs Content-Type: application/json { "project_id": "uuid", "gpu_config": { "enabled": true, "min_vram_gb": 8 } }

Cancel Job

POST /jobs/{job_id}/cancel

Pods

List Pods

GET /pods

Returns all running and stopped pods.

Stop Pod

POST /pods/{pod_id}/stop

Start Pod

POST /pods/{pod_id}/start

Delete Pod

DELETE /pods/{pod_id}

Get Pod Logs

GET /pods/{pod_id}/logs?tail=100

Health

Worker Health Check

GET /health

Returns worker status, Docker availability, GPU info, and queue depth.

Rate Limits

ActionLimit
Deploy10/hour
Pod Stop/Start30/hour
API Key Create5/hour
General API100/minute

Rate limits are per-user and use a sliding window algorithm.

Error Responses

All errors follow this format:

{ "error": "Human-readable error message", "code": "ERROR_CODE", "status": 400 }

Common status codes:

CodeMeaning
401Missing or invalid authentication
403Insufficient permissions or quota exceeded
404Resource not found
429Rate limit exceeded
500Internal server error

Webhooks (Coming Soon)

Subscribe to build and pod lifecycle events via webhooks.

Last updated on