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:
API Key (recommended for scripts)
curl -H "X-API-Key: neo_sk_your_key_here" \
https://api.neorun.dev/v1/podsCreate 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/podsBase URL
https://api.neorun.dev/v1Endpoints
Projects
List Projects
GET /projectsReturns 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}/cancelPods
List Pods
GET /podsReturns all running and stopped pods.
Stop Pod
POST /pods/{pod_id}/stopStart Pod
POST /pods/{pod_id}/startDelete Pod
DELETE /pods/{pod_id}Get Pod Logs
GET /pods/{pod_id}/logs?tail=100Health
Worker Health Check
GET /healthReturns worker status, Docker availability, GPU info, and queue depth.
Rate Limits
| Action | Limit |
|---|---|
| Deploy | 10/hour |
| Pod Stop/Start | 30/hour |
| API Key Create | 5/hour |
| General API | 100/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:
| Code | Meaning |
|---|---|
| 401 | Missing or invalid authentication |
| 403 | Insufficient permissions or quota exceeded |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
Webhooks (Coming Soon)
Subscribe to build and pod lifecycle events via webhooks.
Last updated on