# /account/exchange-credentials/{id} Change the alias or the exchange API key of a set of exchange credentials. The are always required and are checked with the exchange again before they are saved. The exchange cannot be changed: must be the one the credentials were added for. To change the token restriction use Update exchange credentials allowed tokens. An API key may change exchange credentials only when the user who created it is a trader admin. Endpoint: PUT /account/exchange-credentials/{id} Version: 1.0 Security: BearerAuth, FigSignature, FigTimestamp ## Path parameters: - `id` (integer, required) of the exchange credentials to fetch/perform operation on Example: 57 ## Request fields (application/json): - `exchangeId` (integer, required) Exchange identifier - see [Exchanges](/guides/glossary#exchanges) Enum: 17, 25, 26, 5 - `alias` (string, required) Custom alias/reference for exchange credentials, unique on your account - `credentials` (any, required) - `isExchangeDefault` (boolean) Makes these credentials your default for their exchange. Setting it to clears the default from your other credentials on the same exchange; removes the default from these credentials. Leave it out of an update to keep the current setting. ## Response 200 fields (application/json): - `message` (string) ## Response 400 fields (application/json): - `code` (integer) Example: 400 - `message` (string) Example: "Invalid Request" - `reason` (array) Example: ["Invalid input"] ## Response 403 fields (application/json): - `code` (integer) Example: 403 - `message` (string) Why the request was refused, e.g.: - - : the user who created the API key has not yet accepted the terms and conditions in the Fig Markets app Example: "the user who created this API key does not have a role this request requires" ## Response 404 fields (application/json): - `code` (integer) Example: 404 - `message` (string) Example: "Not Found" ## Response 420 fields (application/json): - `code` (integer) Example: 420 - `message` (string) What went wrong, in the same wording whichever venue raised it Example: "Price is too high" - `reason` (array) Further detail, such as the instrument or limit involved; omitted when there is none Example: ["BTC-26SEP25-116000-C - Maximum price: 0.0815"] - `exchangeError` (object) The venue's error, normalised to the same shape for every venue - `exchangeError.message` (string) Same as the top-level Example: "Price is too high" - `exchangeError.exchange` (string) The venue that returned the error Enum: "bullish", "deribit", "derive", "okx" - `exchangeError.exchangeCode` (string) The venue's own error code, for support queries; omitted when the venue gave none Example: "10007" - `exchangeError.exchangeReason` (string) The venue's own error text, for support queries; omitted when the venue gave none Example: "price_too_high" - `exchangeError.params` (object) Structured detail behind , such as , , , , , , and ; each key is omitted when it does not apply Example: {"instrument":"BTC-26SEP25-116000-C","limit":0.0815}