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

# GET /outfits/{outfit_id} — Retrieve a full outfit object

> Retrieve a single outfit by ID including its full scene layout, clothing item placements, tags, seasonal metadata, and favorite status.

Call `GET /outfits/{outfit_id}` to fetch a single outfit in full detail. The response includes the complete canvas scene — every `CanvasPlacement` object with its coordinates, layer order, scale, and rotation — along with all metadata such as tags and seasons. You can retrieve any outfit you own, or any outfit that another user has made public.

## Endpoint

| Field         | Value                  |
| ------------- | ---------------------- |
| Method        | `GET`                  |
| Path          | `/outfits/{outfit_id}` |
| Auth required | Yes (Bearer token)     |
| Rate limit    | 5 per minute           |

## Path parameters

<ParamField path="outfit_id" type="string" required>
  The ID of the outfit to retrieve.
</ParamField>

## Response fields

**Status: 200 OK**

<ResponseField name="outfit" type="object" required>
  The requested outfit object.

  <Expandable title="Outfit object properties">
    <ResponseField name="outfit_id" type="string" required>
      Unique identifier for the outfit.
    </ResponseField>

    <ResponseField name="user_id" type="string" required>
      ID of the user who owns this outfit.
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Display name of the outfit.
    </ResponseField>

    <ResponseField name="description" type="string">
      Optional description of the outfit.
    </ResponseField>

    <ResponseField name="is_public" type="boolean" required>
      Whether the outfit is visible to other users.
    </ResponseField>

    <ResponseField name="is_favorite" type="boolean" required>
      Whether the outfit is marked as a favorite.
    </ResponseField>

    <ResponseField name="seasons" type="string[]">
      Seasons the outfit is suitable for. Possible values: `Spring`, `Summer`, `Autumn`, `Winter`.
    </ResponseField>

    <ResponseField name="tags" type="string[]">
      Style tags applied to the outfit. Possible values: `Casual`, `Formal`, `Sports`, `Vintage`, `Outdoor`, `Party`, `Work`, `Beach`.
    </ResponseField>

    <ResponseField name="scene" type="object[]">
      Array of `CanvasPlacement` objects describing the layout of the outfit.

      <Expandable title="CanvasPlacement properties">
        <ResponseField name="clothing_id" type="string" required>
          ID of the clothing item placed on the canvas.
        </ResponseField>

        <ResponseField name="x" type="number" required>
          Horizontal position of the item on the canvas.
        </ResponseField>

        <ResponseField name="y" type="number" required>
          Vertical position of the item on the canvas.
        </ResponseField>

        <ResponseField name="z" type="integer" required>
          Layer order. Higher values appear on top.
        </ResponseField>

        <ResponseField name="scale" type="number" required>
          Size multiplier relative to the item's default size.
        </ResponseField>

        <ResponseField name="rotation" type="number" required>
          Rotation of the item in degrees.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string" required>
      ISO 8601 timestamp of when the outfit was created.
    </ResponseField>

    <ResponseField name="updated_at" type="string" required>
      ISO 8601 timestamp of when the outfit was last updated.
    </ResponseField>
  </Expandable>
</ResponseField>

## Example

```bash cURL theme={null}
curl --request GET \
  --url https://api.drssed.com/outfits/otf_abc123 \
  --header 'Authorization: Bearer <token>'
```

```json Response theme={null}
{
  "outfit": {
    "outfit_id": "otf_abc123",
    "user_id": "usr_xyz789",
    "name": "Weekend Brunch",
    "description": "Relaxed but put-together.",
    "is_public": true,
    "is_favorite": false,
    "seasons": ["Spring", "Summer"],
    "tags": ["Casual"],
    "scene": [
      {
        "clothing_id": "clth_shirt_001",
        "x": 0.5,
        "y": 0.3,
        "z": 2,
        "scale": 1.0,
        "rotation": 0.0
      },
      {
        "clothing_id": "clth_pants_002",
        "x": 0.5,
        "y": 0.7,
        "z": 1,
        "scale": 1.0,
        "rotation": 0.0
      }
    ],
    "created_at": "2024-06-20T14:00:00+00:00",
    "updated_at": "2024-06-20T14:00:00+00:00"
  }
}
```
