API Reference

assets

6 endpoints

GET/api/v1/assets

List Installed Assets

List the current user's installed assets (the customization picker read path), optionally filtered to one surface. Excludes revoked rows.

Query parameters

asset_typeUserAssetType | null
default_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
total_items*integer

Total number of items available

total_pages*integer

Total number of pages available

current_page*integer

Current page number

items*UserAssetResponse[]

List of items on the current page

array items · UserAssetResponse

FieldTypeDescription
uuid*string
asset_type*string
source*string
uploaded_file_uuidstring | null
external_urlstring | null
urlstring | null

Resolved displayable URL (platform file resolved at read time, or the external URL). Null for assets with no media (e.g. GLBs).

transaction_idstring | null
metadataobject
created_at*string (date-time)
revoked_atstring (date-time) | null
401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X GET "https://api.davi.social/api/v1/assets" \
  -H "Authorization: Bearer <token>"
GET/api/v1/assets/template-backgrounds

List Template Backgrounds

Background provisions from a profile's template (the "From your template" section of the appearance picker). Defaults to the user's primary profile.

Query parameters

profile_uuidstring | null
default_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
total_items*integer

Total number of items available

total_pages*integer

Total number of pages available

current_page*integer

Current page number

items*TemplateBackground[]

List of items on the current page

array items · TemplateBackground

FieldTypeDescription
id*string
label*string
url*string

Background image URL

sizestring | null
positionstring | null
repeatstring | null
fallback_colorstring | null
401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X GET "https://api.davi.social/api/v1/assets/template-backgrounds" \
  -H "Authorization: Bearer <token>"
POST/api/v1/assets/install

Install Reward Assets

Install the assets carried by an earned reward into the user's inventory.

Idempotent and pack-aware: a reward with several assets installs them all.

Query parameters

default_backendstring

default: "primary"

Request body*application/json

FieldTypeDescription
transaction_id*string

TRS transaction id of the earned reward to install

Responses

200Successful Response

Array of UserAssetResponse

FieldTypeDescription
uuid*string
asset_type*string
source*string
uploaded_file_uuidstring | null
external_urlstring | null
urlstring | null

Resolved displayable URL (platform file resolved at read time, or the external URL). Null for assets with no media (e.g. GLBs).

transaction_idstring | null
metadataobject
created_at*string (date-time)
revoked_atstring (date-time) | null
400Invalid request
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X POST "https://api.davi.social/api/v1/assets/install" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ /* request body */ }'
POST/api/v1/assets/{user_asset_uuid}/equip

Equip Asset

Equip an installed asset onto one of the user's profiles.

slot says which part of the profile it lands on. Character parts have no image url of their own — the slot they occupy is a property of the asset — so the response carries the slot name in place of one.

Path parameters

user_asset_uuid*string

Query parameters

default_backendstring

default: "primary"

Request body*application/json

FieldTypeDescription
profile_uuid*string

The profile to equip the asset onto

slot*enum

Which part of the profile the asset is equipped to

Responses

200Successful Response
FieldTypeDescription
profile_uuid*string
asset_uuid*string
slot*string

Where the asset was equipped. For a character part this is the slot the asset itself declares, which the caller does not choose.

image_urlstring | null

The equipped image, where the slot renders one.

400Invalid request
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X POST "https://api.davi.social/api/v1/assets/{user_asset_uuid}/equip" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ /* request body */ }'
DELETE/api/v1/assets/equipped/character/{slot}

Unequip Character Slot

Clear one slot in a profile's character config.

slot is a character slot such as hair, which is a finer address than the character value POST .../equip takes: equipping reads the slot off the asset, clearing one has to be told which.

Path parameters

slot*string

Query parameters

profile_uuid*string
default_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
message*string

Success or status message

400Invalid request
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X DELETE "https://api.davi.social/api/v1/assets/equipped/character/{slot}" \
  -H "Authorization: Bearer <token>"
DELETE/api/v1/assets/install/{transaction_id}

Uninstall Reward Assets

Uninstall a reward's assets from the inventory. Lossless — re-installable from the reward while it stands.

Path parameters

transaction_id*string

Query parameters

default_backendstring

default: "primary"

Responses

200Successful Response
FieldTypeDescription
message*string

Success or status message

400Invalid request
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

401Authentication failed
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

403Insufficient permissions
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

404Resource not found
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

422Validation error
FieldTypeDescription
errors*object

Map of field names to error messages. Use '_root' for form-level errors.

message*string

Human-readable error summary

codestring | null

Machine-readable error code

Example request

curl -X DELETE "https://api.davi.social/api/v1/assets/install/{transaction_id}" \
  -H "Authorization: Bearer <token>"