> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.shimi.cash/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.shimi.cash/_mcp/server.

# List Crypto Transactions

GET https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions

List your crypto deposit/withdrawal history.

Returns your crypto deposits (`type: deposit`, `direction: in`) and withdrawals (`type: withdrawal`, `direction: out`), newest first, wrapped as `data.data` (rows) + `data.meta` (`total`, `page`, `limit`, `totalPages`). Statuses: `pending`, `completed`, `failed`. For withdrawals `tokenAddress` is the destination and `from` your source address. For deposits `from` is null; `tokenAddress` holds the counter-party (token deposits) or your address (native deposits), and `meta` carries `from`, `counterAddress`, `blockNumber` and `raw` (the full provider notification, shown empty here).

**Known limitation:** the current build ignores query parameters - it always returns page 1 with `limit: 1` (i.e. only the most recent transaction), and `page`/`limit`/`hash`/`asset` filters have no effect.

Reference: https://docs.shimi.cash/api-reference/shimi-api/crypto/list-crypto-transactions

## Authentication

- `Authorization` header (bearer token, required) — Access token from Generate Access Token (valid 15 minutes).

## Response

### 200

Transactions / No transactions

- `status` (string, optional)
- `data` (CryptoTransactionsGetResponsesContentApplicationJsonSchemaData, optional)

## Errors

### 401 Unauthorized Error

Unauthorized

- `message` (string, optional)

### 403 Forbidden Error

Invalid or expired access token / KYB not approved / Account deactivated

- `message` (string, optional)
- `code` (string, optional)
- `kybStatus` (string, optional)

## Types

### CryptoTransactionsGetResponsesContentApplicationJsonSchemaData

- `data` (list of CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataDataItems, optional)
- `meta` (CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataMeta, optional)

### CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataDataItems

- `id` (integer, optional)
- `type` (string, optional)
- `status` (string, optional)
- `txHash` (string, optional)
- `amount` (integer, optional)
- `from` (string, optional, nullable)
- `asset` (string, optional)
- `direction` (string, optional)
- `companyId` (string, optional)
- `networkId` (string, optional)
- `tokenAddress` (string, optional)
- `meta` (CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataDataItemsMeta, optional)
- `createdAt` (string, optional)
- `updatedAt` (string, optional)

### CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataMeta

- `total` (integer, optional)
- `page` (integer, optional)
- `limit` (integer, optional)
- `totalPages` (integer, optional)

### CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataDataItemsMeta

- `from` (string, optional)
- `counterAddress` (string, optional)
- `blockNumber` (integer, optional)
- `raw` (CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataDataItemsMetaRaw, optional)

### CryptoTransactionsGetResponsesContentApplicationJsonSchemaDataDataItemsMetaRaw

## Examples

### 200 Transactions

**Response**

```json
{
  "status": "success",
  "data": {
    "data": [
      {
        "id": 184,
        "type": "deposit",
        "status": "completed",
        "txHash": "4vJ9JU1bJJE96FWSJKvHsmmFADCg4gpZQff4P3bkLKi1QdxQ3CNyKfzYbQ2PZ3ZBS7nVfUo7Ztw8k3o2xq6D8sYb",
        "amount": 150,
        "from": null,
        "asset": "USDT",
        "direction": "in",
        "companyId": "cm7q0b3vd0000jx9k2rf5s8hw",
        "networkId": "cm8r2n6sx0002lt0f9q1w4e7y",
        "tokenAddress": "3Kp8sXfT1BvH9a6YJgWm2nQzR4eLcD7uV5tN8yEoPiAs",
        "meta": {
          "from": "3Kp8sXfT1BvH9a6YJgWm2nQzR4eLcD7uV5tN8yEoPiAs",
          "counterAddress": "3Kp8sXfT1BvH9a6YJgWm2nQzR4eLcD7uV5tN8yEoPiAs",
          "blockNumber": 318452907,
          "raw": {}
        },
        "createdAt": "2026-10-03T09:14:52.611Z",
        "updatedAt": "2026-10-03T09:15:20.047Z"
      }
    ],
    "meta": {
      "total": 12,
      "page": 1,
      "limit": 1,
      "totalPages": 12
    }
  }
}
```

**SDK Code**

```python 200 Transactions
import requests

url = "https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript 200 Transactions
const url = 'https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go 200 Transactions
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby 200 Transactions
require 'uri'
require 'net/http'

url = URI("https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java 200 Transactions
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php 200 Transactions
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp 200 Transactions
using RestSharp;

var client = new RestClient("https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift 200 Transactions
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### 200 No transactions

**Response**

```json
{
  "status": "success",
  "data": {
    "data": [],
    "meta": {
      "total": 0,
      "page": 1,
      "limit": 1,
      "totalPages": 0
    }
  }
}
```

**SDK Code**

```python 200 No transactions
import requests

url = "https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript 200 No transactions
const url = 'https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go 200 No transactions
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby 200 No transactions
require 'uri'
require 'net/http'

url = URI("https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java 200 No transactions
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php 200 No transactions
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp 200 No transactions
using RestSharp;

var client = new RestClient("https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift 200 No transactions
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://shimi-waas-api-9493532b9281.herokuapp.com/api/v1/crypto/transactions")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```