Allomancy

Object reference

The request bodies, response bodies, shared types, and enum values used across the API.

This page is the canonical schema dictionary for the API. Endpoint pages link here for the full shape of each object.

Conventions

  • Field names are camelCase on the wire. The tables below use that casing.
  • Enums serialize as integers, not strings. A field typed as an enum comes back as a number; each enum's values are listed under Enums. This is the authoritative statement of that rule for the whole REST reference.
  • Money fields are Linden Dollar (L$) amounts expressed as integers.
  • UUIDs are Second Life UUIDs, sent as their string GUID form (for example a1b2c3d4-e5f6-4789-9abc-def012345678).
  • Dates are ISO 8601 timestamps in UTC (for example 2026-04-27T15:42:00Z).

Enums

DiscountType

The type field of a Discount.

ValueName
0Percent
1Flat
2Override

CouponApplyScope

The scope field of an ApplyCouponRequest and a RevokeCouponRequest. The matching AppliedCouponResponse returns the scope as a string ("store" or "product") rather than the integer.

ValueName
0store-wide
1product

VendorType

The type field of a VendorResponse and an UpdateVendorRequest.

ValueName
0Default
1MultiMenuVendor
2Multivendor
4GachaVendor

ClickAction

The clickAction field of a VendorResponse and an UpdateVendorRequest. It sets the object's click action inworld.

ValueName
0Touch
1Sit
2Buy
3Pay
4Open
5Play
6OpenMedia
7Zoom
8Disabled
9Ignore

Shared types

Permissions

The Second Life permission flags on a product.

FieldTypeNotes
copybooleanCopy permission.
modifybooleanModify permission.
transferbooleanTransfer permission.

Discount

A discount attached to a product.

FieldTypeNotes
valueintegerThe discount amount. Its meaning depends on type.
typeintegerA DiscountType value (0, 1, or 2).
startDatestringWhen the discount starts (UTC).
endDatestringWhen the discount ends (UTC).
{
  "value": 10,
  "type": 0,
  "startDate": "2026-04-01T00:00:00Z",
  "endDate": "2026-05-01T00:00:00Z"
}

PurchaseBonus

The store's purchase-bonus configuration, returned on StoreResponse.

FieldTypeNotes
baseBonusintegerBase bonus percentage (0 to 100).
groupBonusintegerBonus percentage for residents in the store group (0 to 100).
creditExpiryDaysinteger or nullHow long bonus credit lasts after a customer earns it, in days (1 to 3650). One expiry covers both bonus percentages; null when bonus credit never expires.

Profit share (request)

The shape of each entry in a ProductUpsertRequest's profitShares array.

FieldTypeNotes
usernamestringThe recipient's Second Life username. Accepted but not required; the share is matched on userUuid.
userUuidstring (UUID)The recipient's Second Life UUID. This is the field the share is applied by.
percentintegerThe recipient's share percentage.

Profit share (response)

The shape of each entry in a ProductResponse's profitShares array.

FieldTypeNotes
userUuidstring (UUID)The recipient's Second Life UUID.
percentintegerThe recipient's share percentage.

Response bodies

ProductResponse

FieldTypeNotes
idstring (UUID)The product's UUID.
namestringThe product name.
priceinteger or nullThe listed price in L$.
activePriceinteger or nullThe price after any active discount, in L$.
imagestring (UUID) or nullThe product image texture UUID.
bloggablebooleanWhether bloggers can retrieve the product.
activebooleanWhether the product is active.
blockCreditsbooleanWhether store credit is blocked for the product.
itemstring or nullThe inworld item name.
limitedbooleanWhether the product has a limited stock count.
availableAmountintegerThe remaining stock when limited is true.
permissionsPermissionsThe Second Life permission flags.
discountDiscount or nullThe product's discount, if any.
descriptionstring or nullThe product description.
demoIdstring (UUID) or nullThe linked demo product's UUID.
mpListinginteger (int64) or nullThe id of the associated Second Life Marketplace listing, or null if the product has no linked listing.
profitSharesProfit share (response)[]The product's profit-share split.

ProductDeliveryResponse

FieldTypeNotes
productIdstring (UUID)The delivered product's UUID.
recipientUuidstring (UUID)The recipient's Second Life UUID.
recipientUsernamestringThe recipient's Second Life username.
queuedbooleanWhether the delivery was queued. Delivery happens asynchronously.
messagestringThe message sent with the delivery.

VendorResponse

FieldTypeNotes
idstring (UUID)The vendor's UUID.
namestringThe vendor name.
productIdstring (UUID) or nullThe linked product's UUID, or null if none.
productNamestring or nullThe linked product's name, or null if none.
syncNamebooleanWhether the vendor name follows the linked product's name.
activebooleanWhether the vendor is active.
trackablebooleanWhether the vendor is findable with the unit locator HUD.
priceintegerThe vendor price in L$. -1 means the vendor inherits the linked product's price.
imageFaceinteger or nullThe object face the vendor image uses (0 to 7), or null.
categoryIdstring (UUID) or nullThe linked category's UUID for a multi vendor, or null.
gachaIdstring (UUID) or nullThe linked gacha's UUID for a gacha vendor, or null.
groupOnlybooleanWhether the vendor sells only to residents in the store group.
discountintegerThe vendor discount percentage (0 to 100).
groupDiscountintegerThe discount percentage for residents in the store group (0 to 100).
blockCreditsbooleanWhether store credit is blocked at this vendor.
clickActioninteger or nullA ClickAction value, or null to keep the object's current click action.
touchToAcquirebooleanFor free products, whether touching the vendor delivers the item instead of opening the menu.
typeintegerA VendorType value.
regionstringThe Second Life region the vendor last reported, or an empty string if unknown.
positionstringThe vendor's last reported position, or an empty string if unknown.

CustomerResponse

FieldTypeNotes
uuidstring (UUID)The customer's Second Life UUID.
usernamestringThe customer's Second Life username.
creditintegerStore credit balance in L$.
restrictedCreditintegerRestricted store credit in L$ (cannot be used for gifting).
discountintegerThe per-customer discount percentage.
newsSubscriberbooleanWhether the customer subscribes to the store news kiosk.
isBannedbooleanWhether the customer is banned from the store.

CustomerCreditResponse

FieldTypeNotes
uuidstring (UUID)The customer's Second Life UUID.
usernamestringThe customer's Second Life username.
creditintegerStore credit balance in L$.
restrictedCreditintegerRestricted store credit in L$.

CustomerSpendResponse

FieldTypeNotes
uuidstring (UUID)The customer's Second Life UUID.
usernamestringThe customer's Second Life username.
sumintegerLifetime spend in L$.
lastYearSumintegerSpend over the last year in L$.
totalOwnedintegerThe number of products the customer owns.

CustomerBanStateResponse

FieldTypeNotes
uuidstring (UUID)The customer's Second Life UUID.
usernamestringThe customer's Second Life username.
isBannedbooleanThe ban state after the action.

MintCustomerTokenResponse

FieldTypeNotes
tokenstringThe opaque customer access token. The customer page reads it from the #ct= fragment and sends it as the X-Customer-Token header.
urlstringA ready-formed link to the customer page: your store's configured customer page origin with the token in the #ct= fragment.
expiresAtstringWhen the token expires (UTC). The token is short-lived.

CategoryResponse

FieldTypeNotes
idstring (UUID)The category's UUID.
namestringThe category name.
productCountintegerThe number of products in the category.

CouponResponse

FieldTypeNotes
idstring (UUID)The coupon's UUID.
codestringThe coupon code.
activebooleanWhether the coupon is active.
bloggersSyncbooleanWhether the coupon is synced with the blogger program.
couponOwnerUuidstring (UUID)The owner's Second Life UUID.
couponOwnerUsernamestringThe owner's Second Life username.
discountintegerThe customer discount percentage.
ownerProfitintegerThe owner profit percentage.
usesPerCustomerintegerHow many times each customer may use the coupon.
expirationstringWhen the coupon expires (UTC).

GiftCardResponse

FieldTypeNotes
idstring (UUID)The gift card's UUID.
ownerUuidstring (UUID)The owner's Second Life UUID.
ownerUsernamestringThe owner's Second Life username.
creditintegerThe gift card balance in L$.
activebooleanWhether the gift card is active.
redeemedbooleanWhether the gift card has been redeemed.
transferbooleanWhether the gift card is transferable.
texturestring (UUID) or nullThe gift card texture UUID.
purchasedbooleanWhether the gift card was purchased (rather than granted).

StoreResponse

FieldTypeNotes
idstring (UUID)The store's UUID.
namestringThe store name.
logostring (UUID) or nullThe store logo texture UUID.
blogListedbooleanWhether the store is listed for bloggers.
applicationOpenbooleanWhether blogger applications are open.
bonusPurchaseBonusThe store's purchase-bonus configuration.
locationSlUrlstringA Second Life map URL for the store location, or an empty string when no location is set.
ownerUuidstring (UUID)The store owner's Second Life UUID.
ownerUsernamestringThe store owner's Second Life username.

LoyaltyTierResponse

FieldTypeNotes
spendingThresholdintegerThe L$ spend required to reach the tier.
discountPercentageintegerThe discount the tier grants.
isGroupOnlybooleanWhether the tier applies only to residents in the store group.
isLastYearOnlybooleanWhether the threshold is measured against the last year's spend rather than lifetime spend.

AppliedCouponResponse

FieldTypeNotes
couponIdstring (UUID)The applied coupon's UUID.
codestringThe coupon code.
discountintegerThe coupon's customer discount percentage.
scopestringThe application scope, store or product. The request sends scope as an integer; the response returns it as this string.
productIdstring (UUID) or nullThe product for a product-scope application; null for a store-wide application.
customerUuidstring (UUID)The customer the coupon was applied to.
customerUsernamestringThe Second Life username of the customer the coupon was applied to.
expiresAtstringWhen the application lapses (UTC).
replacedbooleanWhether this overwrote an existing application for the same customer at the same scope.

RevokedCouponResponse

FieldTypeNotes
revokedbooleanWhether a matching application was removed. false when none existed.

Request bodies

ProductUpsertRequest

The body for creating and updating a product.

FieldTypeNotes
namestringRequired. The product name.
priceintegerThe listed price in L$. Optional; defaults to 0.
imagestring (UUID) or nullThe product image texture UUID.
listedbooleanWhether the product is listed. Optional; defaults to false.
bloggablebooleanWhether bloggers can retrieve the product. Optional; defaults to false.
permissionsPermissions or nullThe Second Life permission flags. Optional; if omitted, defaults to { copy: true, modify: false, transfer: false }.
discountDiscount or nullThe product's discount.
availableAmountintegerThe stock count when limited is true. Optional; defaults to 0.
limitedbooleanWhether the product has a limited stock count. Optional; defaults to false.
itemstring or nullThe inworld item name.
blockCreditsbooleanWhether store credit is blocked for the product. Optional; defaults to false.
descriptionstring or nullThe product description.
profitSharesProfit share (request)[] or nullThe product's profit-share split.
demoIdstring (UUID) or nullThe linked demo product's UUID.
activebooleanWhether the product is active. Optional; defaults to true.

DeliverProductRequest

FieldTypeNotes
recipientIdentifierstringRequired. The recipient's Second Life UUID or username.
messagestring or nullAn optional message, up to 250 characters.

UpdateVendorRequest

The body for updating a vendor. It replaces the vendor's fields, so an omitted field is set to its default rather than left at its previous value.

FieldTypeNotes
namestringThe vendor name, at most 63 characters. Applied unless syncName is true and type is Default or GachaVendor; for those two types the name follows the linked product or gacha and this value is ignored. Every other type uses the value you send.
productIdstring (UUID) or nullThe product to link, or null for none. Must be a product in the store when changed.
syncNamebooleanWhether the vendor name follows the linked product's name. Optional; defaults to false. Governs whether name is applied.
activebooleanWhether the vendor is active. Optional; defaults to false.
trackablebooleanWhether the vendor is findable with the unit locator HUD. Optional; defaults to false.
priceinteger or nullThe vendor price in L$. Optional; omit or send null to inherit the linked product's price (stored as -1). A sent value must be -1 (inherit) or 0 or greater.
imageFaceinteger or nullThe object face for the vendor image. Optional; must be 0 to 7 when sent.
categoryIdstring (UUID) or nullThe category to link for a multi vendor. Optional in general, but required when type is 1 (MultiMenuVendor). Must be a category in the store.
gachaIdstring (UUID) or nullThe gacha to link for a gacha vendor. Optional in general, but required when type is 4 (GachaVendor). Must be a gacha in the store.
groupOnlybooleanWhether the vendor sells only to residents in the store group. Optional; defaults to false.
discountintegerThe vendor discount percentage. Optional; defaults to 0; must be 0 to 100.
groupDiscountintegerThe store-group discount percentage. Optional; defaults to 0; must be 0 to 100 and at least discount.
blockCreditsbooleanWhether store credit is blocked at this vendor. Optional; defaults to false.
clickActioninteger or nullA ClickAction value, or null to keep the object's current click action. Optional.
touchToAcquirebooleanFor free products, whether touching the vendor delivers the item. Optional; defaults to false.
typeintegerA VendorType value. Optional; defaults to 0 (Default). Values 1 and 4 require categoryId and gachaId respectively.

UpdateCustomerRequest

FieldTypeNotes
discountintegerThe per-customer discount percentage (0 to 100). Optional; defaults to 0.
newsSubscriberbooleanWhether the customer subscribes to the store news kiosk. Optional; defaults to false.

SetCustomerCreditRequest

FieldTypeNotes
creditintegerThe new credit balance in L$ (0 or greater). Optional; defaults to 0.
expiresAtstring or nullOptional ISO 8601 datetime. When set with a positive credit, the whole new balance is placed in one lot that expires at this time. Must be in the future; a past value is rejected with 400. Omit for a balance that does not expire.

IncrementCustomerCreditRequest

FieldTypeNotes
deltaintegerRequired; must be non-zero. The change to apply, in L$. Positive adds credit, negative removes it.
expiresAtstring or nullOptional ISO 8601 datetime. When set with a positive delta, the added credit forms one lot that expires at this time. Cannot be combined with a negative delta, which returns 400. Omit for credit that does not expire.

GrantGiftCardRequest

FieldTypeNotes
creditintegerRequired; 1 or greater. The gift card balance in L$.
texturestring (UUID) or nullThe gift card texture UUID.
transferbooleanWhether the gift card is transferable. Optional; defaults to false.

BanCustomerRequest

The body is optional on the ban action.

FieldTypeNotes
reasonstring or nullAn optional ban reason, up to 500 characters.

MintCustomerTokenRequest

FieldTypeNotes
customerIdentifierstringRequired. The customer's Second Life username or avatar UUID, resolved server-side.
collectiveIdstring (UUID) or nullOptional. When set, mints a token scoped to a collective instead of the store; only the collective's owner store can mint this way, and only for a customer of the authenticated store. Omit for a store-scoped token.

CreateCategoryRequest

FieldTypeNotes
namestringRequired. The category name, 1 to 100 characters.

UpdateCategoryRequest

FieldTypeNotes
namestringRequired. The category name, 1 to 100 characters.

CreateCouponRequest

FieldTypeNotes
codestringRequired. The coupon code.
discountintegerThe customer discount percentage. Optional; defaults to 0.
ownerProfitintegerThe owner profit percentage. Optional; defaults to 0.
ownerIdentifierstringRequired. The owner's Second Life UUID or username; it must resolve to an avatar.
activebooleanWhether the coupon is active. Optional; defaults to true.
bloggersSyncbooleanWhether the coupon is synced with the blogger program. Optional; defaults to false.

UpdateCouponRequest

The owner cannot be changed on update; it stays as set at creation.

FieldTypeNotes
codestringRequired. The coupon code.
discountintegerThe customer discount percentage. Optional; defaults to 0.
ownerProfitintegerThe owner profit percentage. Optional; defaults to 0.
activebooleanWhether the coupon is active. Optional; defaults to true.
bloggersSyncbooleanWhether the coupon is synced with the blogger program. Optional; defaults to false.

UpdateGiftCardRequest

FieldTypeNotes
creditintegerThe gift card balance in L$ (0 or greater). Optional; defaults to 0.
texturestring (UUID) or nullThe gift card texture UUID.
transferbooleanWhether the gift card is transferable. Optional; defaults to false.
activebooleanWhether the gift card is active. Optional; defaults to false.

ApplyCouponRequest

The body for Apply a coupon to a customer. Provide exactly one of code, couponOwnerUuid, or couponId to identify the coupon.

FieldTypeNotes
codestring or nullThe coupon code. One of the three coupon identifiers; provide exactly one.
couponOwnerUuidstring (UUID) or nullThe coupon owner's Second Life UUID. One of the three coupon identifiers; provide exactly one.
couponIdstring (UUID) or nullThe coupon's UUID. One of the three coupon identifiers; provide exactly one.
scopeintegerRequired. A CouponApplyScope value: 0 store-wide, 1 product.
productIdstring (UUID) or nullThe product to scope to. Required when scope is 1; must be omitted when scope is 0.
expiresInHoursinteger or nullHow long the application lasts before it lapses. Optional; defaults to 24; must be between 1 and 168.

RevokeCouponRequest

The body for Revoke a coupon from a customer. The same coupon-identifier and scope rules as ApplyCouponRequest, without expiresInHours.

FieldTypeNotes
codestring or nullThe coupon code. One of the three coupon identifiers; provide exactly one.
couponOwnerUuidstring (UUID) or nullThe coupon owner's Second Life UUID. One of the three coupon identifiers; provide exactly one.
couponIdstring (UUID) or nullThe coupon's UUID. One of the three coupon identifiers; provide exactly one.
scopeintegerRequired. A CouponApplyScope value: 0 store-wide, 1 product.
productIdstring (UUID) or nullThe product to scope to. Required when scope is 1; must be omitted when scope is 0.

On this page