Skip to content

Cloud API Reference

The OMAS Cloud API is an optional service for uploading and comparing metrics. The server-side implementation is planned for a future release.

INFO

The API endpoints are defined but not yet publicly deployed. This reference documents the planned interface.

Base URL

https://api.omas.dev

Override with the OMAS_API_URL environment variable.

Authentication

All authenticated endpoints require a Bearer token in the Authorization header:

Authorization: Bearer <token>

Tokens are obtained via the OAuth device flow (omas auth login).

Endpoints

POST /api/v1/auth/verify

Verify an OAuth token with the server.

Headers:

Authorization: Bearer <token>
Content-Type: application/json

Response:

json
{
  "valid": true,
  "username": "your-username",
  "provider": "github"
}

POST /api/v1/metrics/upload

Upload session metrics.

Headers:

Authorization: Bearer <token>
Content-Type: application/json
User-Agent: omas-cli/0.1.0

Request Body:

json
{
  "sessions": [
    {
      "session_id": "abc123-def456",
      "project_hash": "sha256:...",
      "timestamp": "2025-06-15T10:30:00Z",
      "thread_type": "L",
      "session_duration_minutes": 45.2,
      "total_tool_calls": 127,
      "total_human_messages": 3,
      "parallelism": {
        "max_concurrent_agents": 3,
        "total_sub_agents": 5,
        "peak_parallel_tools": 4,
        "p_thread_score": 4.0
      },
      "autonomy": {
        "longest_autonomous_stretch_minutes": 32.5,
        "max_tool_calls_between_human": 89,
        "session_duration_minutes": 45.2,
        "max_consecutive_assistant_turns": 12,
        "l_thread_score": 7.1
      },
      "density": {
        "tool_calls_per_minute": 2.81,
        "max_sub_agent_depth": 1,
        "total_tool_calls": 127,
        "tokens_per_minute": 1250.0,
        "b_thread_score": 5.0
      },
      "trust": {
        "tool_calls_per_human_message": 42.33,
        "assistant_per_human_ratio": 8.0,
        "ask_user_count": 1,
        "autonomous_tool_call_pct": 99.21,
        "z_thread_score": 7.4
      },
      "overall_score": 5.87
    }
  ]
}

Response:

json
{
  "accepted": 1,
  "duplicates": 0
}

GET /api/v1/metrics/me

Retrieve the authenticated user's uploaded metrics.

Headers:

Authorization: Bearer <token>

Response:

json
{
  "username": "your-username",
  "total_sessions": 42,
  "sessions": [...]
}

GET /api/v1/leaderboard (Future)

Global leaderboard comparing composite rank scores.

Privacy

All uploaded data follows strict privacy rules:

  • Project paths are hashed (SHA-256) before upload — no directory names are exposed
  • Session IDs are retained for deduplication only
  • No source code or file contents are ever transmitted
  • No conversation content is included in the payload
  • Only numeric scores, timestamps, and classification labels are sent

Error Handling

StatusMeaning
200Success
401Invalid or expired token
409Duplicate session (already uploaded)
422Invalid payload format
429Rate limited
500Server error

Retry Behavior

The CLI automatically queues failed uploads to ~/.omas/upload_queue.json and retries on subsequent omas upload calls (max 5 attempts per session).

Released under the MIT License.