---
title: "Composition workflows"
description: "List and retrieve SimReady Asset Composer workflows."
---

import { Aside } from '@astrojs/starlight/components';

Asset Composer and SimReady conversion are two linked resources:

| Resource | Owns | Read endpoint |
| --- | --- | --- |
| Composition | Intent, references, simulation brief, prototype, and automation progress | `GET /api/compositions/:id` |
| Conversion job | SimReady processing, validation report, USD/MJCF outputs, and simulations | `GET /api/conversions/:id` |

With `auto_submit=true`, poll the composition until its workflow completes. Its `conversion_job_id` then links to the conversion record and downloadable result. With `auto_submit=false`, the composition stops at `ready` until you call `POST /api/compositions/:id/submit`.

<Aside type="caution">
  Composition IDs and conversion-job IDs are not interchangeable. Use each ID with its own endpoint family.
</Aside>

## Retrieve a composition

```bash
curl https://api.rigyd.com/api/compositions/composition-id \
  -H "Authorization: Bearer rgyd_live_..."
```

Read `data.workflow.status`, `stage`, and `progress` while the composition runs. Terminal statuses are `ready`, `completed`, `failed`, and `cancelled`; `running` is non-terminal.

## List compositions

```bash
curl "https://api.rigyd.com/api/compositions?page=1&pageSize=25" \
  -H "Authorization: Bearer rgyd_live_..."
```

The endpoint returns your composition workflows newest first. It does not return conversion-only jobs. Use [`GET /api/conversions`](/jobs/list) for direct 3D conversions and the SimReady jobs created from submitted compositions.

For creation parameters and the full workflow response, see [SimReady Asset Composer](/compositions/generate).