GIFTLY DEVELOPER API

Build gifts into
your own app.

A simple API for developers who want to browse the gift store and send Free Fire gifts through their own tools.

Request an API key Base URLhttps://giftly.siambhau.store/api/v1
Developer readySecure key access
Every request
API key protected
QUICK START

Three steps to get started.

Request a key on Telegram, authenticate with your Free Fire token, then use the returned JWT to read the store or send a gift.

01Get your keyMessage us on Telegram with your project details.
02LoginExchange your JWT, Access or EAT token.
03Send giftsCall the protected gift endpoint.
AUTHENTICATION

Your key goes with every request.

Send your API key in the X-API-Key header. Keys can expire and may have a request limit.

Required header
X-API-Key: YOUR_API_KEY
Content-Type: application/json
Never expose your API key in browser-side code or public repositories. Keep it in your server environment.
POST/authLogin and get a session JWT

Use the token you already use in Giftly. The response contains a JWT for subsequent store and gift requests.

cURL
curl -X POST "https://giftly.siambhau.store/api/v1/auth" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"token":"YOUR_TOKEN","token_type":"jwt"}'
token_typestring · jwt, access, or eat
POST/storeFetch the complete gift store

Pass the JWT returned by login. This endpoint fetches every currently available item in one response—no page number or category filter is needed.

JavaScript
const response = await fetch('/api/v1/store', {
  method: 'POST',
  headers: { 'X-API-Key': API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({ jwt: sessionJwt })
});
 const { items } = await response.json();
// items = item_id, commodity_id, name, type, gems, coins, image
The items array contains the full store. Use commodity_id from your selected item when sending a gift.
POST/giftSend a gift to a player

Send a selected gift using its commodity_id. Use currency: 2 for diamonds and currency: 1 for gold.

Request body
{
  "jwt": "JWT_FROM_AUTH",
  "target_uid": 123456789,
  "commodity_id": 987654,
  "currency": 2,
  "diamond_price": 100,
  "message": "Enjoy your gift!"
}
jwtstring · required
target_uidnumber · recipient UID
commodity_idnumber · from /store
messagestring · optional
RESPONSES

Clear, predictable errors.

200Request completed successfully
400Missing or invalid request data
401Missing or invalid API key
403Key disabled or expired
429Rate limit exceeded
READY TO BUILD?

Get your developer key.

Send your project name and what you want to build. We will send you an active key with an expiry date.

Message on Telegram
PYTHON DEMO

Complete example.

This example logs in with a JWT, Access, or EAT token, then fetches every available store item.

Python 3
import requests

BASE_URL = "https://giftly.siambhau.store/api/v1"
API_KEY = "YOUR_API_KEY"

headers = {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json"
}

# token_type: "jwt", "access", or "eat"
login = requests.post(
    f"{BASE_URL}/auth",
    headers=headers,
    json={"token": "YOUR_TOKEN", "token_type": "jwt"}
)
login.raise_for_status()
session_jwt = login.json()["jwt"]

# Fetch the complete store
store = requests.post(
    f"{BASE_URL}/store",
    headers=headers,
    json={"jwt": session_jwt}
)
store.raise_for_status()
items = store.json()["items"]
print(f"Found {len(items)} gifts")
for item in items:
    print(item["name"], item["commodity_id"])
For an Access or EAT token, change only token_type. The endpoint stays the same and returns a JWT.