Open the panel

Vendors and Hubs PRO ​

The objects your store has in Second Life.

List vendors ​

GET/vendors
Scope vendors:readLimit read (600 per minute)

Newest first.

Query

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

Example

bash
curl "https://api.fastyvendor.com/api/v1/vendors?limit=1" \
  -H "Authorization: Bearer $FASTY_KEY"
js
const res = await fetch('https://api.fastyvendor.com/api/v1/vendors?limit=1', {
  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/vendors?limit=1",
    headers={"Authorization": f"Bearer {os.environ['FASTY_KEY']}"},
)
data = res.json()
lsl
llHTTPRequest(API + "/vendors?limit=1",
    [HTTP_CUSTOM_HEADER, "Authorization", "Bearer " + KEY,
     HTTP_BODY_MAXLENGTH, 16384],
    "");

Response: 200 OK

json
{
  "items": [
    {
      "id": "vd_swck23nzz6g18j",
      "name": "Riot Boots VENDOR",
      "region": "Enjoy Island",
      "position": [
        96,
        134,
        3401
      ],
      "slurl": "https://maps.secondlife.com/secondlife/Enjoy Island/96/134/3401",
      "status": "online",
      "script_version": "v1.0.0",
      "last_seen": "2026-11-04T18:01:12.482Z",
      "product": {
        "id": "prd_3bch28ayc47y85",
        "name": "Riot Boots"
      },
      "created_at": "2026-11-04T18:00:39.249Z"
    }
  ],
  "next_cursor": "v:1793815239249548~vd_swck23nzz6g18j"
}

Get a vendor ​

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

Path

NameTypeRequiredDescription
idstringYesThe id.

Example

bash
curl "https://api.fastyvendor.com/api/v1/vendors/vd_swck23nzz6g18j" \
  -H "Authorization: Bearer $FASTY_KEY"
js
const res = await fetch('https://api.fastyvendor.com/api/v1/vendors/vd_swck23nzz6g18j', {
  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/vendors/vd_swck23nzz6g18j",
    headers={"Authorization": f"Bearer {os.environ['FASTY_KEY']}"},
)
data = res.json()
lsl
llHTTPRequest(API + "/vendors/vd_swck23nzz6g18j",
    [HTTP_CUSTOM_HEADER, "Authorization", "Bearer " + KEY,
     HTTP_BODY_MAXLENGTH, 16384],
    "");

Response: 200 OK

json
{
  "id": "vd_swck23nzz6g18j",
  "name": "Riot Boots VENDOR",
  "region": "Enjoy Island",
  "position": [
    96,
    134,
    3401
  ],
  "slurl": "https://maps.secondlife.com/secondlife/Enjoy Island/96/134/3401",
  "status": "online",
  "script_version": "v1.0.0",
  "last_seen": "2026-11-04T18:01:12.482Z",
  "product": {
    "id": "prd_3bch28ayc47y85",
    "name": "Riot Boots"
  },
  "created_at": "2026-11-04T18:00:39.249Z"
}

Change what a vendor sells ​

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

The vendor picks the new product up within seconds.

Send {"product_id": null} to stop the vendor from selling.

Path

NameTypeRequiredDescription
idstringYesThe id.

Body

NameTypeRequiredDescription
product_idstring or nullYesWhat the vendor sells; null = nothing (it stops taking payments). Up to 64 characters.

Example

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

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

Response: 200 OK

json
{
  "id": "vd_swck23nzz6g18j",
  "name": "Riot Boots VENDOR",
  "region": "Enjoy Island",
  "position": [
    96,
    134,
    3401
  ],
  "slurl": "https://maps.secondlife.com/secondlife/Enjoy Island/96/134/3401",
  "status": "online",
  "script_version": "v1.0.0",
  "last_seen": "2026-11-04T18:01:12.482Z",
  "product": {
    "id": "prd_3bch28ayc47y85",
    "name": "Riot Boots"
  },
  "created_at": "2026-11-04T18:00:39.249Z"
}

List hubs ​

GET/hubs
Scope vendors:readLimit read (600 per minute)

Example

bash
curl "https://api.fastyvendor.com/api/v1/hubs" \
  -H "Authorization: Bearer $FASTY_KEY"
js
const res = await fetch('https://api.fastyvendor.com/api/v1/hubs', {
  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/hubs",
    headers={"Authorization": f"Bearer {os.environ['FASTY_KEY']}"},
)
data = res.json()
lsl
llHTTPRequest(API + "/hubs",
    [HTTP_CUSTOM_HEADER, "Authorization", "Bearer " + KEY,
     HTTP_BODY_MAXLENGTH, 16384],
    "");

Response: 200 OK

json
{
  "items": [
    {
      "id": "hub_2d67t8qfgqcg1z",
      "name": "Main Hub",
      "region": "Enjoy Island",
      "position": [
        99,
        131,
        3400
      ],
      "slurl": "https://maps.secondlife.com/secondlife/Enjoy Island/99/131/3400",
      "status": "online",
      "script_version": "v1.0.0",
      "last_seen": "2026-11-04T18:14:48.809Z",
      "items": 11,
      "created_at": "2026-10-02T13:11:58.191Z"
    }
  ],
  "next_cursor": null
}

The vendor object ​

FieldTypeDescription
idstringThe id.
namestringThe name.
regionstringThe region in Second Life.
positionarray of integers[x, y, z] in the region.
slurlstring or nullA map link to the place.
statusstringThe current state. One of online, offline.
script_versionstringThe script it runs.
last_seenstringISO 8601 date and time (UTC).
productobject or nullWhat it sells (null = nothing yet).
product.idstringThe id.
product.namestringThe name.
created_atstringISO 8601 date and time (UTC).

The hub object ​

FieldTypeDescription
idstringThe id.
namestringThe name.
regionstringThe region in Second Life.
positionarray of integers[x, y, z] in the region.
slurlstring or nullA map link to the place.
statusstringThe current state. One of online, offline.
script_versionstringThe script it runs.
last_seenstringISO 8601 date and time (UTC).
itemsintegerItems it holds. From -9,007,199,254,740,991 to 9,007,199,254,740,991.
created_atstringISO 8601 date and time (UTC).