A comprehensive Claude skill for integrating with Basta's auction and ecommerce APIs.
This skill enables Claude to work seamlessly with Basta's GraphQL APIs, helping you build auction platforms, manage sales, handle bidding, and implement real-time auction experiences.
- 🎯 Complete API Coverage - Both Management API and Client API
- 🔄 Real-time Updates - WebSocket subscriptions for live auction data
- 🪝 Webhooks - Comprehensive webhook integration guide
- 🤖 Proxy Bidding - Full support for MaxBid and NormalBid types
- 📚 Detailed Documentation - API references, glossary, and examples
- 🐍 Python Scripts - Ready-to-use client library and WebSocket examples
- Download the skill file:
basta.skill - Go to Claude.ai
- Open Settings → Skills
- Click "Upload Skill"
- Select the downloaded
basta.skillfile
Once installed, the skill automatically activates when you ask Claude about:
- Creating or managing auctions
- Working with Basta's APIs
- Handling bidding workflows
- Setting up real-time updates
- Implementing webhooks
"Create a Basta auction for vintage guitars"
"Help me build a bidding interface using Basta's Client API"
"Show me how to subscribe to real-time auction updates"
"Generate a bidder token for user 123"
"Set up webhooks to notify me when bids are placed"
"Explain the difference between MaxBid and NormalBid"
Step-by-step workflows for:
- Creating auctions and items
- Publishing sales
- Generating bidder tokens
- Placing bids
- Real-time subscriptions
- Webhook integration
basta_client.py - Full-featured API client
from basta_client import BastaClient
client = BastaClient(account_id="...", api_key="...")
# Workflow A: Reusable items
item = client.create_item(title="Item 1", description="...", starting_bid=1000)
sale = client.create_sale(title="My Auction")
client.add_item_to_sale(sale_id=sale["id"], item_id=item["id"],
open_date="...", closing_date="...")
# Workflow B: Direct creation
sale = client.create_sale(title="My Auction")
item = client.create_item_for_sale(sale_id=sale["id"], title="Item 1",
starting_bid=1000, open_date="...", closing_date="...")
# Publish either workflow
client.publish_sale(sale["id"])websocket_example.py - Real-time subscription client
from websocket_example import BastaSubscriptionClient
client = BastaSubscriptionClient(bidder_token="...")
await client.subscribe_to_item(sale_id="...", item_id="...", callback=handle_update)- management_api.md - Complete Management API reference
- client_api.md - Complete Client API reference
- webhooks.md - Comprehensive webhooks guide
- glossary.md - All Basta terminology and concepts
- Sign up at basta.app
- Get your Account ID
- Generate API Key in dashboard settings
- Management API: https://management.api.basta.app
- Client API: https://client.api.basta.app
Basta offers two flexible workflows:
Workflow A: Reusable Items
from basta_client import BastaClient
client = BastaClient(account_id="your_id", api_key="your_key")
# Create standalone items (reusable across sales)
item1 = client.create_item(
title="Vintage Guitar",
description="1959 Les Paul",
starting_bid=50000, # $500
reserve=200000 # $2000
)
# Create sale
sale = client.create_sale(
title="Estate Auction",
description="Fine art and antiques"
)
# Add existing items to sale
client.add_item_to_sale(
sale_id=sale["id"],
item_id=item1["id"],
open_date="2024-06-01T10:00:00Z",
closing_date="2024-06-07T20:00:00Z"
)
# Publish
client.publish_sale(sale["id"])Workflow B: Direct Creation
from basta_client import BastaClient
client = BastaClient(account_id="your_id", api_key="your_key")
# Create sale
sale = client.create_sale(
title="Estate Auction",
description="Fine art and antiques"
)
# Create items directly in sale
item = client.create_item_for_sale(
sale_id=sale["id"],
title="Vintage Guitar",
starting_bid=50000, # $500
reserve=200000, # $2000
open_date="2024-06-01T10:00:00Z",
closing_date="2024-06-07T20:00:00Z"
)
# Publish
client.publish_sale(sale["id"])Endpoint: https://management.api.basta.app
- Server-side, authenticated operations
- Create/manage sales and items
- Generate bidder tokens
- Requires
x-account-idandx-api-keyheaders
Endpoint: https://client.api.basta.app
- Public-facing, client-side operations
- Browse auctions
- Place bids (with bidder token)
- Optional JWT authentication
Endpoint: wss://client.api.basta.app/query
- Real-time auction updates
- Uses graphql-ws protocol
- Authenticated with bidder tokens
- User sets maximum amount willing to pay
- Auction engine automatically bids incrementally
- Winning amount may be lower than max
- Engine reacts to counter-bids up to max amount
- One-time bid at specified amount
- Must align with bid increment table
- Does not react to counter-bids
Configure webhooks in Basta admin portal to receive real-time notifications:
- BidOnItem - Triggered when bids are placed
- SaleStatusChanged - Triggered when sales change status
- ItemsStatusChanged - Triggered when items change status
Each webhook includes an idempotency key to prevent duplicate processing.
See skill/references/webhooks.md for implementation guide with Python and Node.js examples.
Contributions welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Basta Support: hi@basta.app
- Basta Documentation: docs.basta.app
- Issues: GitHub Issues
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for use with Claude by Anthropic
- Integrates with Basta auction platform
- Inspired by Basta's excellent developer documentation
- Claude Skills Documentation (when available)
- Basta Platform
- Basta Developer Docs
Made with ❤️ for the Claude and Basta communities