Skip to main content

REST API Reference

Use the YaliCode API to run code, manage projects, and integrate with your tools.

Authentication

Authenticate API requests with an API key. Generate one in Settings > API Keys. Pass it in the Authorization header:

Authorization: Bearer yc_live_xxxxxxxxxxxx

Execute code

POST /api/execute

{
  "language": "python",
  "code": "print('hello')",
  "stdin": "",
  "timeout": 10,
  "version": "3.12"
}

Response:
{
  "stdout": "hello\n",
  "stderr": "",
  "exit_code": 0,
  "execution_time_ms": 123,
  "memory_used": "12MB"
}

List projects

GET /api/projects

Response:
[
  {
    "id": "uuid",
    "title": "My Project",
    "slug": "my-project",
    "language": "python",
    "visibility": "public",
    "created_at": "2026-01-01T00:00:00Z"
  }
]

Get project

GET /api/projects/:id

Response includes project metadata and all files.

Create project

POST /api/projects

{
  "title": "New Project",
  "language": "javascript",
  "visibility": "public"
}

Save files

PUT /api/projects/:id/files

{
  "files": [
    { "path": "main.py", "content": "print('hello')" }
  ]
}

Rate limits

API requests are rate-limited based on your plan. Free: 20 executions/day. Starter: 100/day. Pro: 500/day. Business: 2000/day. Rate limit headers are included in every response.