> ## Documentation Index
> Fetch the complete documentation index at: https://docs.viggle.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Motions

> Retrieve every Motion owned by the current account.

`GET /v1/motions` returns all Motion resources for the authenticated account.

## Request parameters

This endpoint has no path, query, or request-body parameters.

## Response parameters

Returns `200 OK` with an object containing `data`.

| Field                 | Type            | Always present | Description                                        |
| --------------------- | --------------- | :------------: | -------------------------------------------------- |
| `data`                | Motion\[]       |       Yes      | Every Motion owned by the authenticated account.   |
| `data[].id`           | string          |       Yes      | Public Motion ID beginning with `mot_`.            |
| `data[].status`       | string          |       Yes      | `queued`, `processing`, `ready`, or `failed`.      |
| `data[].name`         | string          |       Yes      | Motion label, or an empty string.                  |
| `data[].progress`     | integer or null |       Yes      | Progress from 0 to 100 when available.             |
| `data[].capabilities` | string\[]       |       Yes      | Available capabilities; `video_render` when ready. |
| `data[].created_at`   | string or null  |       Yes      | ISO 8601 creation timestamp.                       |
| `data[].completed_at` | string or null  |       Yes      | ISO 8601 completion timestamp.                     |
| `data[].error`        | object or null  |       Yes      | Failure details when the Motion failed.            |

```json theme={null}
{"data":[{"id":"mot_456def","status":"ready","name":"Dance loop","progress":100,"capabilities":["video_render"],"created_at":"2026-07-21T10:00:00Z","completed_at":"2026-07-21T10:00:20Z","error":null}]}
```

## Examples

<CodeGroup>
  ```go Go theme={null}
  req, _ := http.NewRequest("GET", "https://apis.viggle.ai/v1/motions", nil); req.Header.Set("Authorization", "Bearer "+os.Getenv("VIGGLE_API_KEY"))
  resp, err := http.DefaultClient.Do(req); if err != nil { panic(err) }; defer resp.Body.Close()
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://apis.viggle.ai/v1/motions", {headers:{Authorization:`Bearer ${process.env.VIGGLE_API_KEY}`}}); const result = await response.json();
  ```

  ```python Python theme={null}
  import os, requests
  response = requests.get("https://apis.viggle.ai/v1/motions", headers={"Authorization":f"Bearer {os.environ['VIGGLE_API_KEY']}"}); response.raise_for_status(); result = response.json()
  ```

  ```bash cURL theme={null}
  curl "https://apis.viggle.ai/v1/motions" -H "Authorization: Bearer $VIGGLE_API_KEY"
  ```
</CodeGroup>


## OpenAPI

````yaml GET /v1/motions
openapi: 3.0.3
info:
  title: Viggle API
  description: Generate AI-powered character animation videos
  version: 2.0.0
  contact:
    name: Viggle Support
    url: https://viggle.ai
servers:
  - url: https://apis.viggle.ai
    description: Production server
security: []
paths:
  /v1/motions:
    get:
      summary: List Motions
      operationId: v1ListMotions
      responses:
        '200':
          description: Motions

````