---
title: "Agent Faucet Claim"
method: POST
path: "/v1/agent/faucet/claim"
---

# Agent Faucet Claim

`POST /v1/agent/faucet/claim`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/agent/faucet/claim`
- Auth: none declared

Alpha faucet — grant a 7-day Storyflo+ trial in exchange for one
"claim" per listener per UTC day. The actual on-chain USDC transfer
on Base Sepolia is queued; the tier flip happens immediately so the
listener sees premium voices on their next render.

Idempotent on ``(listener_token, claim_day)`` — duplicate clicks
return the existing claim row's ``expires_at`` rather than minting
a new grant. ``ip_hash`` is captured for abuse triage but is not
a primary uniqueness key (a household sharing IP shouldn't
block legitimate claims from different listener_tokens).

## Request body

- FaucetClaim
  - `listener_token` string, required
  - `wallet_address` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
