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

# Retry broadcasting a failed transaction

> Retries broadcasting a transaction that previously failed. Only failed transactions can be retried. Only transactions belonging to the integrator can be retried.



## OpenAPI

````yaml /api-reference/openapi.json post /transactions/broadcast/{transactionId}/retry
openapi: 3.0.0
info:
  title: Relayer
  description: >-
    Relayer API — Kit-based crypto infrastructure for OTC exchange, wallet
    signing, payouts, and widget actions.
  version: '1.0'
  contact: {}
servers:
  - url: https://testnet.relayer.fi/v1
    description: Sandbox (testnet wallets, no real fiat)
  - url: https://api.relayer.fi/v1
    description: Production (mainnet wallets, regulated fiat rails)
security:
  - api-key: []
tags:
  - name: 'Action: Builders'
    description: Transaction metadata builders
  - name: 'Action: Directory'
    description: Widget directory
  - name: 'Action: Execute'
  - name: 'Action: Tokens'
    description: Token lists per chain/protocol
  - name: Addresses
  - name: Agents
  - name: App
    description: Application endpoints
  - name: 'Payout: Accounts'
    description: Payment execution
  - name: 'Payout: Off-ramp'
  - name: 'Payout: On-ramp'
  - name: 'Payout: Orders'
  - name: 'Payout: Recipients'
    description: Beneficiary management
  - name: Signing - Passkeys
  - name: Signing - Recovery
  - name: Signing Approvals
    description: Transaction signing approvals
  - name: Signing Policies
    description: Signing policy management
  - name: Transactions
    description: Transaction signing and broadcasting
  - name: Wallets
    description: Wallet and address management
paths:
  /transactions/broadcast/{transactionId}/retry:
    post:
      tags:
        - Transactions
      summary: Retry broadcasting a failed transaction
      description: >-
        Retries broadcasting a transaction that previously failed. Only failed
        transactions can be retried. Only transactions belonging to the
        integrator can be retried.
      operationId: TransactionsController_retryBroadcast
      parameters:
        - name: transactionId
          required: true
          in: path
          description: Transaction ID
          schema:
            example: tx-uuid-abc123
            type: string
        - name: integratorId
          required: false
          in: query
          description: Integrator ID (required for ADMIN/INTERNAL scope)
          schema:
            example: uuid-integrator-id
            type: string
      requestBody:
        required: true
        description: Broadcast parameters
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BroadcastDto'
      responses:
        '200':
          description: Transaction broadcasted successfully
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseDto'
                  - properties:
                      data:
                        $ref: '#/components/schemas/BroadcastResponseDto'
        '400':
          description: Bad Request - Transaction cannot be retried
        '403':
          description: Forbidden - Transaction does not belong to this integrator
        '404':
          description: Transaction not found
      security:
        - api-key: []
        - api-key: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: >-
            curl -X POST
            https://api.relayer.fi/v1/transactions/broadcast/$TRANSACTION_ID/retry
            \
              -H "Authorization: ApiKey $RELAYER_API_KEY"
        - lang: TypeScript
          label: Node.js
          source: >-
            // Retry a transaction that failed at chain submission (transient:
            insufficient

            // gas, mempool full, RPC hiccup). Re-broadcasts the existing signed
            tx — does

            // NOT re-sign or change anything else.

            const response = await fetch(
              `https://api.relayer.fi/v1/transactions/broadcast/${transactionId}/retry`,
              {
                method: "POST",
                headers: { Authorization: `ApiKey ${process.env.RELAYER_API_KEY}` },
              },
            );
components:
  schemas:
    BroadcastDto:
      type: object
      properties:
        rpcUrl:
          type: string
          description: RPC URL for broadcasting (optional, uses default if not provided)
          example: https://api.avax.network/ext/bc/C/rpc
    ApiResponseDto:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        data:
          type: object
        statusCode:
          type: number
        timestamp:
          type: string
        path:
          type: string
        traceId:
          type: string
      required:
        - success
        - message
        - statusCode
        - timestamp
    BroadcastResponseDto:
      type: object
      properties:
        transactionId:
          type: string
          description: Transaction ID
          example: tx-uuid-abc123
        txHash:
          type: string
          description: Transaction hash
          example: 0x789...
        status:
          type: string
          description: Status
          example: broadcasted
        broadcastedAt:
          type: string
          description: Broadcast timestamp
          example: '2024-01-01T12:10:00Z'
      required:
        - transactionId
        - txHash
        - status
        - broadcastedAt
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use this format: `ApiKey <your_api_key>`'

````