NEW Browse AI tools across categories — updated daily. See what's new →

Pay For Http Request

Make HTTP requests with automatic x402 payment support using the purl command line interface.

Authorstripe
Version1.0.0
LicenseMIT
Token count~1,814
UpdatedJun 5, 2026

Install

Quick install

via npx skills · works with 57+ agents
npx skills add https://github.com/stripe/purl/tree/HEAD/skills/pay-for-http-request
Or pick agent:
npx skills add stripe/purl --skill pay-for-http-request --agent claude-code
npx skills add stripe/purl --skill pay-for-http-request --agent cursor
npx skills add stripe/purl --skill pay-for-http-request --agent codex
npx skills add stripe/purl --skill pay-for-http-request --agent opencode
npx skills add stripe/purl --skill pay-for-http-request --agent github-copilot
npx skills add stripe/purl --skill pay-for-http-request --agent windsurf
More install options

Shorthand — useful for multi-skill repos:

npx skills add stripe/purl --skill pay-for-http-request

Manual — clone the repo and drop the folder into your agent's skills directory:

git clone https://github.com/stripe/purl.git
cp -r purl/skills/pay-for-http-request ~/.claude/skills/
How to use: Once installed, ask your agent to "use the pay-for-http-request skill" or describe what you want (e.g. "Make HTTP requests with automatic x402 payment support using the purl command li"). Requires Node.js 18+.

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 curl instead)
  • 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

★ Featured

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.

juliusbrussee 167k
Development

secure-linux-web-hosting

★ Featured

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.

xixu-me 155k
Development

readme-i18n

★ Featured

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.

xixu-me 155k
Development

lark-shared

★ Featured

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.

larksuite 155k
Development

improve-codebase-architecture

★ Featured

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.

mattpocock 151k
Development

paper-context-resolver

★ Featured

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...

lllllllama 127k
Development