Skip to content

Get one faucet drip's status

GET
/sandbox/faucet/{id}
curl --request GET \
--url https://example.com/v2/sandbox/faucet/example \
--header 'X-CowriePay-Key: <X-CowriePay-Key>'

Sandbox only. One drip with its per-asset items (txid once broadcast, error_code and error_message on failure). 404 for an unknown id, including a drip that belongs to another workspace.

id
required
string

The drip.

Media typeapplication/json

A sandbox faucet drip and its per-asset items. Item txid is set once the item is broadcast on-chain (watch the matching deposit land with it); item error_code says why an item failed. Drip status aggregates the items (PARTIAL = some confirmed, some failed).

object
drip_id
string
status
string
Allowed values: PENDING PROCESSING CONFIRMED PARTIAL FAILED
chain

Full chain name (always a *_TESTNET chain: drips are sandbox-only).

string
address

The funded sandbox wallet address.

string
created_at
string format: date-time
updated_at
string format: date-time
items
Array<object>
object
asset
string
amount

Human-readable units.

string
status
string
Allowed values: PENDING PROCESSING CONFIRMED FAILED
txid

On-chain transaction id once broadcast; null before.

string | null
error_code

Why the item failed, from a closed set; null unless FAILED. Every code is on CowriePay’s side (the request was validated when the drip was accepted): request a new drip later. Branch on this field, not on error_message.

string | null
Allowed values: DISPENSER_NOT_CONFIGURED TOKEN_NOT_CONFIGURED DISPENSER_OUT_OF_FUNDS NETWORK_UNAVAILABLE DISPENSE_FAILED
error_message

The fixed human sentence for error_code; null unless FAILED.

string | null
Example
{
"status": "PENDING",
"items": [
{
"status": "PENDING",
"error_code": "DISPENSER_NOT_CONFIGURED"
}
]
}

Live key used (code FAUCET_ONLY_SANDBOX) or insufficient scope.

Drip not found (or not yours).