> ## Documentation Index
> Fetch the complete documentation index at: https://cobo.com/developers/llms.txt
> Use this file to discover all available pages before exploring further.

# List swap activities

> This operation retrieves a list of swap activities. You can filter the results by swap type, status, initiator, and time range.


<Tip>
  Try [Cobo WaaS Skill](/v2/guides/overview/cobo-waas-skill) in your AI coding assistant (Claude Code, Cursor, etc.). Describe your needs in natural language to auto-generate production-ready SDK code and debug faster 🚀
</Tip>

<RequestExample>
  ```python Python theme={null}
  import cobo_waas2
  from cobo_waas2.models.list_swap_activities200_response import (
      ListSwapActivities200Response,
  )
  from cobo_waas2.rest import ApiException
  from pprint import pprint

  # See configuration.py for a list of all supported configurations.
  configuration = cobo_waas2.Configuration(
      # Replace `<YOUR_PRIVATE_KEY>` with your private key
      api_private_key="<YOUR_PRIVATE_KEY>",
      # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
      host="https://api.dev.cobo.com/v2",
  )
  # Enter a context with an instance of the API client
  with cobo_waas2.ApiClient(configuration) as api_client:
      # Create an instance of the API class
      api_instance = cobo_waas2.SwapsApi(api_client)
      status = "Success"
      min_updated_timestamp = 1635744000000
      max_updated_timestamp = 1635744000000
      initiator = "steve@example.com"
      limit = 10
      before = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1"
      after = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk"
      sort_by = ""
      direction = ""

      try:
          # List Swap Activities
          api_response = api_instance.list_swap_activities(
              status=status,
              min_updated_timestamp=min_updated_timestamp,
              max_updated_timestamp=max_updated_timestamp,
              initiator=initiator,
              limit=limit,
              before=before,
              after=after,
              sort_by=sort_by,
              direction=direction,
          )
          print("The response of SwapsApi->list_swap_activities:\n")
          pprint(api_response)
      except Exception as e:
          print("Exception when calling SwapsApi->list_swap_activities: %s\n" % e)

  ```

  ```java Java theme={null}
  // Import classes:
  import com.cobo.waas2.ApiClient;
  import com.cobo.waas2.ApiException;
  import com.cobo.waas2.Configuration;
  import com.cobo.waas2.Env;
  import com.cobo.waas2.api.SwapsApi;
  import com.cobo.waas2.model.*;

  public class Example {
    public static void main(String[] args) {
      ApiClient defaultClient = Configuration.getDefaultApiClient();
      // Select the development environment. To use the production environment, replace `Env.DEV` with
      // `Env.PROD
      defaultClient.setEnv(Env.DEV);

      // Replace `<YOUR_PRIVATE_KEY>` with your private key
      defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
      SwapsApi apiInstance = new SwapsApi();
      String status = "Success";
      Long minUpdatedTimestamp = 1635744000000L;
      Long maxUpdatedTimestamp = 1635744000000L;
      String initiator = "steve@example.com";
      Integer limit = 10;
      String before = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1";
      String after = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk";
      String sortBy = "";
      String direction = "ASC";
      try {
        ListSwapActivities200Response result =
            apiInstance.listSwapActivities(
                status,
                minUpdatedTimestamp,
                maxUpdatedTimestamp,
                initiator,
                limit,
                before,
                after,
                sortBy,
                direction);
        System.out.println(result);
      } catch (ApiException e) {
        System.err.println("Exception when calling SwapsApi#listSwapActivities");
        System.err.println("Status code: " + e.getCode());
        System.err.println("Reason: " + e.getResponseBody());
        System.err.println("Response headers: " + e.getResponseHeaders());
        e.printStackTrace();
      }
    }
  }

  ```

  ```go Go theme={null}
  package main

  import (
  	"context"
  	"fmt"
  	coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
  	"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
  	"os"
  )

  func main() {
  	status := "Success"
  	minUpdatedTimestamp := int64(1635744000000)
  	maxUpdatedTimestamp := int64(1635744000000)
  	initiator := "steve@example.com"
  	limit := int32(10)
  	before := "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1"
  	after := "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk"
  	sortBy := "timestamp"
  	direction := "ASC"

  	configuration := coboWaas2.NewConfiguration()
  	// Initialize the API client
  	apiClient := coboWaas2.NewAPIClient(configuration)
  	ctx := context.Background()

  	// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
  	ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
  	// Replace `<YOUR_PRIVATE_KEY>` with your private key
  	ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
  		Secret: "<YOUR_PRIVATE_KEY>",
  	})
  	resp, r, err := apiClient.SwapsAPI.ListSwapActivities(ctx).Status(status).MinUpdatedTimestamp(minUpdatedTimestamp).MaxUpdatedTimestamp(maxUpdatedTimestamp).Initiator(initiator).Limit(limit).Before(before).After(after).SortBy(sortBy).Direction(direction).Execute()
  	if err != nil {
  		fmt.Fprintf(os.Stderr, "Error when calling `SwapsAPI.ListSwapActivities``: %v\n", err)
  		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
  	}
  	// response from `ListSwapActivities`: ListSwapActivities200Response
  	fmt.Fprintf(os.Stdout, "Response from `SwapsAPI.ListSwapActivities`: %v\n", resp)
  }

  ```

  ```javascript JavaScript theme={null}
  const CoboWaas2 = require("@cobo/cobo-waas2");
  // Initialize the API client
  const apiClient = CoboWaas2.ApiClient.instance;
  // Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
  apiClient.setEnv(CoboWaas2.Env.DEV);
  // Replace `<YOUR_PRIVATE_KEY>` with your private key
  apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
  // Call the API
  const apiInstance = new CoboWaas2.SwapsApi();
  const opts = {
    status: "Success",
    min_updated_timestamp: 1635744000000,
    max_updated_timestamp: 1635744000000,
    initiator: "steve@example.com",
    limit: 10,
    before: "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1",
    after: "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk",
    sort_by: "timestamp",
    direction: "ASC",
  };
  apiInstance.listSwapActivities(opts).then(
    (data) => {
      console.log("API called successfully. Returned data: " + data);
    },
    (error) => {
      console.error(error);
    },
  );

  ```
</RequestExample>

<RequestExample>
  ```python Python theme={null}
  import cobo_waas2
  from cobo_waas2.models.list_swap_activities200_response import (
      ListSwapActivities200Response,
  )
  from cobo_waas2.models.swap_activity_status import SwapActivityStatus
  from cobo_waas2.models.swap_type import SwapType
  from cobo_waas2.rest import ApiException
  from pprint import pprint

  # See configuration.py for a list of all supported configurations.
  configuration = cobo_waas2.Configuration(
      # Replace `<YOUR_PRIVATE_KEY>` with your private key
      api_private_key="<YOUR_PRIVATE_KEY>",
      # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
      host="https://api.dev.cobo.com/v2",
  )
  # Enter a context with an instance of the API client
  with cobo_waas2.ApiClient(configuration) as api_client:
      # Create an instance of the API class
      api_instance = cobo_waas2.SwapsApi(api_client)
      request_id = "web_send_by_user_327_1610444045047"
      type = cobo_waas2.SwapType()
      status = cobo_waas2.SwapActivityStatus()
      min_updated_timestamp = 1635744000000
      max_updated_timestamp = 1635744000000
      initiator = "steve@example.com"
      limit = 10
      before = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1"
      after = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk"
      sort_by = "created_timestamp"
      direction = "ASC"

      try:
          # List swap activities
          api_response = api_instance.list_swap_activities(
              request_id=request_id,
              type=type,
              status=status,
              min_updated_timestamp=min_updated_timestamp,
              max_updated_timestamp=max_updated_timestamp,
              initiator=initiator,
              limit=limit,
              before=before,
              after=after,
              sort_by=sort_by,
              direction=direction,
          )
          print("The response of SwapsApi->list_swap_activities:\n")
          pprint(api_response)
      except Exception as e:
          print("Exception when calling SwapsApi->list_swap_activities: %s\n" % e)

  ```

  ```java Java theme={null}
  // Import classes:
  import com.cobo.waas2.ApiClient;
  import com.cobo.waas2.ApiException;
  import com.cobo.waas2.Configuration;
  import com.cobo.waas2.Env;
  import com.cobo.waas2.api.SwapsApi;
  import com.cobo.waas2.model.*;

  public class Example {
    public static void main(String[] args) {
      ApiClient defaultClient = Configuration.getDefaultApiClient();
      // Select the development environment. To use the production environment, replace `Env.DEV` with
      // `Env.PROD
      defaultClient.setEnv(Env.DEV);

      // Replace `<YOUR_PRIVATE_KEY>` with your private key
      defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
      SwapsApi apiInstance = new SwapsApi();
      String requestId = "web_send_by_user_327_1610444045047";
      SwapType type = SwapType.fromValue("Bridge");
      SwapActivityStatus status = SwapActivityStatus.fromValue("Success");
      Long minUpdatedTimestamp = 1635744000000L;
      Long maxUpdatedTimestamp = 1635744000000L;
      String initiator = "steve@example.com";
      Integer limit = 10;
      String before = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1";
      String after = "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk";
      String sortBy = "created_timestamp";
      String direction = "ASC";
      try {
        ListSwapActivities200Response result =
            apiInstance.listSwapActivities(
                requestId,
                type,
                status,
                minUpdatedTimestamp,
                maxUpdatedTimestamp,
                initiator,
                limit,
                before,
                after,
                sortBy,
                direction);
        System.out.println(result);
      } catch (ApiException e) {
        System.err.println("Exception when calling SwapsApi#listSwapActivities");
        System.err.println("Status code: " + e.getCode());
        System.err.println("Reason: " + e.getResponseBody());
        System.err.println("Response headers: " + e.getResponseHeaders());
        e.printStackTrace();
      }
    }
  }

  ```

  ```go Go theme={null}
  package main

  import (
  	"context"
  	"fmt"
  	coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
  	"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
  	"os"
  )

  func main() {
  	requestId := "web_send_by_user_327_1610444045047"
  	type_ := coboWaas2.SwapType("Bridge")
  	status := coboWaas2.SwapActivityStatus("Success")
  	minUpdatedTimestamp := int64(1635744000000)
  	maxUpdatedTimestamp := int64(1635744000000)
  	initiator := "steve@example.com"
  	limit := int32(10)
  	before := "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1"
  	after := "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk"
  	sortBy := "created_timestamp"
  	direction := "ASC"

  	configuration := coboWaas2.NewConfiguration()
  	// Initialize the API client
  	apiClient := coboWaas2.NewAPIClient(configuration)
  	ctx := context.Background()

  	// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
  	ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
  	// Replace `<YOUR_PRIVATE_KEY>` with your private key
  	ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
  		Secret: "<YOUR_PRIVATE_KEY>",
  	})
  	resp, r, err := apiClient.SwapsAPI.ListSwapActivities(ctx).
  		RequestId(requestId).
  		Type_(type_).
  		Status(status).
  		MinUpdatedTimestamp(minUpdatedTimestamp).
  		MaxUpdatedTimestamp(maxUpdatedTimestamp).
  		Initiator(initiator).
  		Limit(limit).
  		Before(before).
  		After(after).
  		SortBy(sortBy).
  		Direction(direction).
  		Execute()
  	if err != nil {
  		fmt.Fprintf(os.Stderr, "Error when calling `SwapsAPI.ListSwapActivities``: %v\n", err)
  		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
  	}
  	// response from `ListSwapActivities`: ListSwapActivities200Response
  	fmt.Fprintf(os.Stdout, "Response from `SwapsAPI.ListSwapActivities`: %v\n", resp)
  }

  ```

  ```javascript JavaScript theme={null}
  const CoboWaas2 = require("@cobo/cobo-waas2");
  // Initialize the API client
  const apiClient = CoboWaas2.ApiClient.instance;
  // Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
  apiClient.setEnv(CoboWaas2.Env.DEV);
  // Replace `<YOUR_PRIVATE_KEY>` with your private key
  apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
  // Call the API
  const apiInstance = new CoboWaas2.SwapsApi();
  const opts = {
    request_id: "web_send_by_user_327_1610444045047",
    type: new CoboWaas2.SwapType(),
    status: new CoboWaas2.SwapActivityStatus(),
    min_updated_timestamp: 1635744000000,
    max_updated_timestamp: 1635744000000,
    initiator: "steve@example.com",
    limit: 10,
    before: "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1",
    after: "RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk",
    sort_by: "created_timestamp",
    direction: "ASC",
  };
  apiInstance.listSwapActivities(opts).then(
    (data) => {
      console.log("API called successfully. Returned data: " + data);
    },
    (error) => {
      console.error(error);
    },
  );

  ```
</RequestExample>


## OpenAPI

````yaml get /swaps/activities
openapi: 3.0.3
info:
  title: Cobo Wallet as a Service 2.0
  description: >
    The Cobo Wallet-as-a-Service (WaaS) 2.0 API is the latest version of Cobo's
    WaaS API offering. It enables you to access Cobo's full suite of crypto
    wallet technologies with powerful and flexible access controls. By
    encapsulating complex security protocols and streamlining blockchain
    interactions, this API allows you to concentrate on your core business
    activities without worrying about the safety of your assets. The WaaS 2.0
    API presents the following key features:


    - A unified API for Cobo's [all four wallet
    types](https://manuals.cobo.com/en/portal/introduction#an-all-in-one-wallet-platform)

    - Support for 80+ chains and 3000+ tokens

    - A comprehensive selection of webhook events

    - Flexible usage models for MPC Wallets, including [Organization-Controlled
    Wallets](https://manuals.cobo.com/en/portal/mpc-wallets/ocw/introduction)
    and [User-Controlled
    Wallets](https://manuals.cobo.com/en/portal/mpc-wallets/ucw/introduction)

    - Programmatic control of smart contract wallets such as Safe{Wallet} with
    fine-grained access controls

    - Seamlessly transfer funds across multiple exchanges, including Binance,
    OKX, Bybit, Deribit, and more


    For more information about the WaaS 2.0 API, see [Introduction to WaaS
    2.0](https://www.cobo.com/developers/v2/guides/overview/introduction).
  termsOfService: https://cobo.com/waas/tos/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    name: Cobo WaaS
    url: https://www.cobo.com/waas
    email: help@cobo.com
  version: 1.0.0
servers:
  - url: https://api.dev.cobo.com/v2
    description: Development environment
  - url: https://api.cobo.com/v2
    description: Production environment
security:
  - CoboAuth: []
tags:
  - name: Organizations
    description: Operations related to Organizations.
  - name: Wallets
    description: Operations related to all wallets.
  - name: Wallets - MPC Wallets
    description: Operations related to mpc wallet.
  - name: Wallets - Exchange Wallet
    description: Operations related to exchange wallet.
  - name: Wallets - Smart Contract Wallets
    description: Operations related to smart contract wallet.
  - name: Transactions
    description: Operations related to all transactions.
  - name: Developers - Webhooks
    description: Operations related to webhooks.
  - name: Stakings
    description: Operations related to staking.
  - name: OAuth
    description: Operations related to OAuth.
  - name: Developers
    description: Operations related to developers.
  - name: AddressBooks
    description: Operations related to address books.
  - name: TravelRule
    description: Operations related to travel rule.
  - name: GraphQL
    description: Operations related to executing GraphQL queries and mutations.
  - name: PrimeBroker
    description: Operations related to prime broker.
  - name: AppWorkflows
    description: Operations related to app workflow.
  - name: FeeStation
    description: Operations related to fee station.
  - name: Payment
    description: Operations related to payment.
  - name: Batch Payouts
    description: Operations related to batch payouts.
  - name: Tokenization
    description: Operations related to tokenization.
  - name: AutoSweep
    description: Operations related to auto sweep.
  - name: Compliance
    description: Operations related to compliance.
paths:
  /swaps/activities:
    get:
      tags:
        - Swaps
      summary: List swap activities
      description: >
        This operation retrieves a list of swap activities. You can filter the
        results by swap type, status, initiator, and time range.
      operationId: list_swap_activities
      parameters:
        - $ref: '#/components/parameters/optionalRequestIdParam'
        - $ref: '#/components/parameters/swapTypeOptionalParam'
        - $ref: '#/components/parameters/swapActivityStatusOptionalParam'
        - $ref: '#/components/parameters/swapActivityMinUpdatedTimestampOptionalParam'
        - $ref: '#/components/parameters/swapActivityMaxUpdatedTimestampOptionalParam'
        - $ref: '#/components/parameters/initiatorOptionalParam'
        - $ref: '#/components/parameters/limitParam'
        - $ref: '#/components/parameters/beforeParam'
        - $ref: '#/components/parameters/afterParam'
        - $ref: '#/components/parameters/swapActivitySortByParam'
        - $ref: '#/components/parameters/directionParam'
      responses:
        '200':
          $ref: '#/components/responses/listSwapActivitiesResponse'
        4XX:
          $ref: '#/components/responses/badRequestError'
        5XX:
          $ref: '#/components/responses/internalServerError'
components:
  parameters:
    optionalRequestIdParam:
      name: request_id
      in: query
      required: false
      description: >-
        The request ID that is used to track a transaction request. The request
        ID is provided by you and must be unique within your organization.
      schema:
        type: string
      example: web_send_by_user_327_1610444045047
    swapTypeOptionalParam:
      name: type
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/SwapType'
      example: Bridge
    swapActivityStatusOptionalParam:
      name: status
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/SwapActivityStatus'
      example: Success
    swapActivityMinUpdatedTimestampOptionalParam:
      name: min_updated_timestamp
      in: query
      required: false
      description: >-
        The start time of the query. All swap activities updated after the
        specified time will be retrieved. The time is in Unix timestamp format,
        measured in milliseconds.
      schema:
        type: integer
        format: int64
      example: 1635744000000
    swapActivityMaxUpdatedTimestampOptionalParam:
      name: max_updated_timestamp
      in: query
      required: false
      description: >-
        The end time of the query. All swap activities updated before the
        specified time will be retrieved. The time is in Unix timestamp format,
        measured in milliseconds.
      schema:
        type: integer
        format: int64
      example: 1635744000000
    initiatorOptionalParam:
      name: initiator
      in: query
      required: false
      description: >-
        The initiator of the swap activity. It is optional when creating the
        activity and defaults to your API key if not specified.
      schema:
        type: string
      example: steve@example.com
    limitParam:
      name: limit
      in: query
      description: >-
        The maximum number of objects to return. For most operations, the value
        range is [1, 50].
      required: false
      schema:
        type: integer
        format: int32
        default: 10
      example: 10
    beforeParam:
      name: before
      in: query
      description: >
        A cursor indicating the position before the current page. This value is
        generated by Cobo and returned in the response. If you are paginating
        forward from the beginning, you do not need to provide it on the first
        request. When paginating backward (to the previous page), you should
        pass the before value returned from the last response.
      required: false
      schema:
        type: string
      example: RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1
    afterParam:
      name: after
      in: query
      description: >
        A cursor indicating the position after the current page. This value is
        generated by Cobo and returned in the response. You do not need to
        provide it on the first request. When paginating forward (to the next
        page), you should pass the after value returned from the last response.
      required: false
      schema:
        type: string
      example: RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk
    swapActivitySortByParam:
      name: sort_by
      in: query
      description: |
        The field to sort the results by. 

        Possible values include:
        - `created_timestamp`: Sort by the time when the data was created.
        - `updated_timestamp`: Sort by the time when the data was last updated.
      required: false
      schema:
        type: string
        enum:
          - created_timestamp
          - updated_timestamp
      example: created_timestamp
    directionParam:
      name: direction
      in: query
      description: |
        The sort direction. Possible values include:
          - `ASC`: Sort the results in ascending order.
          - `DESC`: Sort the results in descending order.
      required: false
      schema:
        type: string
        enum:
          - ASC
          - DESC
        default: ASC
      example: ASC
  responses:
    listSwapActivitiesResponse:
      description: A list of swap activities successfully retrieved.
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                items:
                  $ref: '#/components/schemas/SwapActivity'
                type: array
              pagination:
                $ref: '#/components/schemas/Pagination'
    badRequestError:
      description: >-
        Bad request. Your request contains malformed syntax or invalid
        parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    internalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    SwapType:
      type: string
      enum:
        - Bridge
        - Exchange
      example: Bridge
      description: >
        The type of the swap activity. Possible values include:

        - `Bridge`: The activity involves bridging tokens across chains.

        - `Exchange`: The activity involves token-to-token exchange (a swap
        within the same chain).
    SwapActivityStatus:
      type: string
      enum:
        - Success
        - Processing
        - Failed
      example: Success
      description: |
        The status of the swap activity. Possible values include:
        - `Success`: The activity completed successfully.
        - `Processing`: The activity is being processed.
        - `Failed`: The activity failed.
    SwapActivity:
      type: object
      properties:
        activity_id:
          type: string
          format: uuid
          description: The unique identifier of the swap activity.
          example: 123e4567-e89b-12d3-a456-426614174000
        swap_type:
          $ref: '#/components/schemas/SwapType'
        status:
          $ref: '#/components/schemas/SwapActivityStatus'
        request_id:
          type: string
          description: The request ID of the swap transaction.
          example: 123e4567-e89b-12d3-a456-426614174000
        wallet_id:
          type: string
          format: uuid
          description: The ID of the wallet used to pay.
          example: 123e4567-e89b-12d3-a456-426614174001
        pay_token_id:
          type: string
          description: The ID of the token to pay.
          example: BTC
        receive_token_id:
          type: string
          description: The ID of the token to receive.
          example: ETH_WBTC
        pay_amount:
          type: string
          description: The amount of the token to pay.
          example: '100'
        receive_amount:
          type: string
          description: The amount of the token to receive.
          example: '100'
        fee_token_id:
          type: string
          description: The ID of the token used for paying the service fee.
          example: BTC
        fee_amount:
          type: string
          description: The amount of the service fee.
          example: '0.3'
        initiator:
          type: string
          nullable: true
          description: The initiator of the swap activity.
          example: John Doe
        initiator_type:
          $ref: '#/components/schemas/TransactionInitiatorType'
        description:
          type: string
          description: The description of the swap activity.
          example: This is a description of the swap activity.
        created_timestamp:
          type: integer
          format: int64
          description: >-
            The time when the swap activity was created, in Unix timestamp
            format, measured in milliseconds.
          example: 1677587333000
        updated_timestamp:
          type: integer
          format: int64
          description: >-
            The time when the swap activity was last updated, in Unix timestamp
            format, measured in milliseconds.
          example: 1677587393000
        network_fee:
          $ref: '#/components/schemas/TransactionRequestFee'
        destination_address:
          type: string
          description: >-
            The address of an MPC Wallet or Custodial Wallet (Web3 Wallet) that
            receives the swapped or bridged assets.
          example: 19AR6YWEGbSoY8UT9Ksy9WrmrZPD5sL4Ku
    Pagination:
      type: object
      description: The pagination information of the returned data.
      required:
        - before
        - after
        - total_count
      properties:
        before:
          type: string
          example: RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGmk1
          description: >
            An object ID used to retrieve records before the specified object,
            indicating earlier or smaller records relative to the current
            dataset. You can use it to paginate backwards. 


            If empty, it means you have reached the start of the data.  


            Most API endpoints sort by object ID, but some use other fields
            depending on the endpoint.
        after:
          type: string
          example: RqeEoTkgKG5rpzqYzg2Hd3szmPoj2cE7w5jWwShz3C1vyGSAk
          description: >
            An object ID used to retrieve records after the specified object,
            indicating newer or larger records relative to the current dataset.
            You can use it to paginate forwards.  


            If empty, it means you have reached the end of the data.  


            Most API endpoints sort by object ID, but some use other fields
            depending on the endpoint.
        total_count:
          type: integer
          example: 10000
          description: >-
            The total number of records that match the query criteria,
            unaffected by the pagination parameters (`before` , `after`, and
            `limit`).
    ErrorResponse:
      type: object
      description: The response of a failed request.
      required:
        - error_code
        - error_message
        - error_id
      properties:
        error_code:
          type: integer
          description: >-
            The error code. Refer to [Error codes and status
            codes](https://www.cobo.com/developers/v2/api-references/error-codes)
            for more details.
        error_message:
          type: string
          description: The error description.
        error_id:
          type: string
          description: >-
            The error log ID. You can provide the error ID when submitting a
            ticket to help Cobo to locate the issue.
          example: 0b6ddf19083c4bd1a9ca01bec44b24dd
    TransactionInitiatorType:
      type: string
      enum:
        - API
        - Web
        - App
        - External
      example: API
      description: |
        The transaction initiator type. Possible values include:
          - `API`: An API initiator, who initiates the transaction by using the WaaS API.
          - `Web`: An web initiator, who initiates the transaction from Cobo Portal.
          - `App`: An App initiator, who initiates the transaction from Cobo Portal Apps.
          - `External`: An external initiator, who initiates the transaction outside Cobo.
    TransactionRequestFee:
      oneOf:
        - $ref: '#/components/schemas/TransactionRequestFixedFee'
        - $ref: '#/components/schemas/TransactionRequestEvmEip1559Fee'
        - $ref: '#/components/schemas/TransactionRequestEvmLegacyFee'
        - $ref: '#/components/schemas/TransactionRequestUtxoFee'
        - $ref: '#/components/schemas/TransactionRequestSOLFee'
        - $ref: '#/components/schemas/TransactionRequestFILFee'
      discriminator:
        propertyName: fee_type
        mapping:
          Fixed:
            $ref: '#/components/schemas/TransactionRequestFixedFee'
          EVM_EIP_1559:
            $ref: '#/components/schemas/TransactionRequestEvmEip1559Fee'
          EVM_Legacy:
            $ref: '#/components/schemas/TransactionRequestEvmLegacyFee'
          UTXO:
            $ref: '#/components/schemas/TransactionRequestUtxoFee'
          SOL:
            $ref: '#/components/schemas/TransactionRequestSOLFee'
          FIL:
            $ref: '#/components/schemas/TransactionRequestFILFee'
    TransactionRequestFixedFee:
      type: object
      description: >
        The preset properties to limit transaction fee.


        In the fixed fee model, the transaction fee is a fixed amount within a
        certain amount of period regardless of the transaction size or network
        congestion, which can vary between different chains. For more
        information about the fixed fee model, refer to [Fee
        models](https://www.cobo.com/developers/v2/guides/transactions/estimate-fees#fee-models).


        You can specify the maximum fee amount to limit the transaction fee. The
        transaction will fail if the transaction fee exceeds the specified
        maximum fee amount.


        Switch between the tabs to display the properties for different
        transaction fee models.
      title: Fixed
      required:
        - fee_type
        - token_id
      allOf:
        - type: object
          properties:
            fee_type:
              $ref: '#/components/schemas/FeeType'
            token_id:
              type: string
              description: The token used to pay the transaction fee.
              example: TRON
        - $ref: '#/components/schemas/MaxFeeAmount'
    TransactionRequestEvmEip1559Fee:
      type: object
      description: >
        The preset properties to limit transaction fee.


        For more information about the EIP-1559 fee model, refer to [Fee
        models](https://www.cobo.com/developers/v2/guides/transactions/estimate-fees#fee-models).


        You can specify the maximum gas fee per gas unit, maximum priority fee
        per gas unit, and the gas limit to limit the gas price, priority fee per
        gas unit, gas units used in the transaction. 


        Switch between the tabs to display the properties for different
        transaction fee models.
      title: EVM_EIP_1559
      required:
        - fee_type
        - token_id
        - max_fee_per_gas
        - max_priority_fee_per_gas
      allOf:
        - type: object
          properties:
            fee_type:
              $ref: '#/components/schemas/FeeType'
            token_id:
              type: string
              description: The token used to pay the transaction fee.
              example: ETH
            gas_limit:
              type: string
              description: >-
                The gas limit. It represents the maximum number of gas units
                that you are willing to pay for the execution of a transaction
                or Ethereum Virtual Machine (EVM) operation. The gas unit cost
                of each operation varies.
              example: '21000'
        - $ref: '#/components/schemas/EvmEip1559FeeBasePrice'
    TransactionRequestEvmLegacyFee:
      type: object
      description: >
        The preset properties to limit transaction fee.


        For more information about the Legacy fee model, refer to [Fee
        models](https://www.cobo.com/developers/v2/guides/transactions/estimate-fees#fee-models).


        You can specify the gas limit to limit the gas units used in the
        transaction.


        Switch between the tabs to display the properties for different
        transaction fee models.
      required:
        - fee_type
        - token_id
        - gas_price
      title: EVM_Legacy
      allOf:
        - type: object
          properties:
            fee_type:
              $ref: '#/components/schemas/FeeType'
            token_id:
              type: string
              description: The token used to pay the transaction fee.
              example: ETH
            gas_limit:
              type: string
              description: >-
                The gas limit. It represents the maximum number of gas units
                that you are willing to pay for the execution of a transaction
                or Ethereum Virtual Machine (EVM) operation. The gas unit cost
                of each operation varies.
              example: '21000'
        - $ref: '#/components/schemas/EvmLegacyFeeBasePrice'
    TransactionRequestUtxoFee:
      type: object
      description: >
        The preset properties to limit transaction fee.


        For more information about the UTXO fee model, see [Fee
        models](https://www.cobo.com/developers/v2/guides/transactions/estimate-fees#fee-models).


        You can specify the maximum fee amount to limit the transaction fee. The
        transaction will fail if the transaction fee exceeds the specified
        maximum fee amount.


        Switch between the tabs to display the properties for different
        transaction fee models.
      required:
        - fee_type
        - token_id
      title: UTXO
      allOf:
        - type: object
          properties:
            fee_type:
              $ref: '#/components/schemas/FeeType'
            token_id:
              type: string
              description: The token used to pay the transaction fee.
              example: BTC
            max_fee_amount:
              type: string
              description: >-
                The maximum fee that you are willing to pay for the transaction.
                Provide the value without applying precision. The transaction
                will fail if the transaction fee exceeds the maximum fee.
              example: '0.1'
        - $ref: '#/components/schemas/UtxoFeeBasePrice'
    TransactionRequestSOLFee:
      type: object
      description: >
        The preset properties to limit transaction fee.


        For more information about the SOL fee model, see [Fee
        models](https://www.cobo.com/developers/v2/guides/transactions/estimate-fees#fee-models).


        You can specify CU price and CU limit to adjust the priority and
        resource allocation of your transaction.


        Switch between the tabs to display the properties for different
        transaction fee models.
      title: SOL
      required:
        - fee_type
        - token_id
        - compute_unit_price
        - compute_unit_limit
      allOf:
        - type: object
          properties:
            fee_type:
              $ref: '#/components/schemas/FeeType'
            token_id:
              type: string
              description: The token used to pay the transaction fee.
              example: ETH
        - $ref: '#/components/schemas/SOLComputeUnit'
    TransactionRequestFILFee:
      type: object
      description: >
        The preset properties to limit transaction fee.


        For more information about the FIL fee model, see [Fee
        models](https://www.cobo.com/developers/v2/guides/transactions/estimate-fees#fee-models).


        You can specify the gas fee cap, gas premium, and gas limit to control
        fee behavior and prioritization.


        Switch between the tabs to display the properties for different
        transaction fee models.
      title: FIL
      required:
        - fee_type
        - token_id
        - gas_fee_cap
        - gas_premium
      allOf:
        - type: object
          properties:
            fee_type:
              $ref: '#/components/schemas/FeeType'
            token_id:
              type: string
              description: The token used to pay the transaction fee.
              example: ETH
        - $ref: '#/components/schemas/FILPrice'
    FeeType:
      type: string
      enum:
        - Fixed
        - EVM_EIP_1559
        - EVM_Legacy
        - UTXO
        - SOL
        - FIL
      example: EVM_EIP_1559
      default: EVM_EIP_1559
      description: >
        The fee model. Possible values include:

        - `Fixed`: The fixed fee model. 

        - `EVM_EIP_1559`: The EIP-1559 fee model.

        - `EVM_Legacy`: The legacy fee model.

        - `UTXO`: The fee model used in UTXO-based blockchains, such as Bitcoin.

        - `SOL`: The fee model used in Solana.

        - `FIL`: The fee model used in Filecoin.



        Each fee model requires a different set of properties. Switch between
        the above tabs for details.


        To learn more about the fee models, refer to [Fee
        models](https://www.cobo.com/developers/v2/guides/transactions/estimate-fees#fee-models).
    MaxFeeAmount:
      type: object
      properties:
        max_fee_amount:
          type: string
          description: >-
            The maximum fee that you are willing to pay for the transaction.
            Provide the value without applying precision. The transaction will
            fail if the transaction fee exceeds the maximum fee.
          example: '0.1'
    EvmEip1559FeeBasePrice:
      type: object
      properties:
        max_fee_per_gas:
          type: string
          description: The maximum gas fee per gas unit used on the chain, in wei.
          example: '9000000000000'
        max_priority_fee_per_gas:
          type: string
          description: >-
            The maximum priority fee per gas unit used, in wei. The maximum
            priority fee represents the highest amount of miner tips that you
            are willing to pay for your transaction.
          example: '1000000000000'
    EvmLegacyFeeBasePrice:
      type: object
      properties:
        gas_price:
          type: string
          description: >-
            The gas price, in wei. The gas price represents the amount of ETH
            that must be paid to validators for processing transactions per gas
            unit used.
          example: '100000000'
    UtxoFeeBasePrice:
      type: object
      properties:
        fee_rate:
          type: string
          description: >-
            The fee rate in sat/vByte. The fee rate represents the satoshis you
            are willing to pay for each byte of data that your transaction will
            consume on the blockchain.
          example: '50'
    SOLComputeUnit:
      type: object
      properties:
        compute_unit_price:
          type: string
          description: >-
            The price paid per compute unit. This value determines the priority
            fee for the transaction, allowing you to increase inclusion
            probability in congested conditions.
          example: '0.0001'
        compute_unit_limit:
          type: string
          description: >-
            The maximum number of compute units your transaction is allowed to
            consume. It sets an upper bound on computational resource usage to
            prevent overload.
          example: '200000'
    FILPrice:
      type: object
      properties:
        gas_premium:
          type: string
          description: >-
            An optional tip you can include to prioritize your transaction. The
            gas premium incentivizes miners to include your transaction sooner
            than those offering only the base fee.
          example: '0.0001'
        gas_fee_cap:
          type: string
          description: The maximum gas price you are willing to pay per unit of gas.
          example: '0.00035'
        gas_limit:
          type: string
          description: The maximum amount of gas your transaction is allowed to consume.
          example: '500'
  securitySchemes:
    CoboAuth:
      type: apiKey
      in: header
      name: BIZ-API-KEY
      description: >
        The API key. For more details, refer to [API
        key](https://www.cobo.com/developers/v2/guides/overview/cobo-auth#api-key).


        In the API playground, enter your [API
        secret](https://www.cobo.com/developers/v2/guides/overview/cobo-auth#api-secret),
        and your API key will be accordingly calculated.

````