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
/groupsQuery
| Name | Type | Required | Description |
|---|---|---|---|
cursor | string | No | The next_cursor of the previous page. |
limit | integer | No | Page 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}Path
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The 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}Prices apply to every variation that is not custom.
Path
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The id. |
Body
| Name | Type | Required | Description |
|---|---|---|---|
name | string | No | The name. Up to 63 characters. |
category | string | No | Marketplace-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_item | integer | No | Price of each variation, in L$. From 0 to 1,000,000. |
price_fatpack | integer | No | Price of the fatpack, in L$. From 0 to 1,000,000. |
price_demo | integer | No | Price of the demo, in L$. From 0 to 1,000,000. |
active | boolean | No | false = paused. |
points | boolean | No | Buying it gives loyalty points. |
image | string | No | Texture UUID, or "" for none. |
group_discount | integer | No | SL group discount in %. From 0 to 90. |
stock | object | No | Limited quantity; null = unlimited. |
stock.mode | string or null | No | null = unlimited One of each, shared. |
stock.total | integer | No | How many exist in total. From 1 to 1,000,000. |
stock.show | boolean | No | The 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
| Field | Type | Description |
|---|---|---|
id | string | The id. |
name | string | The name. |
category | string | Marketplace-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. |
image | string | Texture UUID, or "" for none. |
image_url | string or null | Picture address, or null. |
price_item | integer | Price of each variation, in L$. From -9,007,199,254,740,991 to 9,007,199,254,740,991. |
price_fatpack | integer | Price of the fatpack, in L$. From -9,007,199,254,740,991 to 9,007,199,254,740,991. |
price_demo | integer | Price of the demo, in L$. From -9,007,199,254,740,991 to 9,007,199,254,740,991. |
active | boolean | false = paused. |
points | boolean | Buying it gives loyalty points. |
group_discount | integer | SL group discount in %. From -9,007,199,254,740,991 to 9,007,199,254,740,991. |
stock | object or null | Limited quantity; null = unlimited. |
stock.mode | string | all = everything · except = all but the lists · only = just the lists. One of each, shared. |
stock.total | integer | How many exist in total. From -9,007,199,254,740,991 to 9,007,199,254,740,991. |
stock.sold | integer | How many were sold. From -9,007,199,254,740,991 to 9,007,199,254,740,991. |
stock.show | boolean | The vendor shows how many are left. |
products | integer | How many products are in the group. From -9,007,199,254,740,991 to 9,007,199,254,740,991. |
created_at | string | ISO 8601 date and time (UTC). |