Faucet API Documentation
The faucet provides a public REST API for programmatic access. Rate limiting is per-address (1 request per hour per address).
Get current faucet status including available balance and payout amount.
Response
{
"success": true,
"network": "testnet",
"availableForFaucet": 50000,
"payoutAmount": 1000,
"payoutsAvailable": 50,
"cooldownHours": 1,
"rateLimitType": "address"
}
Check if an address can request funds (not on cooldown).
Response
{
"success": true,
"address": "xyABC123...",
"canRequest": true,
"cooldownEnd": null,
"remainingMinutes": 0,
"payoutAmount": 1000
}
Request funds to be sent to your address.
Request Body
{
"address": "xyABC123..."
}
Success Response (200)
{
"success": true,
"message": "Sent 1000 PDIVI to xyABC123...",
"txid": "abc123def456...",
"amount": 1000,
"cooldownHours": 1
}
Rate Limited Response (429)
{
"success": false,
"error": "This address has already received funds. Please wait 45 minute(s)...",
"remainingMinutes": 45
}
Code Examples
curl https://vps1.divi.domains/testnet/faucet/api/status
curl https://vps1.divi.domains/testnet/faucet/api/check/xyYOUR_ADDRESS
curl -X POST https://vps1.divi.domains/testnet/faucet/api/request \
-H "Content-Type: application/json" \
-d '{"address": "xyYOUR_ADDRESS"}'
import requests
BASE_URL = "https://vps1.divi.domains/testnet/faucet"
status = requests.get(f"{BASE_URL}/api/status").json()
print(f"Available payouts: {status['payoutsAvailable']}")
address = "xyYOUR_ADDRESS"
check = requests.get(f"{BASE_URL}/api/check/{address}").json()
print(f"Can request: {check['canRequest']}")
if check['canRequest']:
response = requests.post(
f"{BASE_URL}/api/request",
json={"address": address}
).json()
if response['success']:
print(f"Transaction ID: {response['txid']}")
else:
print(f"Error: {response['error']}")
const BASE_URL = 'https://vps1.divi.domains/testnet/faucet';
async function getStatus() {
const res = await fetch(`${BASE_URL}/api/status`);
return res.json();
}
async function checkAddress(address) {
const res = await fetch(`${BASE_URL}/api/check/${address}`);
return res.json();
}
async function requestFunds(address) {
const res = await fetch(`${BASE_URL}/api/request`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ address })
});
return res.json();
}
const address = 'xyYOUR_ADDRESS';
const check = await checkAddress(address);
if (check.canRequest) {
const result = await requestFunds(address);
console.log('TX:', result.txid);
}