SDKs & Examples
While we don't have official SDK libraries yet, the REST API is straightforward to use with any HTTP client.
Quick Examples
cURL
# Analyze a wallet
curl -H "X-API-Key: ak_live_your_key_here" \
https://mvp.amlyou.com/api/analysis/wallet/0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18
Python
import requests
API_KEY = "ak_live_your_key_here"
BASE_URL = "https://mvp.amlyou.com/api"
headers = {"X-API-Key": API_KEY}
# Analyze a wallet
response = requests.get(
f"{BASE_URL}/analysis/wallet/0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18",
headers=headers
)
if response.status_code == 200:
result = response.json()
print(f"Risk score: {result['riskScore']}")
print(f"Risk level: {result['riskLevel']}")
else:
print(f"Error: {response.status_code}")
JavaScript / TypeScript
const API_KEY = "ak_live_your_key_here";
const BASE_URL = "https://mvp.amlyou.com/api";
async function analyzeWallet(address: string) {
const response = await fetch(
`${BASE_URL}/analysis/wallet/${address}`,
{
headers: { "X-API-Key": API_KEY },
}
);
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
return response.json();
}
// Usage
const result = await analyzeWallet("0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18");
console.log(`Risk: ${result.riskLevel} (${result.riskScore})`);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
)
const (
apiKey = "ak_live_your_key_here"
baseURL = "https://mvp.amly.app/api"
)
func analyzeWallet(address string) (map[string]interface{}, error) {
req, err := http.NewRequest("GET", baseURL+"/analysis/wallet/"+address, nil)
if err != nil {
return nil, err
}
req.Header.Set("X-API-Key", apiKey)
resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var result map[string]interface{}
if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
return nil, err
}
return result, nil
}
func main() {
result, err := analyzeWallet("0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18")
if err != nil {
panic(err)
}
fmt.Printf("Risk: %v (%v)\n", result["riskLevel"], result["riskScore"])
}
Rate Limit Handling
Here's a reusable pattern for handling rate limits with retry:
import time
import requests
def request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 60))
print(f"Rate limited. Retrying in {retry_after}s...")
time.sleep(retry_after)
continue
return response
raise Exception("Max retries exceeded")