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

# Get Cross-Chain Swaps

> Retrieves cross-chain swaps detected within the requested timeframe. The timeframe between `from` and `to` must not exceed 30 minutes.



## OpenAPI

````yaml GET /v1/external/swaps
openapi: 3.0.1
info:
  title: ExternalAPI
  version: v1
servers:
  - url: https://api.pulsy.app
    description: XFlow Production API
security:
  - Basic: []
  - Bearer: []
paths:
  /v1/external/swaps:
    get:
      tags:
        - External
      description: >-
        Retrieves cross-chain swaps detected within the requested timeframe. The
        timeframe between `from` and `to` must not exceed 30 minutes.
      operationId: ExportSwaps
      parameters:
        - name: From
          in: query
          required: true
          schema:
            type: string
            format: date-time
        - name: To
          in: query
          required: true
          schema:
            type: string
            format: date-time
        - name: Filter
          in: query
          schema:
            enum:
              - Withdrawn
              - Deposited
              - Completed
              - Updated
            type: string
            default: Withdrawn
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TransactionSwapExported'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TransactionSwapExported'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TransactionSwapExported'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/DefaultValidationProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultValidationProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/DefaultValidationProblemDetails'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/DefaultProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/DefaultProblemDetails'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        default:
          description: Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/UnexpectedProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/UnexpectedProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/UnexpectedProblemDetails'
components:
  schemas:
    TransactionSwapExported:
      type: object
      properties:
        id:
          type: string
          description: Swap unique identifier.
          nullable: true
        timestamp:
          type: string
          description: Date and time when a swap was detected by XFlow.
          format: date-time
          deprecated: true
        depositedAt:
          type: string
          description: >-
            Date and time when a swap's deposit transaction was made on the
            inbound chain.
          format: date-time
        withdrawnAt:
          type: string
          description: >-
            Date and time when a swap's withdrawal transaction was made on the
            outbound chain.
          format: date-time
        detectedAt:
          type: string
          description: Date and time when a swap was detected by XFlow.
          format: date-time
        completedAt:
          type: string
          description: >-
            Date and time when a swap was completed by XFlow and became
            available in the external API.
          format: date-time
        updatedAt:
          type: string
          description: Date and time when a swap was updated by XFlow.
          format: date-time
        bridge:
          type: string
          description: Name of the bridge that processed the swap.
          nullable: true
        bridgeKey:
          type: string
          description: Key of the bridge that processed the swap.
          nullable: true
        sourceChain:
          type: string
          description: Chain on which the inbound transaction was submitted.
          nullable: true
        destinationChain:
          type: string
          description: Chain on which the outbound transaction was submitted.
          nullable: true
        sourceAccount:
          type: string
          description: Account that submitted the inbound transaction.
          nullable: true
        destinationAccount:
          type: string
          description: Account that received the outbound transaction.
          nullable: true
        sourceInteractedWith:
          type: string
          description: >-
            InteractedWith address in the inbound transaction (only for EVM
            chains).
          nullable: true
        protocolKey:
          type: string
          description: Key of the protocol that processed the swap.
          nullable: true
        sourceProtocolAddress:
          type: string
          description: >-
            Address of the protocol that emitted the swap in the inbound
            transaction.
          nullable: true
        destinationProtocolAddress:
          type: string
          description: >-
            Address of the protocol that finished the swap in the outbound
            transaction.
          nullable: true
        intermediateSwapId:
          type: string
          nullable: true
          deprecated: true
        sourceOtherProtocolAddresses:
          type: array
          items:
            type: string
          description: >-
            Other protocol addresses that emitted events tracked by XFlow to
            identify the swap in the inbound transaction.
          nullable: true
        destinationOtherProtocolAddresses:
          type: array
          items:
            type: string
          description: >-
            Other protocol addresses that emitted events tracked by XFlow to
            identify the swap in the outbound transaction.
          nullable: true
        sourceTransaction:
          type: string
          description: Inbound transaction hash.
          nullable: true
        destinationTransaction:
          type: string
          description: Outbound transaction hash.
          nullable: true
        sourceToken:
          type: string
          description: Inbound token on the source chain.
          nullable: true
        destinationToken:
          type: string
          description: Outbound token on the destination chain.
          nullable: true
        sourceTokenContract:
          type: string
          description: Inbound token contract address.
          nullable: true
        destinationTokenContract:
          type: string
          description: Outbound token contract address.
          nullable: true
        depositAmount:
          type: number
          description: Deposited amount in source tokens.
          format: double
          nullable: true
        withdrawnAmount:
          type: number
          description: Withdrawn amount in destination tokens.
          format: double
          nullable: true
        depositUsdAmount:
          type: number
          description: Deposited amount in USD equivalent.
          format: double
          nullable: true
        withdrawnUsdAmount:
          type: number
          description: Withdrawn amount in USD equivalent.
          format: double
          nullable: true
        usdMismatchStatus:
          enum:
            - Unprocessed
            - NotFound
            - MismatchDetected
            - OK
          type: string
          description: "Indicates whether deposited and withdrawn USD amounts are within an acceptable range:\r\n`Unprocessed` (amounts not processed yet);\r\n`NotFound` (USD rates were unavailable);\r\n`MismatchDetected` (difference between deposited and withdrawn USD is unusually high);\r\n`OK` (difference is within the acceptable range)."
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TagDto'
          description: "Optional field returning extra information for certain swaps. Currently defined tags:\r\n`thor-affiliate` for swaps through Thorswap;\r\n`nft` to indicate whether the transaction is an NFT deposit or withdrawal (`nft`: `deposit` or `nft`: `withdrawal`);\r\n`injective-nonce` for swaps through the Injective bridge to the Injective chain."
          nullable: true
      additionalProperties: false
    DefaultValidationProblemDetails:
      type: object
      properties:
        errorCode:
          type: string
          nullable: true
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          nullable: true
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    DefaultProblemDetails:
      type: object
      properties:
        errorCode:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    UnexpectedProblemDetails:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        traceId:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    TagDto:
      type: object
      properties:
        type:
          type: string
          nullable: true
        value:
          type: string
          nullable: true
      additionalProperties: false
  securitySchemes:
    Basic:
      type: http
      description: >-
        Basic auth required for external APIs. Example: "Authorization: Basic
        {base64EncodedPasswordString}"
      scheme: basic
    Bearer:
      type: apiKey
      description: >-
        JWT Authorization header using the Bearer scheme. Example:
        "Authorization: Bearer {token}"
      name: Authorization
      in: header

````