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

# Request Withdrawal

> Prepare or execute a user-triggered withdrawal from the Relay Depository

[How do programmatic withdrawals work?](/references/protocol/guides/withdrawals)

<Note>
  Call this endpoint twice per withdrawal: first without `signature` to prepare (returns the `nonce`, validated `amount`, and any `additionalData` to sign), then with the `nonce` and owner `signature` to execute (returns a `jobId`). `chainId` and `ownerChainId` are protocol chain slugs, not numeric ids. These endpoints power [relay.link/withdraw](https://relay.link/withdraw) and are not yet a versioned API surface.
</Note>


## OpenAPI

````yaml post /withdrawals/request
openapi: 3.0.3
info:
  title: Cross-chain solver
  version: 1.0.0
servers:
  - url: https://api.relay.link
    description: Mainnet API
  - url: https://api.testnets.relay.link
    description: Testnet API
security: []
paths:
  /withdrawals/request:
    post:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - chainId
                - currency
                - amount
                - ownerChainId
                - owner
                - recipient
              properties:
                chainId:
                  type: string
                  minLength: 1
                currency:
                  type: string
                  minLength: 1
                amount:
                  type: string
                  pattern: ^[0-9]+$
                ownerChainId:
                  type: string
                  minLength: 1
                owner:
                  type: string
                  minLength: 1
                recipient:
                  type: string
                  minLength: 1
                nonce:
                  type: string
                additionalData: {}
                signature:
                  type: string
        required: true
      responses:
        '200':
          description: Default Response

````