API Documentation
Self-hosted REST API for Dogecoin transactions.
api_key as form data or URL parameter. Get your API key from API Management (login required).
/api/v1/withdraw
Send Dogecoin from one of your addresses to any Dogecoin address. Transaction is...
Send Dogecoin from one of your addresses to any Dogecoin address. Transaction is created, signed, and broadcast to the network.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
from_address |
required | Your Dogecoin address (must be registered to your account) |
to_address |
required | Recipient Dogecoin address |
amount |
required | Target amount in DOGE (recipient receives this; fee is added on top) |
fee_rate |
optional | Fee rate in DOGE/KB. Default: 0.01 |
import requests
API = "http://dogecoin.saitamatechno.com/api/v1"
API_KEY = "your_api_key"
resp = requests.post(API + "/withdraw", data={
"api_key": API_KEY,
"from_address": "DYourAddress",
"to_address": "DRecipientAddress",
"amount": "0.01",
"fee_rate": "0.01",
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/withdraw" \
-d "api_key=YOUR_API_KEY" \
-d "from_address=DYourAddress" \
-d "to_address=DRecipientAddress" \
-d "amount=0.01" \
-d "fee_rate=0.01"
{
"status": "success",
"data": {
"txid": "abc123...",
"from_address": "DYourAddress",
"to_address": "DRecipientAddress",
"amount_sent": "0.01",
"network_fee": "0.00067",
"total_fee": "0.00067"
},
"message": "Transaction broadcast successfully"
}
/api/v1/estimate_fee
Estimate the actual network fee before sending. Returns the exact fee that would...
Estimate the actual network fee before sending. Returns the exact fee that would be charged for a give amount and fee rate.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
from_address |
required | Your Dogecoin address (must be registered to your account) |
to_address |
required | Recipient Dogecoin address |
amount |
required | Target amount in DOGE (recipient receives this; fee is estimated on top) |
fee_rate |
optional | Fee rate in DOGE/KB. Default: 0.01 |
resp = requests.post(API + "/estimate_fee", data={
"api_key": API_KEY,
"from_address": "DYourAddress",
"to_address": "DRecipientAddress",
"amount": "0.01",
"fee_rate": "0.01",
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/estimate_fee" -d "api_key=YOUR_API_KEY" -d "from_address=DYourAddress" -d "to_address=DRecipientAddress" -d "amount=0.01" -d "fee_rate=0.01"
{
"status": "success",
"data": {
"actual_fee": "0.00067",
"fee_rate": 0.01,
"tx_size_bytes": 250,
"from_address": "DYourAddress",
"to_address": "DRecipientAddress",
"amount": 0.01
},
"message": "Estimated fee: 0.00067000 DOGE"
}
/api/v1/get_address_balance
Get the available balance for one of your wallet addresses.
Get the available balance for one of your wallet addresses.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
address |
optional | Your Dogecoin address (preferred) |
label |
optional | Wallet label (fallback) |
resp = requests.post(API + "/get_address_balance", data={
"api_key": API_KEY,
"address": "DQSBm...",
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/get_address_balance" \
-d "api_key=YOUR_API_KEY" \
-d "address=DYourAddress"
{
"status": "success",
"data": {
"balance": "0.2093156",
"address": "DQSBm..."
}
}
/api/v1/get_my_addresses
List all wallet addresses registered to your account with their balances.
List all wallet addresses registered to your account with their balances.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
resp = requests.post(API + "/get_my_addresses", data={
"api_key": API_KEY,
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/get_my_addresses" \
-d "api_key=YOUR_API_KEY"
{
"status": "success",
"data": {
"network": "DOGE",
"addresses": [
{"label": "Test Wallet", "address": "DQSBm...", "available_balance": "0.20"},
{"label": "a1", "address": "DG2jc...", "available_balance": "0.04"}
]
}
}
/api/v1/addr_by_label
Get the Dogecoin address associated with a label.
Get the Dogecoin address associated with a label.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
label |
required | The wallet label (e.g. "myaddress", "default") |
c = DogeClient("YOUR_API_KEY")
addr = c.addr_by_label("myaddress")
print(addr)
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/addr_by_label" -d "api_key=YOUR_API_KEY" -d "label=myaddress"
{
"status": "success",
"data": {
"label": "myaddress",
"address": "DYourAddress"
}
}
/api/v1/listunspent_by_addr
List all UTXOs (confirmed and pending) for a wallet address.
List all UTXOs (confirmed and pending) for a wallet address.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
address |
required | Your Dogecoin address |
resp = c.listunspent_by_addr("DG2jc...")
print(resp["data"]["total_confined"])
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/listunspent_by_addr" -d "api_key=YOUR_API_KEY" -d "address=DG2jc..."
{
"status": "success",
"data": {
"address": "DG2jc...",
"confirmed_utxos": [{"txid": "...", "vout": 0, "amount": "0.01", "confirmations": 100, "spendable": true}],
"pending_utxos": [],
"total_confirmed": "0.01000000",
"total_pending": "0.00000000"
}
}
/api/v1/search_txid
Public: Look up a transaction by TXID. No API key needed. Returns inputs, output...
Public: Look up a transaction by TXID. No API key needed. Returns inputs, outputs, fee, block info.
Parameters
| Name | Required | Description |
|---|---|---|
txid |
required | Transaction ID (64-char hex). Send as query param or POST data. |
# Public endpoint - no API key needed
import requests
resp = requests.get("http://dogecoin.saitamatechno.com/api/v1/search_txid?txid=4f155a29...")
print(resp.json())
curl "http://dogecoin.saitamatechno.com/api/v1/search_txid?txid=4f155a29..."
{
"status": "success",
"data": {
"txid": "4cd35104...",
"inputs": [{"n": 0, "address": "D...", "amount": 1.0}],
"outputs": [{"n": 0, "address": "D...", "amount": 0.19745360}],
"total_amount": 0.19745360,
"fee": 0.000522,
"confirmations": 150,
"blockhash": "000000...",
"blockheight": 6190000,
"blocktime": 1700000000
}
}
/api/v1/get_new_address
Get or create a wallet address with a label. If the label exists, returns the ex...
Get or create a wallet address with a label. If the label exists, returns the existing address.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
label |
required | Label for the address (e.g., "my-bot", "default") |
resp = requests.post(API + "/get_new_address", data={
"api_key": API_KEY,
"label": "my-bot",
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/get_new_address" \
-d "api_key=YOUR_API_KEY" \
-d "label=my-bot"
{
"status": "success",
"data": {
"label": "my-bot",
"address": "D..."
}
}
/api/v1/get_network_info
Get Dogecoin blockchain network information.
Get Dogecoin blockchain network information.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
resp = requests.post(API + "/get_network_info", data={
"api_key": API_KEY,
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/get_network_info" \
-d "api_key=YOUR_API_KEY"
{
"status": "success",
"data": {
"block_count": 6190053,
"difficulty": 6035461.6,
"connections": 8
}
}
/api/v1/get_transaction_fee
Get an estimated transaction fee. The actual fee when sending is calculated dyna...
Get an estimated transaction fee. The actual fee when sending is calculated dynamically.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
resp = requests.post(API + "/get_transaction_fee", data={
"api_key": API_KEY,
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/get_transaction_fee" \
-d "api_key=YOUR_API_KEY"
{
"status": "success",
"data": {
"network_fee": "0.0023",
"total_fee": "0.0023"
}
}
/api/v1/get_current_price
Get the current DOGE price in USD.
Get the current DOGE price in USD.
Parameters
| Name | Required | Description |
|---|---|---|
api_key |
required | Your API key |
resp = requests.post(API + "/get_current_price", data={
"api_key": API_KEY,
})
print(resp.json())
curl -X POST "http://dogecoin.saitamatechno.com/api/v1/get_current_price" \
-d "api_key=YOUR_API_KEY"
{
"status": "success",
"data": {
"price_usd": "0.15",
"base_currency": "USD"
}
}
| HTTP | Scenario | Response |
|---|---|---|
| 401 | Invalid or missing API key | {"status": "error", "message": "Invalid API key"} |
| 400 | Missing required parameter | {"status": "error", "message": "from_address is required"} |
| 400 | Insufficient balance | {"status": "error", "message": "Insufficient balance..."} |
| 404 | Address not registered | {"status": "error", "message": "Address D... is not registered..."} |
| 500 | Network or RPC error | {"status": "error", "message": "..."} |
Full Python Client
import requests
class DogeClient:
def __init__(self, api_key, base_url="https://dogecoin.saitamatechno.com"):
self.api_key = api_key
self.api_url = base_url.rstrip("/") + "/api/v1"
def _post(self, endpoint, data=None):
payload = {"api_key": self.api_key}
if data:
payload.update(data)
return requests.post(f"{self.api_url}/{endpoint}", data=payload).json()
def balance(self, address=None, label=None):
payload = {}
if address:
payload["address"] = address
if label:
payload["label"] = label
return self._post("get_address_balance", payload)
def addr_by_label(self, label):
return self._post("addr_by_label", {"label": label})
def listunspent_by_addr(self, address):
return self._post("listunspent_by_addr", {"address": address})
def search_txid(self, txid):
return self._post("search_txid", {"txid": txid})
def my_addresses(self):
return self._post("get_my_addresses")
def get_address(self, label="default"):
return self._post("get_new_address", {"label": label})
def estimate_fee(self, from_address, to_address, amount, fee_rate=0.01):
return self._post("estimate_fee", {
"from_address": from_address,
"to_address": to_address,
"amount": str(amount),
"fee_rate": str(fee_rate),
})
def send(self, from_address, to_address, amount, fee_rate=0.01):
return self._post("withdraw", {
"from_address": from_address,
"to_address": to_address,
"amount": str(amount),
"fee_rate": str(fee_rate),
})
def network_info(self):
return self._post("get_network_info")
def price(self):
url = "https://api.coingecko.com/api/v3/simple/price"
params = {"ids": "dogecoin", "vs_currencies": "usd"}
response = requests.get(url, params=params)
data = response.json()
price = data["dogecoin"]["usd"]
return price
# Quick example
if __name__ == "__main__":
c = DogeClient("YOUR_API_KEY")
addrs = c.my_addresses()
for a in addrs["data"]["addresses"]:
print(a["label"], a["available_balance"], "DOGE")
# myaddr = addrs["data"]["addresses"][0]["address"]
# print(c.network_info())
# print(c.estimate_fee("DFromAddress", "DToAddress", 0.01, 0.01))
# result = c.send("DFromAddress", "DToAddress", 0.05, 0.01)
# print(result)
# print(c.price())
# print(c.balance("DYourAddress"))
# res = c.addr_by_label("a1")
# print(res["data"]["address"])
# print(c.listunspent_by_addr("DYourAddress"))
# print(c.search_txid("4cd35104f95e134394cd21f267d34f8f7c598f2a91a0e35060b35e45edb53a6c"))