Editorial comparison

API permissions at Bybit, Bitget and MEXC: read, trade and withdraw

An API key must match its task and API family. Compare permissions, IP restrictions and account scope, separating data records from trading and asset-transfer capabilities.

Updated:

Read the article
Three abstract permission gates with reading documents, an editing pen and coins behind a lock

Bybit, Bitget and MEXC: an API is authorization for a task

An API key is not a financially neutral “technical connection.” It lets software read information and sometimes change account state, submit orders or move assets. Bybit, Bitget and MEXC document different permissions and interfaces, so start with the task: collecting history, executing trades, internal transfers or withdrawals to outside destinations.

Transaction records require appropriate data permissions; withdrawal is not automatically needed. Order execution requires trading capability, but that adds risk even if money cannot leave the account. Exchanging an asset or opening exposure can cause losses without calling a withdrawal endpoint.

An accurate comparison identifies API family and account type. Bybit V5, Bitget Classic or UTA and MEXC Spot V3 are not names for the same settings screen. A scope documented in one interface does not establish identical availability elsewhere, and spot documentation does not prove futures eligibility.

Start with the Bybit review, Bitget review and MEXC review. This article focuses on connection capabilities and their control. No key was created, account credentials read or authenticated request sent during the research.

Four API capabilities: information, orders, transfers and withdrawals

Different permissions affect different account functions. Reading can expose balances and history. Trading can create or cancel orders. Transfers can move assets between accounts or wallets within a service. Withdrawals can send assets externally under endpoint conditions. A single checkbox saying “enabled” is insufficient.

Scroll the table horizontally to read every column.

Four API capabilities: information, orders, transfers and withdrawals
Documented capabilityBybit V5BitgetMEXC Spot V3
Permission inspectionreadOnly and permissions listsRead versus write by Classic or UTA familyKey information with permissions and status
TradingSpot and ContractTrade groupsTrade or UTA trade by familyInterface-specific deal permissions
WithdrawalWallet Withdraw for a main accountClassic Withdraw permissionSPOT_WITHDRAW_WRITE on the withdrawal endpoint

The table does not promise availability for every customer. It describes documented scope. Bybit requires distinguishing main and subaccounts; Bitget requires identifying API family; MEXC requires spot-interface and account-condition checks. Documentation is not an invitation to circumvent restrictions.

“Transfer” is also not another name for withdrawal. Internal-transfer capability can change fund location and availability to another product. Reducing permissions therefore needs a list of necessary actions, rather than disabling withdrawal and assuming everything else is risk-free.

Bybit V5: inspect readOnly and the permission list together

Bybit documents a key-inspection endpoint returning readOnly and permission groups. Groups include spot trading, contract trading and Wallet actions. Documentation also distinguishes main and subaccounts, specifying main-account scope for Wallet Withdraw. These are applicability conditions, not a universal claim that every API can withdraw.

For a history connection, check read mode and inclusion of required data. If particular events are missing, adding trading capability is not an automatic solution: the issue may be endpoint coverage, historical period or an unconnected subaccount. Define the missing information before changing permissions.

The documentation also returns IP and expiry information according to key conditions. No single number of days is applied here to every key type or connected service. The actual key screen and its specific documentation matter more than a general assumption from another integration.

Before an external connection, retain its name, purpose and account mapping without putting the secret in a shared file. When discontinuing use, inspect revocation in the exchange system. Removing the service name from personal notes does not revoke an active authorization.

Bitget Classic and UTA: similar labels, different scope

Bitget Classic explicitly separates read, trade, transfer and withdrawal permissions. UTA documentation describes read/write access for unified-account trading and management. Management can change parameters such as holding mode or leverage, so it is not simply “extra information” for software.

Do not copy a Classic integration's permission form into a UTA process without checking support. Key-count limits and documentation labels also differ between families, so this article presents no universal Bitget limit. The question is what the specific key can do within the API family used by the external service.

Bitget documents APIKey, SecretKey and Passphrase as distinct credentials. An API passphrase is not a wallet recovery phrase, nor something to paste into an article, screenshot or public support request. Lost or exposed credentials require the appropriate management process rather than guessing.

Classic withdrawal documents a source-IP allowlist requirement. Even with that rule, excessive permissions remain unjustified for software used only for reporting. Purpose-based permissions and request-origin checks complement each other; neither replaces the other.

MEXC Spot V3: explicit permissions and pair restrictions

MEXC Spot V3 documents market, account, history and order functions alongside wallet endpoints. Key inspection includes status, permissions, IP list and validity. The new withdrawal endpoint explicitly requires SPOT_WITHDRAW_WRITE. Reading history and withdrawing are therefore distinct capabilities identifiable in documentation.

The key-information page has an inconsistency between part of its permission description and its example response. Rather than declaring withdrawals absent because a name is missing from one list, use the withdrawal endpoint's required scope. This preserves a narrow supported claim instead of completing the list from memory.

Documentation allows trading-pair settings for a key. That can matter for software authorized only for a defined task, but it does not eliminate risks in permitted actions. Restricting a key to one pair is not a guaranteed loss cap; an incorrect quantity can still be submitted within an allowed pair.

This research concerns Spot V3, not confirmation that the reader can use a futures API or obtain identical permissions in every account. Validity and request limits depend on settings and endpoints, so check the planned action's document. Public documentation explains capability without replacing account-term checks.

Source IP and key validity: API operational controls

An IP allowlist restricts where a key can be used under product rules. It does not define permitted actions or guarantee that an approved server is uncompromised. For software on a fixed server, establish its outgoing address; an internal computer address is not necessarily what the exchange sees.

An external service can use changing egress sources. An IP requirement published long ago may not be current. Check that service and exchange instructions agree rather than automatically broadening access to remove a connection error. Sensitive-data connections require understanding request origins too.

MEXC documents validity for keys without IP binding and conditional renewal. Bybit returns expiry according to key circumstances, and Bitget recommends IP binding. These do not create one common rule across the three exchanges. Record the specific key's validity and alerts so a sync failure is not immediately mistaken for no activity.

After changing a server, software provider or account family, recheck permissions and request origins. A technical migration is no reason to retain old capabilities that are no longer required. Revoking unused access reduces continuing dependence without promising that every risk disappears.

Reporting connections versus trading connections: permissions by output

For record-consolidation software, define the information it reads: fills, asset movements, fees or balances. These are not necessarily the same data from the same endpoint. A read key can be properly authorized yet omit an old period or product outside the integration.

For software executing orders, define what it may change. Trading, cancellation, position configuration and transfers between accounts are different actions. Withdrawal access is unnecessary for software to cause losses, so checking “no withdrawal” is not a sufficient automation review.

Separate reporting keys from action keys where the workflow and support permit it. Separation makes each service's capabilities explainable and lets one connection be revoked without relying on an ambiguous label. It does not require opening another account or guarantee that a user or server cannot make mistakes.

Before connection, specify a checkable output: the file or record expected, or the order state that should change. The Koinly versus exchange-report comparison explains why successful syncing and complete history are different questions. A clear output makes excessive permissions or coverage gaps easier to identify without guessing.

API pricing and history: do not copy website conditions

Using an API is not merely another way to click the same button. It can encounter different endpoints, historical windows and pricing according to product and account. A website schedule therefore does not establish the charge an outside system will obtain, and a completed read does not prove that every record was retrieved.

Bitget has a discrepancy between a generic spot help rate and public BTCUSDT pair data. That does not establish an individual's API charge, but it illustrates why source and applicability must be preserved. Before planning authenticated trading, check account/product pricing rather than attaching the more convenient figure to the key.

For history, check start date, main/subaccount scope and retrieved action types. Software returning only a balance is not a substitute for acquisition records. An empty result can mean missing data, an unsuitable range or an error rather than no activity.

For pricing rather than permissions, the Bitget versus MEXC comparison and MEXC fee guide separate product and execution channel. This article introduces no new API tariff; it requires capability, coverage and cost to be checked separately.

Checking a connection error: do not guess by expanding permissions

When a connection fails, begin with the error meaning and endpoint conditions. Authentication, signature, expiry, rate limits, IP and account type are different causes. Expanding permissions without identifying the cause can add risk without fixing the problem. A successful request also does not establish availability of every action the service needs.

Check that API family and account match the integration documentation. Bitget's passphrase forms part of the documented authentication arrangement; MEXC and Bybit have their own request rules. Headers or product identifiers should not be copied between providers as though they were a common standard.

Keep a log of time, request type, status and error description, stripping secrets and personal information. Publishing keys or account-containing request bodies is unnecessary to explain an issue to support. An internal connection identifier and focused question can start the investigation.

For action-taking software, an ambiguous response requires checking state before retrying. A request can be accepted even if its acknowledgement never reaches the client. Unchecked resubmission can duplicate an action. This is an automation-process requirement, not behavior tested here in a provider's code or live trading service.

Deleting, replacing and choosing API access: retain capability only while needed

After discontinuing software, verify revocation at the exchange rather than merely removing the phone app. For exposed keys, provider documentation directs deletion or replacement through the appropriate mechanism. A key needed for an old task should not remain active merely because its sync stopped running.

When moving to a new key, preserve account and permission mapping and understand when the old one stops. For data connections, check that overlap does not duplicate records. For action connections, check that two processes are not operating on the same task. Permission transitions need documentation rather than only a changed configuration value.

Bybit V5 provides key information and permission groups for review; Bitget requires identifying Classic or UTA and the account-management capability; MEXC Spot V3 documents key information and pair settings within the examined scope. These are workflow distinctions, not an overall ranking of a better or safer API.

Choose a connection that can be explained: information read, state changed, request origin and conditions ending access. Eligibility, product cost and historical completeness must be checked alongside permissions. Keeping those boundaries supports integration use without presenting technical capability as a financial advantage or security guarantee.

Providers mentioned on this page

Open comparison table →

Crypto

Bybit

About the provider

A crypto exchange for spot, futures and options. The global VIP 0 schedule lists 0.1% per side on crypto-to-crypto spot and 0.02% maker/0.055% taker on ordinary futures. Fiat pairs and special trading zones have separate schedules; My Fee Rate shows the account rate after KYC. Crypto is volatile and funds can be lost in full.

Spot trading fee at the base level (maker and taker)
0.1 %

VIP 0 schedule for ordinary crypto-to-crypto pairs only. Fiat pairs, Adventure Zone and xStocks use separate tables. Personal rates may vary by region and appear under My Fee Rate after identity verification.

Futures taker fee at the base level
0.055 %

VIP 0 for ordinary contracts; maker is 0.02%. Pre-Market and Innovation Zone use different tables. Fees apply to filled notional before funding.

Visit Bybit · Opens in a new tab
Referral code at sign-up
Read review of Bybit

Crypto

Bitget

About the provider

A crypto exchange for spot and futures. Official spot figures conflict: the help page lists 0.1% maker and taker, while the public BTCUSDT API configuration lists 0.2%. The BTCUSDT USDT-M contract configuration lists 0.02% maker and 0.06% taker, before funding. Crypto is volatile and funds can be lost in full.

Spot maker rate in public BTCUSDT configuration
0.2 %

Public configuration data: 0.002 = 0.2%. The general help page lists 0.1% for both execution types. The discrepancy is unresolved; this is not a verified personal rate or an input for a generic spot estimate. Account tier, pair and BGB conditions require separate verification.

Spot taker rate in public BTCUSDT configuration
0.2 %

Public configuration data: 0.002 = 0.2%. The general help page lists 0.1% for both execution types. The discrepancy is unresolved; this is not a verified personal rate or an input for a generic spot estimate. Account tier, pair and BGB conditions require separate verification.

Visit Bitget · Opens in a new tab
Invitation code at sign-up
Read review of Bitget

Crypto

MEXC

About the provider

A crypto exchange for spot and futures. The standard spot schedule lists 0% maker/0.05% taker; BTCUSDT website/app futures list 0%/0.02%. Futures API orders outside Innovation Zone use a separate 0.06%/0.08% schedule. MX deduction is conditional and does not apply to API orders. Crypto is volatile and funds can be lost in full.

Spot maker fee
0 %

According to the official fee guide. Rates may vary by region and trading pair. A zero fee is not cost-free trading.

Spot taker fee
0.05 %

Standard spot rate of 0.05% before deductions; Special Rate and 0 Fees are separate pair/channel conditions. The 20% MX deduction requires account access, activation and MX available for payment; it does not cover every pair or establish an API rate.

Visit MEXC · Opens in a new tab
Referral code at sign-up
Read review of MEXC