Class: Bybit::RestApi::UserService

Inherits:
BaseService show all
Defined in:
lib/bybit/rest_api/user_service.rb

Instance Method Summary collapse

Methods inherited from BaseService

#initialize

Constructor Details

This class inherits a constructor from Bybit::RestApi::BaseService

Instance Method Details

#create_sub_api_key(subuid:, read_only:, permissions:, **kwargs) ⇒ Hash

Create Sub API Key.

POST /v5/user/create-sub-api

Parameters:

  • subuid (Integer)

    Sub UID

  • read_only (Integer)

    Read-only permission flag (0: read-write, 1: read-only)

  • permissions (Hash)

    API key permission settings. Bybit V5 expects PascalCase group keys — e.g. { 'ContractTrade' => ['Order'], 'Spot' => ['Order'], 'Wallet' => ['AccountTransfer'] }. The SDK passes this hash through VERBATIM (no snake→camel conversion) so callers must use the docs-spelling of each group name.

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :ips (String)

    Bound IP addresses (comma-separated)

  • :note (String)

    API key note

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



20
21
22
23
24
25
26
27
28
# File 'lib/bybit/rest_api/user_service.rb', line 20

def create_sub_api_key(subuid:, read_only:, permissions:, **kwargs)
  params = kwargs.merge(subuid: subuid, read_only: read_only)
  params = Bybit::Utils::WireKeys.camelize(params)
  # `permissions` is intentionally re-attached AFTER camelize — Bybit V5
  # wants PascalCase group keys (ContractTrade / Spot / Wallet / ...)
  # which a naive snake→camel pass would corrupt.
  params[:permissions] = permissions
  @session.sign_request(method: :post, path: '/v5/user/create-sub-api', body: params)
end

#create_sub_member(username:, member_type:, **kwargs) ⇒ Hash

Create Sub UID.

POST /v5/user/create-sub-member

Parameters:

  • username (String)

    Sub-account username

  • member_type (Integer)

    Sub-account type (1: normal, 6: custodial)

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :password (String)

    Sub-account login password

  • :switch (Integer)

    Quick login toggle

  • :is_uta (Boolean)

    Whether to create as UTA account

  • :note (String)

    Sub-account note

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



42
43
44
45
46
# File 'lib/bybit/rest_api/user_service.rb', line 42

def create_sub_member(username:, member_type:, **kwargs)
  params = kwargs.merge(username: username, member_type: member_type)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/user/create-sub-member', body: params)
end

#delete_api_key(**kwargs) ⇒ Hash

Delete Master API Key.

POST /v5/user/delete-api

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :apikey (String)

    API key to delete

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



55
56
57
58
59
# File 'lib/bybit/rest_api/user_service.rb', line 55

def delete_api_key(**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/user/delete-api', body: params)
end

#delete_sub_api_key(subuid:, **kwargs) ⇒ Hash

Delete Sub-account API Key.

POST /v5/user/delete-sub-api

Parameters:

  • subuid (Integer)

    Sub UID

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :apikey (String)

    Sub-account API key to delete

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



69
70
71
72
73
# File 'lib/bybit/rest_api/user_service.rb', line 69

def delete_sub_api_key(subuid:, **kwargs)
  params = kwargs.merge(subuid: subuid)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/user/delete-sub-api', body: params)
end

#delete_sub_member(subuid:, **kwargs) ⇒ Hash

Delete Sub-account.

POST /v5/user/del-submember

Parameters:

  • subuid (Integer)

    Sub UID to delete

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



81
82
83
84
85
# File 'lib/bybit/rest_api/user_service.rb', line 81

def delete_sub_member(subuid:, **kwargs)
  params = kwargs.merge(subuid: subuid)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/user/del-submember', body: params)
end

#frozen_sub_member(subuid:, frozen:, **kwargs) ⇒ Hash

Freeze or unfreeze a Sub UID.

POST /v5/user/frozen-sub-member

Parameters:

  • subuid (Integer)

    Sub UID

  • frozen (Integer)

    Freeze flag (0: unfreeze, 1: freeze)

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



95
96
97
98
99
# File 'lib/bybit/rest_api/user_service.rb', line 95

def frozen_sub_member(subuid:, frozen:, **kwargs)
  params = kwargs.merge(subuid: subuid, frozen: frozen)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/user/frozen-sub-member', body: params)
end

#get_affiliate_custom_open_info(uid:, **kwargs) ⇒ Hash

Get Affiliate User Info.

GET /v5/user/aff-customer-info

Parameters:

  • uid (String)

    Affiliate user UID

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :coin (String)

    Coin filter

  • :business (String)

    Business type filter

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



109
110
111
112
113
# File 'lib/bybit/rest_api/user_service.rb', line 109

def get_affiliate_custom_open_info(uid:, **kwargs)
  params = kwargs.merge(uid: uid)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :get, path: '/v5/user/aff-customer-info', params: params)
end

#get_api_key_infoObject

Get API Key Information.

GET /v5/user/query-api



147
148
149
# File 'lib/bybit/rest_api/user_service.rb', line 147

def get_api_key_info
  @session.sign_request(method: :get, path: '/v5/user/query-api')
end

#get_member_account_type(**kwargs) ⇒ Hash

Get Member Account Type.

GET /v5/user/get-member-type

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :member_ids (String)

    Comma-separated member IDs

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



121
122
123
124
125
# File 'lib/bybit/rest_api/user_service.rb', line 121

def (**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :get, path: '/v5/user/get-member-type', params: params)
end

#list_escrow_sub_members(**kwargs) ⇒ Hash

Query Escrow Sub-accounts (Fund Management).

GET /v5/user/escrow_sub_members

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :next_cursor (Integer)

    Pagination cursor

  • :page_size (Integer)

    Page size

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



158
159
160
161
162
# File 'lib/bybit/rest_api/user_service.rb', line 158

def list_escrow_sub_members(**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :get, path: '/v5/user/escrow_sub_members', params: params)
end

#list_referrals(**kwargs) ⇒ Hash

Query Referrals.

GET /v5/user/invitation/referrals

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :cursor (String)

    Pagination cursor

  • :size (Integer)

    Page size

  • :status (String)

    Referral status filter

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



172
173
174
175
176
# File 'lib/bybit/rest_api/user_service.rb', line 172

def list_referrals(**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :get, path: '/v5/user/invitation/referrals', params: params)
end

#list_sub_api_keys(subuid:, **kwargs) ⇒ Hash

List Sub-account API Keys.

GET /v5/user/sub-apikeys

Parameters:

  • subuid (Integer)

    Sub UID

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :limit (Integer)

    Page limit

  • :cursor (String)

    Pagination cursor

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



136
137
138
139
140
# File 'lib/bybit/rest_api/user_service.rb', line 136

def list_sub_api_keys(subuid:, **kwargs)
  params = kwargs.merge(subuid: subuid)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :get, path: '/v5/user/sub-apikeys', params: params)
end

#list_sub_member_uidsObject

Query Sub UID List.

GET /v5/user/query-sub-members



183
184
185
# File 'lib/bybit/rest_api/user_service.rb', line 183

def list_sub_member_uids
  @session.sign_request(method: :get, path: '/v5/user/query-sub-members')
end

#list_sub_members(**kwargs) ⇒ Hash

List Sub-accounts (paginated variant — /v5/user/submembers). Distinct from #list_sub_member_uids (/v5/user/query-sub-members).

GET /v5/user/submembers

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :page_size (Integer)

    Page size

  • :next_cursor (Integer)

    Pagination cursor

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



195
196
197
198
199
# File 'lib/bybit/rest_api/user_service.rb', line 195

def list_sub_members(**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :get, path: '/v5/user/submembers', params: params)
end

#sign_agreement(category:, agree:, **kwargs) ⇒ Hash

Sign Agreement

POST /v5/user/agreement

Parameters:

  • category (Integer)

    Agreement category

  • agree (Boolean)

    Whether to agree

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).



208
209
210
211
212
# File 'lib/bybit/rest_api/user_service.rb', line 208

def sign_agreement(category:, agree:, **kwargs)
  params = kwargs.merge(category: category, agree: agree)
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/user/agreement', body: params)
end

#update_api_key(**kwargs) ⇒ Hash

Modify Master API Key

POST /v5/user/update-api

Parameters:

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :read_only (Integer)

    Read-only flag

  • :ips (String)

    Bound IP list

  • :permissions (Hash)

    Permissions object

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



223
224
225
226
227
# File 'lib/bybit/rest_api/user_service.rb', line 223

def update_api_key(**kwargs)
  params = kwargs.dup
  params = Bybit::Utils::WireKeys.camelize(params)
  @session.sign_request(method: :post, path: '/v5/user/update-api', body: params)
end

#update_sub_api_key(subuid:, read_only:, **kwargs) ⇒ Hash

Modify Sub-account API Key

POST /v5/user/update-sub-api

Parameters:

  • subuid (Integer)

    Sub UID

  • read_only (Integer)

    Read-only flag

  • kwargs (Hash)

    a customizable set of options

Options Hash (**kwargs):

  • :apikey (String)

    Sub-account API key

  • :ips (String)

    Bound IP list

  • :permissions (Hash)

    Permissions object. Bybit V5 expects PascalCase group keys (ContractTrade / Spot / Wallet / ...). This hash is passed through VERBATIM — no snake→camel conversion.

  • :note (String)

    Note

Returns:

  • (Hash)

    Bybit V5 ApiResponse envelope (retCode / retMsg / result / retExtInfo / time).

See Also:



243
244
245
246
247
248
249
250
251
# File 'lib/bybit/rest_api/user_service.rb', line 243

def update_sub_api_key(subuid:, read_only:, **kwargs)
  permissions = kwargs.delete(:permissions)
  params = kwargs.merge(subuid: subuid, read_only: read_only)
  params = Bybit::Utils::WireKeys.camelize(params)
  # See `create_sub_api_key` — permissions is re-attached AFTER camelize
  # so PascalCase group keys survive the wire trip intact.
  params[:permissions] = permissions unless permissions.nil?
  @session.sign_request(method: :post, path: '/v5/user/update-sub-api', body: params)
end