Skip to content

oAwake/marzban-api-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marzban Go API

Go library for interacting with Marzban panel.

Installation

go get github.com/oAwake/marzban-api-go

Create Client

client, 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 User

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:

  • SetVMESSProxy sets a VMESS proxy ID.
  • Expire is in Unix timestamp.
  • DataLimitResetStrategy can be NoReset, Day, Week, Month, or Year.

Get User

user, err := client.GetUser("username")
  • Input: username (string)
  • Output: *marzban.User with all user details (Proxies, Expire, Status, Admin, etc.)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages