skills/pay-for-http-request/SKILL.md
Make HTTP requests with automatic x402 payment support using the purl command line interface.
npx skillsauth add stripe/purl pay-for-http-requestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Make HTTP requests with automatic x402 payment support using purl.
This skill enables making HTTP requests to payment-gated APIs using purl, a curl-like CLI tool that automatically handles x402-based payments on EVM and Solana networks.
When an API returns HTTP 402 (Payment Required) and supports the x402 payment protocol, purl can automatically negotiate and execute the payment to access the resource.
| Scenario | Example | |----------|---------| | Tool calls | Paying per request to an API service | | Premium data feeds | Accessing real-time market data, weather, or analytics | | Content monetization | Paying to access paywalled articles or media | | Compute resources | On-demand access to compute or storage services |
curl instead)purl <URL> [OPTIONS]
purl <COMMAND>
| Command | Description |
|---------|-------------|
| wallet | Manage wallets (keystores) |
| config | Manage configuration |
| balance | Check wallet balance |
| inspect | Inspect payment requirements without executing |
| networks | Manage and inspect supported networks |
| version | Show version information |
| completions | Generate shell completions script |
| topics | Display help topics (exit-codes, formatting, examples, environment) |
| Option | Description |
|--------|-------------|
| --max-amount <AMOUNT> | Maximum amount willing to pay (in atomic units) |
| --confirm | Require confirmation before paying |
| --network <NETWORKS> | Filter to specific networks (comma-separated) |
| --dry-run | Preview payment without executing |
| Option | Description |
|--------|-------------|
| -v, --verbosity | Verbosity level (can be used multiple times: -v, -vv, -vvv) |
| -q, --quiet / -s, --silent | Do not print log messages |
| -i, --include | Include HTTP headers in output |
| -I, --head | Show only HTTP headers |
| -o, --output <FILE> | Write output to file |
| --output-format <FORMAT> | Output format: auto, text, json, yaml (auto detects: text for terminal, json for pipes) |
| --color <MODE> | Control color output: auto, always, never |
| Option | Description |
|--------|-------------|
| -X, --request <METHOD> | Custom request method |
| -H, --header <HEADER> | Add custom header |
| -A, --user-agent <AGENT> | Set user agent |
| -L, --location | Follow redirects |
| --connect-timeout <SECONDS> | Connection timeout in seconds |
| -m, --max-time <SECONDS> | Maximum time for the request |
| -d, --data <DATA> | POST data |
| --json <JSON> | Send JSON data with Content-Type header |
| Option | Description |
|--------|-------------|
| --wallet <PATH> | Path to wallet file |
| --password <PASSWORD> | Password for wallet decryption |
| --private-key <KEY> | Raw private key (hex, for EVM; use wallet for better security) |
| Option | Description |
|--------|-------------|
| -C, --config <PATH> | Configuration file path |
purl wallet <COMMAND>
| Command | Description |
|---------|-------------|
| list | List available wallets |
| add | Create a new wallet (interactive) |
| show <NAME> | Show wallet details |
| verify <NAME> | Verify wallet integrity |
| use <NAME> | Set a wallet as the active payment method |
| remove <NAME> | Remove a wallet |
| Option | Description |
|--------|-------------|
| -n, --name <NAME> | Name for the wallet |
| -t, --type <TYPE> | Wallet type: evm or solana |
| -k, --private-key <KEY> | Private key to import (hex for EVM, base58 for Solana) |
purl config [COMMAND]
| Command | Description |
|---------|-------------|
| (none) | Show current config |
| get <KEY> | Get a specific configuration value (supports dot notation) |
| validate | Validate configuration file |
purl https://api.example.com/premium-data
purl --dry-run https://api.example.com/data
purl --confirm https://api.example.com/data
purl --max-amount 10000 https://api.example.com/data
purl --network base-sepolia https://api.example.com/data
purl -vi https://api.example.com/data
purl -o output.json --output-format json https://api.example.com/data
purl --json '{"key": "value"}' https://api.example.com/data
purl -H "Authorization: Bearer token" https://api.example.com/data
purl -L -X POST https://api.example.com/data
purl balance
purl balance --network base
purl inspect https://api.example.com/endpoint
purl wallet add # Interactive wallet creation
purl wallet add --type evm # Skip type selection
purl wallet add --type solana -k KEY # Import existing key
purl wallet list # List all wallets
purl wallet use my-wallet # Switch active wallet
purl networks
purl networks info base
| Type | Networks | |------|----------| | EVM | ethereum, ethereum-sepolia, base, base-sepolia, avalanche, avalanche-fuji, polygon, arbitrum, optimism | | SVM | solana, solana-devnet |
purl wallet add| Variable | Description |
|----------|-------------|
| PURL_MAX_AMOUNT | Default maximum amount willing to pay |
| PURL_NETWORK | Default network filter |
| PURL_CONFIRM | Default confirmation behavior (true/false) |
| PURL_KEYSTORE | Default wallet/keystore path |
| PURL_PASSWORD | Wallet password (for non-interactive use) |
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.