Go library for interacting with Marzban panel.
go get github.com/oAwake/marzban-api-goclient, err := marzban.NewClient(&marzban.Config{
URL: os.Getenv("MARZBAN_URL"),
Username: os.Getenv("MARZBAN_USERNAME"),
Password: os.Getenv("MARZBAN_PASSWORD"),
Proxy: os.Getenv("MARZBAN_PROXY"), // optional
LogInputOutPut: true,
})Here’s a short, clear English documentation snippet for your create user example suitable for a README:
Create a new user with proxies, inbounds, data limit, and optional expiration.
user := &marzban.User{
Username: "example",
Proxies: map[marzban.UserProxyType]map[string]any{
marzban.UserProxyVLESS: {"flow": "", id: uuid.New()},
},
Inbounds: map[marzban.UserProxyType][]string{
marzban.UserProxyVLESS: {"INBOUND_TAG"},
},
// expire in 30 day
Expire: time.Now().Add(30 * 24 * time.Hour).Unix(),
// 1 GB Data Limit
DataLimit: 1024 * 1024 * 1024,
DataLimitResetStrategy: marzban.Month,
Status: marzban.Active,
Note: "Test user",
}
id := uuid.New()
user.SetVMESSProxy(id)
addedUser, err := client.AddUser(user)Returns: *marzban.User – the newly created user object.
Notes:
SetVMESSProxysets a VMESS proxy ID.Expireis in Unix timestamp.DataLimitResetStrategycan beNoReset,Day,Week,Month, orYear.
user, err := client.GetUser("username")- Input:
username(string) - Output:
*marzban.Userwith all user details (Proxies,Expire,Status,Admin, etc.)