Open the panel

Groups of Variations PRO ​

A group holds the variations of one product, like the colors of a dress, and shares prices between them. See Groups to learn how they work.

List groups of variations ​

GET/groups
Scope products:readLimit read (600 per minute)

Query

NameTypeRequiredDescription
cursorstringNoThe next_cursor of the previous page.
limitintegerNoPage size (default 50, max 200).

Example

bash
curl "https://api.fastyvendor.com/api/v1/groups?limit=2" \
  -H "Authorization: Bearer $FASTY_KEY"
js
const res = await fetch('https://api.fastyvendor.com/api/v1/groups?limit=2', {
  headers: {
    Authorization: `Bearer ${process.env.FASTY_KEY}`,
  },
})
const data = await res.json()
python
import os, requests

res = requests.get(
    "https://api.fastyvendor.com/api/v1/groups?limit=2",
    headers={"Authorization": f"Bearer {os.environ['FASTY_KEY']}"},
)
data = res.json()
lsl
llHTTPRequest(API + "/groups?limit=2",
    [HTTP_CUSTOM_HEADER, "Authorization", "Bearer " + KEY,
     HTTP_BODY_MAXLENGTH, 16384],
    "");

Response: 200 OK

json
{
  "items": [
    {
      "id": "grp_aqbf68b6nf4z9h",
      "name": "Velvet Dress",
      "category": "other",
      "image": "551b0ce4-dd92-22ca-5a7c-f196fadb1f73",
      "image_url": "https://picture-service.secondlife.com/551b0ce4-dd92-22ca-5a7c-f196fadb1f73/256x192.jpg",
      "price_item": 100,
      "price_fatpack": 0,
      "price_demo": 0,
      "active": true,
      "points": true,
      "group_discount": 0,
      "stock": null,
      "products": 0,
      "created_at": "2026-10-05T17:19:58.044Z"
    }
  ],
  "next_cursor": "g:1791220797919536~grp_pfxh2z9k1gfhhj"
}

Get a group of variations ​

GET/groups/{id}
Scope products:readLimit read (600 per minute)

Path

NameTypeRequiredDescription
idstringYesThe id.

Example

bash
curl "https://api.fastyvendor.com/api/v1/groups/grp_aqbf68b6nf4z9h" \
  -H "Authorization: Bearer $FASTY_KEY"
js
const res = await fetch('https://api.fastyvendor.com/api/v1/groups/grp_aqbf68b6nf4z9h', {
  headers: {
    Authorization: `Bearer ${process.env.FASTY_KEY}`,
  },
})
const data = await res.json()
python
import os, requests

res = requests.get(
    "https://api.fastyvendor.com/api/v1/groups/grp_aqbf68b6nf4z9h",
    headers={"Authorization": f"Bearer {os.environ['FASTY_KEY']}"},
)
data = res.json()
lsl
llHTTPRequest(API + "/groups/grp_aqbf68b6nf4z9h",
    [HTTP_CUSTOM_HEADER, "Authorization", "Bearer " + KEY,
     HTTP_BODY_MAXLENGTH, 16384],
    "");

Response: 200 OK

json
{
  "id": "grp_aqbf68b6nf4z9h",
  "name": "Velvet Dress",
  "category": "other",
  "image": "551b0ce4-dd92-22ca-5a7c-f196fadb1f73",
  "image_url": "https://picture-service.secondlife.com/551b0ce4-dd92-22ca-5a7c-f196fadb1f73/256x192.jpg",
  "price_item": 100,
  "price_fatpack": 0,
  "price_demo": 0,
  "active": true,
  "points": true,
  "group_discount": 0,
  "stock": null,
  "products": 0,
  "created_at": "2026-10-05T17:19:58.044Z",
  "members": [
    {
      "id": "prd_s1da1m5rrhwwcq",
      "name": "Velvet Dress - Red",
      "role": "item",
      "variant": "Red",
      "price": 100,
      "active": true
    }
  ]
}

Change a group of variations ​

PATCH/groups/{id}
Scope products:writeLimit change (120 per minute)

Prices apply to every variation that is not custom.

Path

NameTypeRequiredDescription
idstringYesThe id.

Body

NameTypeRequiredDescription
namestringNoThe name. Up to 63 characters.
categorystringNoMarketplace-style category. One of apparel, gacha, home, accessories, avatar, builder, celebrations, animations, art, fun, buildings, animals, breedables, vehicles, furry, gadgets, avatars, scripts, business, weapons, audio, animesh, other.
price_itemintegerNoPrice of each variation, in L$. From 0 to 1,000,000.
price_fatpackintegerNoPrice of the fatpack, in L$. From 0 to 1,000,000.
price_demointegerNoPrice of the demo, in L$. From 0 to 1,000,000.
activebooleanNofalse = paused.
pointsbooleanNoBuying it gives loyalty points.
imagestringNoTexture UUID, or "" for none.
group_discountintegerNoSL group discount in %. From 0 to 90.
stockobjectNoLimited quantity; null = unlimited.
stock.modestring or nullNonull = unlimited One of each, shared.
stock.totalintegerNoHow many exist in total. From 1 to 1,000,000.
stock.showbooleanNoThe vendor shows how many are left.

Example

bash
curl -X PATCH "https://api.fastyvendor.com/api/v1/groups/grp_aqbf68b6nf4z9h" \
  -H "Authorization: Bearer $FASTY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"points":true}'
js
const res = await fetch('https://api.fastyvendor.com/api/v1/groups/grp_aqbf68b6nf4z9h', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.FASTY_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"points":true}),
})
const data = await res.json()
python
import os, requests

res = requests.patch(
    "https://api.fastyvendor.com/api/v1/groups/grp_aqbf68b6nf4z9h",
    headers={"Authorization": f"Bearer {os.environ['FASTY_KEY']}"},
    json={"points":True},
)
data = res.json()
lsl
llHTTPRequest(API + "/groups/grp_aqbf68b6nf4z9h",
    [HTTP_METHOD, "PATCH",
     HTTP_MIMETYPE, "application/json",
     HTTP_CUSTOM_HEADER, "Authorization", "Bearer " + KEY],
    "{\"points\":true}");

Response: 200 OK

json
{
  "id": "grp_aqbf68b6nf4z9h",
  "name": "Velvet Dress",
  "category": "other",
  "image": "551b0ce4-dd92-22ca-5a7c-f196fadb1f73",
  "image_url": "https://picture-service.secondlife.com/551b0ce4-dd92-22ca-5a7c-f196fadb1f73/256x192.jpg",
  "price_item": 100,
  "price_fatpack": 0,
  "price_demo": 0,
  "active": true,
  "points": true,
  "group_discount": 0,
  "stock": null,
  "products": 0,
  "created_at": "2026-10-05T17:19:58.044Z",
  "members": [
    {
      "id": "prd_s1da1m5rrhwwcq",
      "name": "Velvet Dress",
      "role": "item",
      "variant": "",
      "price": 100,
      "active": true
    }
  ]
}

The group object ​

FieldTypeDescription
idstringThe id.
namestringThe name.
categorystringMarketplace-style category. One of apparel, gacha, home, accessories, avatar, builder, celebrations, animations, art, fun, buildings, animals, breedables, vehicles, furry, gadgets, avatars, scripts, business, weapons, audio, animesh, other.
imagestringTexture UUID, or "" for none.
image_urlstring or nullPicture address, or null.
price_itemintegerPrice of each variation, in L$. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
price_fatpackintegerPrice of the fatpack, in L$. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
price_demointegerPrice of the demo, in L$. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
activebooleanfalse = paused.
pointsbooleanBuying it gives loyalty points.
group_discountintegerSL group discount in %. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
stockobject or nullLimited quantity; null = unlimited.
stock.modestringall = everything · except = all but the lists · only = just the lists. One of each, shared.
stock.totalintegerHow many exist in total. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
stock.soldintegerHow many were sold. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
stock.showbooleanThe vendor shows how many are left.
productsintegerHow many products are in the group. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
created_atstringISO 8601 date and time (UTC).