Integration libraries that return results instead of throwing
A low balance, a daily cap and a rate limit are normal faucet flow. Wrapping every call in try/catch to branch on them reads worse than returning a result array.
10 entries
A low balance, a daily cap and a rate limit are normal faucet flow. Wrapping every call in try/catch to branch on them reads worse than returning a result array.
Ad networks and faucet scripts validate against the common shape, which is /api?api=TOKEN&url=. A rewrite gives you that without breaking existing integrations.
The request URL contains your key. Flash it in an error and anyone who can make the provider fail can read it.
Every provider shortens by API: you POST or GET their endpoint with your token and a destination, and they return JSON containing the short URL. Gluing a destination onto a base URL works with none of them.
Bearer auth, JSON POST, and an envelope that is documented one way and returned another on the endpoint you care about most.
The endpoint is a path, not a query string, and the field names change per task type. Normalising once at the edge keeps the rest of your site from caring.
One request per interval for the whole site, an atomic cache write, and a stale copy served rather than nothing when the feed is down.
One call that stops the worst failure mode on a faucet: telling a user they were paid when the wallet was already empty.
Faucet software already knows how to talk to shortlink providers. Match the contract they expect and operators can point their existing config at you without writing anything.
The v1 form-POST payout, kept for installs that still run it. New builds should use the v2 scoped-key API, which adds idempotency keys.