Open the panel

The Fasty API PRO ​

The API lets your own code talk to your store. It speaks JSON over HTTPS, so it works from LSL scripts, websites, Discord bots, spreadsheets or anything else that can make a web request.

What you can build ​

You want to…UseGuide
Unlock a game or HUD only for buyersGET /customers/{key}/purchasesUnlock something for buyers
Give points to the winner of a roundPOST /customers/{key}/pointsReward players with points
Send a prize to a contest winnerPOST /products/{id}/sendSend prizes to winners
Keep your sales in a database or sheetGET /salesKeep a copy of your sales
Change hundreds of prices at oncePATCH /productsChange many prices at once
Show your newest products on a websiteGET /productsProducts

Is this for you?

You don't need the API to run your store: everything here also exists in the panel. It's for when you want your own code to do it.

Your first request ​

Five minutes, and you'll know your key works.

  1. Create a key. In the panel, open Store settings → API and click New key. Give it a name and keep the default permissions, which can only read. Copy the key now: it starts with fsk_ and is shown only once.

  2. Make a request. Open a terminal and run this, with your key in place of fsk_…:

    bash
    curl https://api.fastyvendor.com/api/v1/me \
      -H "Authorization: Bearer fsk_…"
  3. Read the answer. You get your store, what the key can do and how much of your limits you've used today:

    json
    {
      "store": { "id": "st_k4x9m2p7q1zw8c", "name": "Luna Couture", "plan": "pro", "pro_until": "2027-10-05T19:30:28.348Z", "suspended": false },
      "key": { "id": "ak_7mq2vh3kd9ps4x", "name": "My card game", "hint": "a1b2", "scopes": ["products:read", "sales:read"] },
      "access": "full",
      "limits": { "reads_per_minute": 600, "writes_per_minute": 120 },
      "usage": { "day": "2026-11-04", "requests": 1, "deliveries": 0 }
    }

Now list your products ​

The same request in four languages. Set your key in FASTY_KEY first, so it never sits in your code.

bash
curl "https://api.fastyvendor.com/api/v1/products?limit=5" \
  -H "Authorization: Bearer $FASTY_KEY"
js
const res = await fetch('https://api.fastyvendor.com/api/v1/products?limit=5', {
  headers: { Authorization: `Bearer ${process.env.FASTY_KEY}` },
})
const { items } = await res.json()

for (const product of items) console.log(product.name, product.price)
python
import os, requests

res = requests.get(
    "https://api.fastyvendor.com/api/v1/products",
    params={"limit": 5},
    headers={"Authorization": f"Bearer {os.environ['FASTY_KEY']}"},
)

for product in res.json()["items"]:
    print(product["name"], product["price"])
lsl
string KEY = "fsk_…";    // this script must be no-copy and no-modify

default
{
    touch_start(integer n)
    {
        llHTTPRequest("https://api.fastyvendor.com/api/v1/products?limit=5",
            [HTTP_CUSTOM_HEADER, "Authorization", "Bearer " + KEY,
             HTTP_BODY_MAXLENGTH, 16384], "");
    }

    http_response(key id, integer status, list meta, string body)
    {
        integer i;
        for (i = 0; i < 5; ++i)
        {
            string name = llJsonGetValue(body, ["items", i, "name"]);
            if (name != JSON_INVALID) llOwnerSay(name);
        }
    }
}

Where to go next ​

What the API can't do ​

No key can move L$. Refunds, sending L$ and profit shares stay in the panel, so a leaked key can never empty your store. Your team, plan and account aren't in the API either.