API reference · Withdrawals

List withdrawals

GET/v1/withdrawals

Bank and crypto withdrawals from every channel, newest first. from and to may be at most 366 days apart.

Rate-limit class
read
Authentication
Signed

Parameters

  • typestring (enum)queryoptional

    One of bank, crypto.

  • statusstring (enum)queryoptional

    awaiting_confirmation: a crypto withdrawal waiting for the link in the confirmation email; expired: that link was not used in time; pending: being processed; completed: sent; canceled; failed.

    One of awaiting_confirmation, expired, pending, completed, canceled, failed.

  • assetstringqueryoptional

    An upper-case asset symbol.

    Matches ^[A-Z0-9]{1,15}$. Example: BTC.

  • fromstring (date-time)queryoptional
  • tostring (date-time)queryoptional
  • limitintegerqueryoptional

    Page size, 1 to 100. Default 50.

    1 to 100.

  • cursorstringqueryoptional

    next_cursor from the previous page.

    Matches ^[A-Za-z0-9._~=+/-]{1,512}$.

Responses

200 OK

A page of withdrawals. application/json · WithdrawalList

  • dataarray of Withdrawal
    15 properties of each item
    • idstring

      Starts with wd_.

    • typestring (enum)

      One of bank, crypto.

    • statusstring (enum)

      awaiting_confirmation: a crypto withdrawal waiting for the link in the confirmation email; expired: that link was not used in time; pending: being processed; completed: sent; canceled; failed.

      One of awaiting_confirmation, expired, pending, completed, canceled, failed.

    • assetstring

      An upper-case asset symbol.

      Matches ^[A-Z0-9]{1,15}$.

    • networkstring | null

      Crypto only.

    • amountstring (decimal)

      Taken from the balance, fee included.

    • feestring (decimal)nullable

      The withdrawal fee in the asset; null when it isn't known yet.

    • addressstring | null

      Crypto only.

    • memostring | null
    • bank_accountstring | null

      Bank only.

    • tx_idstring | null

      The blockchain transaction id, once sent.

    • sourcestring (enum)

      Where the record was made: this API, the mobile app or the webapp.

      One of public_api, app, web.

    • created_atstring (date-time)
    • confirm_bystring (date-time)nullable

      For awaiting_confirmation: the confirmation email's link works until this time.

    • completed_atstring (date-time)nullable
  • next_cursorstringnullable

    Pass as cursor for the next page; null at the end.

    0 to 1024 characters.

Every response carries MK-Request-Id, plus RateLimit-Policy and RateLimit.

Errors

Errors use the error envelope. Match on code.

StatusCodeMeaning
400invalid_requestThe request is malformed: bad JSON, an unknown or invalid field, or a missing header.
401invalid_signatureThe MK-* headers are missing or malformed, the key id is unknown, or the signature doesn't match.
401key_expiredThe key has passed its expiry date.
401key_revokedThe key was revoked.
401timestamp_out_of_rangeMK-Timestamp is more than 30 seconds from the server clock.
401nonce_reusedThis key already used this MK-Nonce.
403ip_not_allowedThe request came from an address outside the key's IP allowlist.
403insufficient_scopeThe key doesn't have the scope this endpoint needs.
403account_restrictedThe account can't use the API right now (for example locked, inactive, or onboarding not finished).
403api_access_disabledAPI access is switched off.
429rate_limitedToo many requests. Wait for Retry-After seconds.
429too_many_concurrent_requestsToo many requests in flight for this key or account.
429key_suspendedThe key is suspended, for example after sustained rate limiting.
500internal_errorSomething went wrong on our side.
502bad_gatewayAn upstream service answered unexpectedly.
503overloadedThe service is overloaded. Retry after Retry-After seconds.
503service_unavailableThe service is temporarily unavailable.
504gateway_timeoutAn upstream service didn't answer in time. A POST may still complete; retry with the same Idempotency-Key.

Request

# Signed by sign-headers.sh: see Authentication
curl "https://public-api.myntkaup.is/v1/withdrawals?type=bank&limit=10" \
  $(./sign-headers.sh GET "/v1/withdrawals?type=bank&limit=10" | sed 's/^/-H /')
import { Myntkaup } from "@myntkaup/api";

const client = new Myntkaup(); // reads the key from the environment
const page = await client.withdrawals.list({ type: "bank", limit: 10 });
console.log(page.data.map((withdrawal) => [withdrawal.id, withdrawal.status]));
from myntkaup import Myntkaup

client = Myntkaup()  # reads the key from the environment
page = client.withdrawals.list(type="bank", limit=10)
print([(withdrawal["id"], withdrawal["status"]) for withdrawal in page["data"]])

Response

200 OK
{
  "data": [
    {
      "id": "wd_01JB8X2Q4M7Z3V9K5T1N6R0P2W",
      "type": "crypto",
      "status": "completed",
      "asset": "BTC",
      "network": "bitcoin",
      "amount": "0.01",
      "fee": "0.0005",
      "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
      "memo": null,
      "bank_account": null,
      "tx_id": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
      "source": "public_api",
      "created_at": "2026-11-03T10:15:10Z",
      "confirm_by": null,
      "completed_at": "2026-11-03T10:31:44Z"
    }
  ],
  "next_cursor": "eyJpZCI6IjY3MjdhMWMzIn0"
}

Base URL https://public-api.myntkaup.is