REST /api/v1/animations 5 endpoints
GET /api/v1/animations/api/v1/animations

List all registered animation controllers and their current state

Public

Response Example

{
  "data": [
    {
      "name": "slide_entry",
      "status": "idle",
      "duration_ms": 600,
      "current_value": 0,
      "is_repeating": false
    },
    {
      "name": "confetti_burst",
      "status": "playing",
      "duration_ms": 1200,
      "current_value": 0.45,
      "is_repeating": false
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 5
  }
}
GET /api/v1/animations/api/v1/animations/:name

Get state of a specific animation controller

Public

Response Example

{
  "name": "slide_entry",
  "status": "idle",
  "duration_ms": 600,
  "current_value": 0,
  "is_repeating": false,
  "curve": "easeInOut",
  "lower_bound": 0,
  "upper_bound": 1
}
POST /api/v1/animations/api/v1/animations

Register a new animation controller

Public

Request Example

{
  "name": "milestone_unlock",
  "duration_ms": 800,
  "curve": "elasticOut",
  "is_repeating": false,
  "lower_bound": 0,
  "upper_bound": 1
}

Response Example

{
  "name": "milestone_unlock",
  "status": "idle",
  "duration_ms": 800,
  "current_value": 0,
  "is_repeating": false,
  "curve": "elasticOut",
  "lower_bound": 0,
  "upper_bound": 1
}
PUT /api/v1/animations/api/v1/animations/:name

Update animation controller configuration or trigger a state change (play/pause/reset)

Public

Request Example

{
  "action": "play",
  "duration_ms": 800
}

Response Example

{
  "name": "slide_entry",
  "status": "playing",
  "duration_ms": 800,
  "current_value": 0,
  "is_repeating": false
}
DELETE /api/v1/animations/api/v1/animations/:name

Unregister and dispose an animation controller

Public

Response Example

{
  "deleted": true,
  "name": "slide_entry"
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}