Skip to main content

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.

This guide covers everything you need to work with outfits in the Drssed API. An outfit groups clothing items together and arranges them in a visual scene — a canvas where each item has a position, scale, and rotation. You will learn how to create an outfit with a scene, list and retrieve outfits, update outfit details, and delete outfits you no longer need.
The scene array defines how clothing items are visually arranged in the outfit collage. Each entry is a CanvasPlacement object that references a clothing item by its clothing_id and specifies its position (x, y), depth (z), scale, and rotation.
1

Create an outfit

Call POST /users/me/outfits to create a new outfit. At minimum you must provide a name. You can optionally include a description, a scene layout, seasons, tags, and visibility settings.Body fields:
FieldTypeRequiredDescription
namestringYesDisplay name for the outfit
descriptionstringNoOptional freeform description
scenearray of placementsNoVisual layout of clothing items (see below)
seasonsarray of stringsNoSpring, Summer, Autumn, Winter
tagsarray of stringsNoCasual, Formal, Sports, Vintage, Outdoor, Party, Work, Beach
is_publicbooleanNoWhether other users can see this outfit (default: false)
is_favoritebooleanNoMark as a favorite (default: false)
Each object in the scene array must include:
FieldTypeDescription
clothing_idstringID of an existing clothing item
xfloatHorizontal position on the canvas
yfloatVertical position on the canvas
zintStacking order (higher = in front)
scalefloatSize multiplier (1.0 = original size)
rotationfloatRotation in degrees
curl -X POST https://api.drssed.com/users/me/outfits \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Weekend casual",
    "description": "Relaxed look for a weekend outing",
    "seasons": ["Spring", "Autumn"],
    "tags": ["Casual"],
    "is_public": false,
    "is_favorite": true,
    "scene": [
      {
        "clothing_id": "clo_abc001",
        "x": 120.0,
        "y": 80.0,
        "z": 1,
        "scale": 1.0,
        "rotation": 0.0
      },
      {
        "clothing_id": "clo_abc002",
        "x": 120.0,
        "y": 260.0,
        "z": 0,
        "scale": 1.0,
        "rotation": 0.0
      }
    ]
  }'
A successful response returns 201 Created with the new outfit:
{
  "outfit": {
    "outfit_id": "out_xyz001",
    "user_id": "usr_000111",
    "name": "Weekend casual",
    "description": "Relaxed look for a weekend outing",
    "is_public": false,
    "is_favorite": true,
    "seasons": ["Spring", "Autumn"],
    "tags": ["Casual"],
    "scene": [
      {
        "clothing_id": "clo_abc001",
        "x": 120.0,
        "y": 80.0,
        "z": 1,
        "scale": 1.0,
        "rotation": 0.0
      },
      {
        "clothing_id": "clo_abc002",
        "x": 120.0,
        "y": 260.0,
        "z": 0,
        "scale": 1.0,
        "rotation": 0.0
      }
    ],
    "created_at": "2024-06-01T11:00:00+00:00",
    "updated_at": "2024-06-01T11:00:00+00:00"
  }
}
2

List outfits

You have two options for listing outfits depending on whose wardrobe you are viewing.
GET /users/me/outfits returns all of your outfits, including private ones. GET /users/{user_id}/outfits returns only the public outfits for a given user. Use the /me route when building your own wardrobe view; use the /{user_id} route when displaying another user’s public outfits.
Both routes accept limit (default 50) and offset (default 0) for pagination.
curl "https://api.drssed.com/users/me/outfits?limit=20&offset=0" \
  -H "Authorization: Bearer {token}"
The response includes the outfit list alongside pagination metadata:
{
  "limit": 20,
  "offset": 0,
  "total": 5,
  "items": [
    {
      "outfit_id": "out_xyz001",
      "name": "Weekend casual",
      "is_public": false,
      "is_favorite": true,
      "seasons": ["Spring", "Autumn"],
      "tags": ["Casual"],
      "created_at": "2024-06-01T11:00:00+00:00",
      "updated_at": "2024-06-01T11:00:00+00:00"
    }
  ]
}
3

Get a specific outfit

Retrieve the full details of a single outfit — including its complete scene array — with GET /outfits/{outfit_id}.
curl https://api.drssed.com/outfits/out_xyz001 \
  -H "Authorization: Bearer {token}"
{
  "outfit": {
    "outfit_id": "out_xyz001",
    "user_id": "usr_000111",
    "name": "Weekend casual",
    "description": "Relaxed look for a weekend outing",
    "is_public": false,
    "is_favorite": true,
    "seasons": ["Spring", "Autumn"],
    "tags": ["Casual"],
    "scene": [
      {
        "clothing_id": "clo_abc001",
        "x": 120.0,
        "y": 80.0,
        "z": 1,
        "scale": 1.0,
        "rotation": 0.0
      },
      {
        "clothing_id": "clo_abc002",
        "x": 120.0,
        "y": 260.0,
        "z": 0,
        "scale": 1.0,
        "rotation": 0.0
      }
    ],
    "created_at": "2024-06-01T11:00:00+00:00",
    "updated_at": "2024-06-01T11:00:00+00:00"
  }
}
4

Update an outfit

Use PATCH /outfits/{outfit_id} to update any subset of fields. All fields are optional — only what you include is changed. To rearrange items in the scene, pass the full updated scene array.Updatable fields: name, is_favorite, is_public, seasons, tags, scene
curl -X PATCH https://api.drssed.com/outfits/out_xyz001 \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Weekend casual (updated)",
    "is_public": true,
    "tags": ["Casual", "Outdoor"]
  }'
A successful update returns 200 OK with the updated outfit object.
5

Delete an outfit

Remove an outfit with DELETE /outfits/{outfit_id}. Like clothing items, outfits are soft-deleted — they disappear from your list immediately but are not permanently erased right away.
curl -X DELETE https://api.drssed.com/outfits/out_xyz001 \
  -H "Authorization: Bearer {token}"
A successful deletion returns 204 No Content with an empty body.

Rate limits

Most outfit endpoints are limited to 5 requests per minute. The PATCH /outfits/{outfit_id} endpoint has a stricter limit of 3 requests per minute.