Hermes SDK 🚀
The most comprehensive Rust SDK for eBay marketplace APIs - 17 specialized clients with 86+ methods for complete e-commerce automation.
✨ Features
- 🏗️ 17 Specialized Clients - Complete eBay API coverage
- 🚀 86+ Methods - Massive functionality for every use case
- 🔒 Type-Safe - Full Rust type safety with generated models
- ⚡ Performance - Built-in timing instrumentation and optimization
- 🔄 OAuth Management - Automatic token handling and renewal
- 🌍 Production Ready - Enterprise-grade architecture
- 📚 Comprehensive Documentation - Examples and guides included
🎯 API Coverage
🛒 Buy APIs (4 clients)
- Browse API - Search and retrieve item details
- Feed API - Bulk data operations and feeds
- Marketing API - Best-selling and trending products
- Offer API - Auction bidding and offers
- Order API - Guest checkout and order management
🧠 Commerce APIs (4 clients)
- Taxonomy API - Category suggestions and schema mapping
- Catalog API - Product catalog searches
- Identity API - User identity operations
- Translation API - Multi-language listing support
💼 Sell APIs (9 clients)
- Analytics API - Performance metrics and traffic reports
- Account API - Policy management and account operations
- Inventory API - Item and offer management
- Fulfillment API - Order processing and shipping
- Compliance API - Listing compliance and violation management
- Finances API - Transaction and payout management
- Metadata API - Marketplace policies and metadata
- Negotiation API - Best offer negotiations
- Recommendation API - AI-powered listing optimization
🚀 Quick Start
Add to your Cargo.toml:
[]
= "0.1"
= { = "1.0", = ["full"] }
Basic Usage
use ;
async
Environment Variables
Create a .env file:
EBAY_APP_ID_SANDBOX=your-sandbox-app-id
EBAY_CERT_ID_SANDBOX=your-sandbox-cert-id
EBAY_DEV_ID_SANDBOX=your-sandbox-dev-id
EBAY_APP_ID_PRODUCTION=your-production-app-id
EBAY_CERT_ID_PRODUCTION=your-production-cert-id
EBAY_DEV_ID_PRODUCTION=your-production-dev-id
EBAY_SANDBOX=true
Then load in your code:
use ;
async
📋 Specialized Clients
Analytics API
let analytics = client.analytics?;
let reports = analytics.get_traffic_reports.await?;
Inventory API
let inventory = client.inventory?;
let offers = inventory.get_offers.await?;
Compliance API
let compliance = client.compliance?;
let violations = compliance.get_listing_violations.await?;
🔧 Getting eBay Credentials
- Visit eBay Developers Program
- Create a developer account
- Create a new application
- Get your App ID, Dev ID, and Cert ID
- Configure OAuth scopes for the APIs you need
🏗️ Architecture
The SDK uses a unified client architecture with lazy loading:
- EbayClient - Main entry point with unified interface
- Specialized Clients - Lazy-loaded clients for specific API groups
- OAuth Management - Automatic token handling and renewal
- Error Handling - Comprehensive error types and handling
- Performance - Built-in timing and monitoring
📚 Examples
See the examples/ directory for comprehensive usage examples:
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Links
Built with ❤️ for the Rust and e-commerce community