Pay For Http Request
Make HTTP requests with automatic x402 payment support using the purl command line interface.
Install
Quick install
npx skills add https://github.com/stripe/purl/tree/HEAD/skills/pay-for-http-requestnpx skills add stripe/purl --skill pay-for-http-request --agent claude-codenpx skills add stripe/purl --skill pay-for-http-request --agent cursornpx skills add stripe/purl --skill pay-for-http-request --agent codexnpx skills add stripe/purl --skill pay-for-http-request --agent opencodenpx skills add stripe/purl --skill pay-for-http-request --agent github-copilotnpx skills add stripe/purl --skill pay-for-http-request --agent windsurfMore install options
Shorthand — useful for multi-skill repos:
npx skills add stripe/purl --skill pay-for-http-requestManual — clone the repo and drop the folder into your agent's skills directory:
git clone https://github.com/stripe/purl.gitcp -r purl/skills/pay-for-http-request ~/.claude/skills/pay-for-http-request
Make HTTP requests with automatic x402 payment support using the purl command line interface.
pay-for-http-requestby stripe
Make HTTP requests with automatic x402 payment support using the purl command line interface.npx skills add https://github.com/stripe/purl --skill pay-for-http-requestDownload ZIPGitHub
pay-for-http-request
Make HTTP requests with automatic x402 payment support using purl.
Description
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 to Use This Skill
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.
Common Scenarios
ScenarioExampleTool callsPaying per request to an API servicePremium data feedsAccessing real-time market data, weather, or analyticsContent monetizationPaying to access paywalled articles or mediaCompute resourcesOn-demand access to compute or storage services
When NOT to Use
- Regular HTTP requests that don't require payment (use
curlinstead)
- APIs using traditional payment methods (credit cards, API keys with billing)
Usage
`purl <URL> [OPTIONS]
purl <COMMAND>
`
Commands
CommandDescriptionwalletManage wallets (keystores)configManage configurationbalanceCheck wallet balanceinspectInspect payment requirements without executingnetworksManage and inspect supported networksversionShow version informationcompletionsGenerate shell completions scripttopicsDisplay help topics (exit-codes, formatting, examples, environment)
Request Options
Payment Options
OptionDescription--max-amount <AMOUNT>Maximum amount willing to pay (in atomic units)--confirmRequire confirmation before paying--network <NETWORKS>Filter to specific networks (comma-separated)--dry-runPreview payment without executing
Display Options
OptionDescription-v, --verbosityVerbosity level (can be used multiple times: -v, -vv, -vvv)-q, --quiet / -s, --silentDo not print log messages-i, --includeInclude HTTP headers in output-I, --headShow 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
HTTP Options
OptionDescription-X, --request <METHOD>Custom request method-H, --header <HEADER>Add custom header-A, --user-agent <AGENT>Set user agent-L, --locationFollow 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
Wallet Options
OptionDescription--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)
Global Options
OptionDescription-C, --config <PATH>Configuration file path
Wallet Commands
`purl wallet <COMMAND>
`
CommandDescriptionlistList available walletsaddCreate a new wallet (interactive)show <NAME>Show wallet detailsverify <NAME>Verify wallet integrityuse <NAME>Set a wallet as the active payment methodremove <NAME>Remove a wallet
Wallet Add Options
OptionDescription-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)
Config Commands
`purl config [COMMAND]
`
CommandDescription(none)Show current configget <KEY>Get a specific configuration value (supports dot notation)validateValidate configuration file
Examples
Basic payment request
`purl https://api.example.com/premium-data
`
Preview payment without executing
`purl --dry-run https://api.example.com/data
`
Require confirmation before payment
`purl --confirm https://api.example.com/data
`
Set maximum payment amount
`purl --max-amount 10000 https://api.example.com/data
`
Filter to specific network
`purl --network base-sepolia https://api.example.com/data
`
Verbose output with headers
`purl -vi https://api.example.com/data
`
Save output to file as JSON
`purl -o output.json --output-format json https://api.example.com/data
`
POST request with JSON data
`purl --json '{"key": "value"}' https://api.example.com/data
`
Custom headers
`purl -H "Authorization: Bearer token" https://api.example.com/data
`
Follow redirects with custom method
`purl -L -X POST https://api.example.com/data
`
Check wallet balance
`purl balance
purl balance --network base
`
Inspect payment requirements
`purl inspect https://api.example.com/endpoint
`
Wallet management
`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
`
View supported networks
`purl networks
purl networks info base
`
Supported Networks
TypeNetworksEVMethereum, ethereum-sepolia, base, base-sepolia, avalanche, avalanche-fuji, polygon, arbitrum, optimismSVMsolana, solana-devnet
Prerequisites
- Create a wallet:
purl wallet add
- Set up a payment method (wallet) with funds on the desired network
- Ensure the target API supports x402 payment protocol
Environment Variables
VariableDescriptionPURL_MAX_AMOUNTDefault maximum amount willing to payPURL_NETWORKDefault network filterPURL_CONFIRMDefault confirmation behavior (true/false)PURL_KEYSTOREDefault wallet/keystore pathPURL_PASSWORDWallet password (for non-interactive use)
More skills from stripe
stripe-best-practicesby stripeLatest Stripe API version: 2026-04-22.dahlia . Always use the latest API version and SDK unless the user specifies otherwise.stripe-projectsby stripeStripe Projects is a CLI for provisioning software stacks.upgrade-stripeby stripeGuide for upgrading Stripe API versions and SDKsstripe-best-practicesby stripeDecision guide for Stripe API selection, Connect setup, billing, and integration patterns. Routes integration decisions across six domains: one-time payments (Checkout Sessions), custom payment forms (Payment Element), saved payment methods (Setup Intents), marketplaces (Accounts v2), subscriptions (Billing APIs), and embedded financial accounts (Treasury) Provides reference documentation for each integration type, including API version guidance (latest: 2026-02-25.clover) and pre-launch...stripe-projectsby stripeProvision third-party services and retrieve API keys/tokens using the Stripe Projects CLI plugin.create-payment-credentialby stripeUse Link to get secure, one-time-use payment credentials from a Link wallet to complete purchases.---
Source: https://github.com/stripe/purl/tree/HEAD/skills/pay-for-http-request
Author: stripe
Discovered via: mcpservers.org
SKILL.md source
---
name: pay-for-http-request
description: Make HTTP requests with automatic x402 payment support using the purl command line interface.
---
# pay-for-http-request
Make HTTP requests with automatic x402 payment support using the purl command line interface.
# pay-for-http-requestby stripe
Make HTTP requests with automatic x402 payment support using the purl command line interface.
`npx skills add https://github.com/stripe/purl --skill pay-for-http-request`Download ZIPGitHub
## pay-for-http-request
Make HTTP requests with automatic x402 payment support using `purl`.
## Description
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 to Use This Skill
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.
### Common Scenarios
ScenarioExampleTool callsPaying per request to an API servicePremium data feedsAccessing real-time market data, weather, or analyticsContent monetizationPaying to access paywalled articles or mediaCompute resourcesOn-demand access to compute or storage services
### When NOT to Use
* Regular HTTP requests that don't require payment (use `curl` instead)
* APIs using traditional payment methods (credit cards, API keys with billing)
## Usage
```
`purl <URL> [OPTIONS]
purl <COMMAND>
`
```
## Commands
CommandDescription`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)
## Request Options
### Payment Options
OptionDescription`--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
### Display Options
OptionDescription`-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
### HTTP Options
OptionDescription`-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
### Wallet Options
OptionDescription`--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)
### Global Options
OptionDescription`-C, --config <PATH>`Configuration file path
## Wallet Commands
```
`purl wallet <COMMAND>
`
```
CommandDescription`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
### Wallet Add Options
OptionDescription`-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)
## Config Commands
```
`purl config [COMMAND]
`
```
CommandDescription(none)Show current config`get <KEY>`Get a specific configuration value (supports dot notation)`validate`Validate configuration file
## Examples
### Basic payment request
```
`purl https://api.example.com/premium-data
`
```
### Preview payment without executing
```
`purl --dry-run https://api.example.com/data
`
```
### Require confirmation before payment
```
`purl --confirm https://api.example.com/data
`
```
### Set maximum payment amount
```
`purl --max-amount 10000 https://api.example.com/data
`
```
### Filter to specific network
```
`purl --network base-sepolia https://api.example.com/data
`
```
### Verbose output with headers
```
`purl -vi https://api.example.com/data
`
```
### Save output to file as JSON
```
`purl -o output.json --output-format json https://api.example.com/data
`
```
### POST request with JSON data
```
`purl --json '{"key": "value"}' https://api.example.com/data
`
```
### Custom headers
```
`purl -H "Authorization: Bearer token" https://api.example.com/data
`
```
### Follow redirects with custom method
```
`purl -L -X POST https://api.example.com/data
`
```
### Check wallet balance
```
`purl balance
purl balance --network base
`
```
### Inspect payment requirements
```
`purl inspect https://api.example.com/endpoint
`
```
### Wallet management
```
`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
`
```
### View supported networks
```
`purl networks
purl networks info base
`
```
## Supported Networks
TypeNetworksEVMethereum, ethereum-sepolia, base, base-sepolia, avalanche, avalanche-fuji, polygon, arbitrum, optimismSVMsolana, solana-devnet
## Prerequisites
* Create a wallet: `purl wallet add`
* Set up a payment method (wallet) with funds on the desired network
* Ensure the target API supports x402 payment protocol
## Environment Variables
VariableDescription`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)
## More skills from stripe
stripe-best-practicesby stripeLatest Stripe API version: 2026-04-22.dahlia . Always use the latest API version and SDK unless the user specifies otherwise.stripe-projectsby stripeStripe Projects is a CLI for provisioning software stacks.upgrade-stripeby stripeGuide for upgrading Stripe API versions and SDKsstripe-best-practicesby stripeDecision guide for Stripe API selection, Connect setup, billing, and integration patterns. Routes integration decisions across six domains: one-time payments (Checkout Sessions), custom payment forms (Payment Element), saved payment methods (Setup Intents), marketplaces (Accounts v2), subscriptions (Billing APIs), and embedded financial accounts (Treasury) Provides reference documentation for each integration type, including API version guidance (latest: 2026-02-25.clover) and pre-launch...stripe-projectsby stripeProvision third-party services and retrieve API keys/tokens using the Stripe Projects CLI plugin.create-payment-credentialby stripeUse Link to get secure, one-time-use payment credentials from a Link wallet to complete purchases.
---
**Source**: https://github.com/stripe/purl/tree/HEAD/skills/pay-for-http-request
**Author**: stripe
**Discovered via**: mcpservers.org
Related skills 6
caveman
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
secure-linux-web-hosting
Use when setting up, hardening, or reviewing a cloud server for self-hosting, including DNS, SSH, firewalls, Nginx, static-site hosting, reverse-proxying an app, HTTPS with Let's Encrypt or ACME clients, safe HTTP-to-HTTPS redirects, or optional post-launch network tuning such as BBR.
readme-i18n
Use when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized README variants in a GitHub-style repository.
lark-shared
Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-cli, or seeing _notice in JSON output.
improve-codebase-architecture
Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
paper-context-resolver
Optional RigorPilot helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacin...