purch-api
AI-powered shopping API for product search and crypto checkout. Use this skill when: - Searching for products from Amazon and Shopify - Building shopping assistants or product recommendation features - Creating purchase orders with crypto (USDC on Solana or Base) - Integrating e-commerce checkout into applications - Signing and submitting blockchain transactions for purchases
Install
mkdir -p .claude/skills/purch-api && curl -L -o skill.zip "https://mcp.directory/api/skills/download/6462" && unzip -o skill.zip -d .claude/skills/purch-api && rm skill.zipInstalls to .claude/skills/purch-api
About this skill
Purch Public API
Base URL: https://api.purch.xyz
Rate Limits
60 requests/minute per IP. Headers in every response:
X-RateLimit-Limit: Max requests per windowX-RateLimit-Remaining: Requests leftX-RateLimit-Reset: Seconds until reset
Endpoints
GET /search - Structured Product Search
Query products with filters.
curl "https://api.purch.xyz/search?q=headphones&priceMax=100"
Parameters:
| Param | Type | Required | Description |
|---|---|---|---|
| q | string | Yes | Search query |
| priceMin | number | No | Minimum price |
| priceMax | number | No | Maximum price |
| brand | string | No | Filter by brand |
| page | number | No | Page number (default: 1) |
Response:
{
"products": [
{
"id": "B0CXYZ1234",
"title": "Sony WH-1000XM5",
"price": 348.00,
"currency": "USD",
"rating": 4.8,
"reviewCount": 15420,
"imageUrl": "https://...",
"productUrl": "https://amazon.com/dp/B0CXYZ1234",
"source": "amazon"
}
],
"totalResults": 20,
"page": 1,
"hasMore": true
}
POST /shop - AI Shopping Assistant
Natural language product search. Returns 20+ products from both Amazon and Shopify.
curl -X POST "https://api.purch.xyz/shop" \
-H "Content-Type: application/json" \
-d '{"message": "comfortable running shoes under $100"}'
Request Body:
{
"message": "comfortable running shoes under $100",
"context": {
"priceRange": { "min": 0, "max": 100 },
"preferences": ["comfortable", "breathable"]
}
}
Response:
{
"reply": "Found 22 running shoes. Top pick: Nike Revolution 6 at $65...",
"products": [
{
"asin": "B09XYZ123",
"title": "Nike Revolution 6",
"price": 65.00,
"currency": "USD",
"rating": 4.5,
"reviewCount": 8420,
"imageUrl": "https://...",
"productUrl": "https://amazon.com/dp/B09XYZ123",
"source": "amazon"
},
{
"asin": "gid://shopify/p/abc123",
"title": "Allbirds Tree Runners",
"price": 98.00,
"source": "shopify",
"productUrl": "https://allbirds.com/products/tree-runners",
"vendor": "Allbirds"
}
]
}
POST /buy - Create Purchase Order
Create an order and get a transaction to sign. Chain is auto-detected from wallet format:
- Solana wallet (base58):
7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU - Base/EVM wallet (0x):
0x1234567890abcdef1234567890abcdef12345678
Amazon Products (Solana):
curl -X POST "https://api.purch.xyz/buy" \
-H "Content-Type: application/json" \
-d '{
"asin": "B0CXYZ1234",
"email": "buyer@example.com",
"walletAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"shippingAddress": {
"name": "John Doe",
"line1": "123 Main St",
"line2": "Apt 4B",
"city": "New York",
"state": "NY",
"postalCode": "10001",
"country": "US",
"phone": "+1-555-123-4567"
}
}'
Amazon Products (Base):
curl -X POST "https://api.purch.xyz/buy" \
-H "Content-Type: application/json" \
-d '{
"asin": "B0CXYZ1234",
"email": "buyer@example.com",
"walletAddress": "0x1234567890abcdef1234567890abcdef12345678",
"shippingAddress": {
"name": "John Doe",
"line1": "123 Main St",
"city": "New York",
"state": "NY",
"postalCode": "10001",
"country": "US"
}
}'
Shopify Products - Use productUrl AND variantId:
curl -X POST "https://api.purch.xyz/buy" \
-H "Content-Type: application/json" \
-d '{
"productUrl": "https://store.com/products/item-name",
"variantId": "41913945718867",
"email": "buyer@example.com",
"walletAddress": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"shippingAddress": {
"name": "John Doe",
"line1": "123 Main St",
"city": "New York",
"state": "NY",
"postalCode": "10001",
"country": "US"
}
}'
Response:
{
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"status": "awaiting-payment",
"serializedTransaction": "NwbtPCP62oXk5fmSrgT...",
"product": {
"title": "Sony WH-1000XM5",
"imageUrl": "https://...",
"price": { "amount": "348.00", "currency": "usdc" }
},
"totalPrice": { "amount": "348.00", "currency": "usdc" },
"checkoutUrl": "https://www.crossmint.com/checkout/550e8400..."
}
CLI Scripts
This skill includes ready-to-use CLI scripts for all endpoints. Available in Python and TypeScript/Bun.
Dependencies (Solana):
# Python
pip install solana solders base58
# TypeScript/Bun
bun add @solana/web3.js bs58
Dependencies (Base/EVM):
# TypeScript/Bun
bun add viem
Search Products
# Python
python scripts/search.py "wireless headphones" --price-max 100
python scripts/search.py "running shoes" --brand Nike --page 2
# TypeScript
bun run scripts/search.ts "wireless headphones" --price-max 100
AI Shopping Assistant
# Python
python scripts/shop.py "comfortable running shoes under $100"
# TypeScript
bun run scripts/shop.ts "wireless headphones with good noise cancellation"
Create Order (without signing)
# Amazon by ASIN
python scripts/buy.py --asin B0CXYZ1234 --email buyer@example.com \
--wallet 7xKXtg... --address "John Doe,123 Main St,New York,NY,10001,US"
# Shopify product
bun run scripts/buy.ts --url "https://store.com/products/item" --variant 41913945718867 \
--email buyer@example.com --wallet 7xKXtg... --address "John Doe,123 Main St,NYC,NY,10001,US"
Address format: Name,Line1,City,State,PostalCode,Country[,Line2][,Phone]
Create Order AND Sign Transaction (Solana)
End-to-end purchase flow - creates order and signs/submits the Solana transaction:
# Python
python scripts/buy_and_sign.py --asin B0CXYZ1234 --email buyer@example.com \
--wallet 7xKXtg... --private-key 5abc123... \
--address "John Doe,123 Main St,New York,NY,10001,US"
# TypeScript
bun run scripts/buy_and_sign.ts --url "https://store.com/products/item" --variant 41913945718867 \
--email buyer@example.com --wallet 7xKXtg... --private-key 5abc123... \
--address "John Doe,123 Main St,NYC,NY,10001,US"
Create Order AND Sign Transaction (Base)
End-to-end purchase flow using Base/EVM wallet:
bun run scripts/buy_and_sign_base.ts --asin B0CXYZ1234 --email buyer@example.com \
--wallet 0x1234567890abcdef1234567890abcdef12345678 \
--private-key 0xabc123... \
--address "John Doe,123 Main St,New York,NY,10001,US"
Sign Transaction Only (Solana)
If you already have a serializedTransaction from the /buy endpoint:
# Python
python scripts/sign_transaction.py "<serialized_tx>" "<private_key_base58>"
# TypeScript
bun run scripts/sign_transaction.ts "<serialized_tx>" "<private_key_base58>"
Sign Transaction Only (Base)
bun run scripts/sign_transaction_base.ts "<serialized_tx_hex>" "<private_key_hex>"
Output (Solana):
✅ Transaction successful!
Signature: 5UfgJ3vN...
Explorer: https://solscan.io/tx/5UfgJ3vN...
Output (Base):
✅ Transaction successful!
Hash: 0x1234...
Explorer: https://basescan.org/tx/0x1234...
Signing Transactions Programmatically
For custom integrations without using the bundled scripts:
JavaScript/TypeScript
import { Connection, Transaction, clusterApiUrl } from "@solana/web3.js";
import bs58 from "bs58";
async function signAndSendTransaction(
serializedTransaction: string,
wallet: { signTransaction: (tx: Transaction) => Promise<Transaction> }
) {
// Decode the base58 transaction
const transactionBuffer = bs58.decode(serializedTransaction);
const transaction = Transaction.from(transactionBuffer);
// Sign with user's wallet (e.g., Phantom, Solflare)
const signedTransaction = await wallet.signTransaction(transaction);
// Send to Solana network
const connection = new Connection(clusterApiUrl("mainnet-beta"));
const signature = await connection.sendRawTransaction(
signedTransaction.serialize()
);
// Confirm transaction
await connection.confirmTransaction(signature, "confirmed");
return signature;
}
React with Wallet Adapter
import { useWallet, useConnection } from "@solana/wallet-adapter-react";
import { Transaction } from "@solana/web3.js";
import bs58 from "bs58";
function CheckoutButton({ serializedTransaction }: { serializedTransaction: string }) {
const { signTransaction, publicKey } = useWallet();
const { connection } = useConnection();
const handlePayment = async () => {
if (!signTransaction || !publicKey) {
throw new Error("Wallet not connected");
}
// Decode and sign
const tx = Transaction.from(bs58.decode(serializedTransaction));
const signed = await signTransaction(tx);
// Send and confirm
const sig = await connection.sendRawTransaction(signed.serialize());
await connection.confirmTransaction(sig, "confirmed");
console.log("Payment complete:", sig);
};
return <button onClick={handlePayment}>Pay with USDC</button>;
}
Python (with solana-py)
import base58
from solana.rpc.api import Client
from solana.transaction import Transaction
from solders.keypair import Keypair
def sign_and_send(serialized_tx: str, keypair: Keypair) -> str:
# Decode base58 transaction
tx_bytes = base58.b58decode(serialized_tx)
transaction = Transaction.deserialize(tx_bytes)
# Sign
transaction.sign(keypair)
# Send
client = Client("https://api.mainnet-beta.solana.com")
result = client.send_transaction(transaction)
return result.value # transaction signature
Signing Base/EVM Transactions
For Base chain orders, the serializedTransaction is an EVM transaction that needs to be signed with an EVM wallet.
TypeScript with viem
---
*Content truncated.*
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversEasily find the Kroger closest to you, browse products with prices, and manage your cart and orders using secure OAuth2
Integrate Shopify with eBay and Amazon for seamless catalog search, cart management, and streamlined checkout in your st
Boost productivity with Task Master: an AI-powered tool for project management and agile development workflows, integrat
Supercharge your AI code assistant with GitMCP—get accurate, up-to-date code and API docs from any GitHub project. Free,
Desktop Commander MCP unifies code management with advanced source control, git, and svn support—streamlining developmen
Enhance productivity with AI-driven Notion automation. Leverage the Notion API for secure, automated workspace managemen
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.