{"id":31892533,"url":"https://github.com/pablob07/buda-api-ruby","last_synced_at":"2026-01-20T17:33:45.844Z","repository":{"id":318589276,"uuid":"1071912866","full_name":"PabloB07/buda-api-ruby","owner":"PabloB07","description":"Unofficial Ruby SDK API for Buda cryptocurrency exchange","archived":false,"fork":false,"pushed_at":"2025-10-08T02:47:36.000Z","size":84,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-08T04:22:43.090Z","etag":null,"topics":["api","buda","cryptocurrency","ruby"],"latest_commit_sha":null,"homepage":"https://buda.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PabloB07.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-08T01:58:24.000Z","updated_at":"2025-10-08T02:47:39.000Z","dependencies_parsed_at":"2025-10-08T04:22:44.736Z","dependency_job_id":"5bd7f319-1552-45f9-a093-4964433e8e52","html_url":"https://github.com/PabloB07/buda-api-ruby","commit_stats":null,"previous_names":["pablob07/buda-api-ruby"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/PabloB07/buda-api-ruby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloB07%2Fbuda-api-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloB07%2Fbuda-api-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloB07%2Fbuda-api-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloB07%2Fbuda-api-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PabloB07","download_url":"https://codeload.github.com/PabloB07/buda-api-ruby/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PabloB07%2Fbuda-api-ruby/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014289,"owners_count":26085492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","buda","cryptocurrency","ruby"],"created_at":"2025-10-13T08:52:46.629Z","updated_at":"2025-10-13T08:52:50.014Z","avatar_url":"https://github.com/PabloB07.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unofficial Buda API Ruby SDK\n\nA comprehensive Ruby SDK for [Buda.com](https://buda.com) cryptocurrency exchange API with built-in debugging, error handling, and extensive examples.\n\n[![Ruby](https://img.shields.io/badge/Ruby-2.7%2B-red)](https://ruby-lang.org)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Documentation](https://img.shields.io/badge/Documentation-YARD-blue)](https://rubydoc.info/)\n\n## Features\n\n- ✅ **Complete API Coverage** - All public and authenticated endpoints\n- 🛡️ **Robust Error Handling** - Comprehensive exception handling with detailed error context\n- 🔍 **Debug Mode** - Detailed HTTP request/response logging for development\n- 📊 **Rich Data Models** - Object-oriented response models with helper methods  \n- 🔐 **Secure Authentication** - HMAC-SHA384 authentication with automatic signature generation\n- ⚡ **Automatic Retries** - Built-in retry logic for transient failures\n- 📖 **Extensive Documentation** - Complete API reference and examples\n- 🧪 **Comprehensive Examples** - Real-world usage examples including a trading bot\n- 🤖 **AI-Powered Trading** - Advanced AI features with RubyLLM integration\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'buda_api'\n```\n\nAnd then execute:\n\n```bash\n$ bundle install\n```\n\nOr install it yourself as:\n\n```bash\n$ gem install buda_api\n```\n\nFor AI features, also install:\n\n```bash\n$ gem install ruby_llm\n```\n\n## Quick Start\n\n### Public API (No Authentication Required)\n\n```ruby\nrequire 'buda_api'\n\n# Create a public client\nclient = BudaApi.public_client\n\n# Get all markets\nmarkets = client.markets\nputs \"Available markets: #{markets.map(\u0026:id).join(', ')}\"\n\n# Get ticker information\nticker = client.ticker(\"BTC-CLP\")\nputs \"BTC-CLP price: #{ticker.last_price}\"\nputs \"24h change: #{ticker.price_variation_24h}%\"\n\n# Get order book\norder_book = client.order_book(\"BTC-CLP\")\nputs \"Best ask: #{order_book.best_ask.price}\"\nputs \"Best bid: #{order_book.best_bid.price}\"\nputs \"Spread: #{order_book.spread_percentage}%\"\n```\n\n### Authenticated API (Trading)\n\n```ruby\nrequire 'buda_api'\n\n# Create authenticated client\nclient = BudaApi.authenticated_client(\n  api_key: \"your_api_key\",\n  api_secret: \"your_api_secret\"\n)\n\n# Check your balance\nbalance = client.balance(\"BTC\")\nputs \"Available BTC: #{balance.available_amount}\"\n\n# Place a limit buy order\norder = client.place_order(\"BTC-CLP\", \"Bid\", \"limit\", 0.001, 50000000)\nputs \"Order placed: #{order.id}\"\n\n# Cancel the order\ncancelled = client.cancel_order(order.id)\nputs \"Order cancelled: #{cancelled.state}\"\n```\n\n## Configuration\n\nConfigure the SDK globally:\n\n```ruby\nBudaApi.configure do |config|\n  config.debug_mode = true           # Enable debug logging\n  config.timeout = 30               # Request timeout in seconds  \n  config.retries = 3                # Number of retry attempts\n  config.logger_level = :info       # Logging level\n  config.base_url = \"https://www.buda.com/api/v2/\"  # API base URL\nend\n```\n\n## API Reference\n\n### Public API Methods\n\n#### Markets\n\n```ruby\n# Get all available markets\nmarkets = client.markets\n# Returns: Array\u003cBudaApi::Models::Market\u003e\n\n# Get specific market details  \nmarket = client.market_details(\"BTC-CLP\")\n# Returns: BudaApi::Models::Market\n```\n\n#### Market Data\n\n```ruby\n# Get ticker information\nticker = client.ticker(\"BTC-CLP\")\n# Returns: BudaApi::Models::Ticker\n\n# Get order book\norder_book = client.order_book(\"BTC-CLP\")  \n# Returns: BudaApi::Models::OrderBook\n\n# Get recent trades\ntrades = client.trades(\"BTC-CLP\", limit: 50)\n# Returns: BudaApi::Models::Trades\n```\n\n#### Quotations\n\n```ruby\n# Get price quotation for buying 0.1 BTC at market price\nquote = client.quotation(\"BTC-CLP\", \"bid_given_size\", 0.1)\n# Returns: BudaApi::Models::Quotation\n\n# Get price quotation with limit price\nquote = client.quotation_limit(\"BTC-CLP\", \"ask_given_size\", 0.1, 60000000)\n# Returns: BudaApi::Models::Quotation\n```\n\n#### Reports\n\n```ruby\n# Get average price report\nstart_time = Time.now - 86400  # 24 hours ago\navg_prices = client.average_prices_report(\"BTC-CLP\", start_at: start_time)\n# Returns: Array\u003cBudaApi::Models::AveragePrice\u003e\n\n# Get candlestick data\ncandles = client.candlestick_report(\"BTC-CLP\", start_at: start_time)\n# Returns: Array\u003cBudaApi::Models::Candlestick\u003e\n```\n\n### Authenticated API Methods\n\n#### Account Information\n\n```ruby\n# Get balance for specific currency\nbalance = client.balance(\"BTC\")\n# Returns: BudaApi::Models::Balance\n\n# Get balance events with filtering\nevents = client.balance_events(\n  currencies: [\"BTC\", \"CLP\"],\n  event_names: [\"deposit_confirm\", \"withdrawal_confirm\"],\n  page: 1,\n  per_page: 50\n)\n# Returns: Hash with :events and :total_count\n```\n\n#### Trading\n\n```ruby\n# Place orders\nbuy_order = client.place_order(\"BTC-CLP\", \"Bid\", \"limit\", 0.001, 50000000)\nsell_order = client.place_order(\"BTC-CLP\", \"Ask\", \"market\", 0.001)\n\n# Get order history\norders = client.orders(\"BTC-CLP\", page: 1, per_page: 100, state: \"traded\")\n# Returns: BudaApi::Models::OrderPages\n\n# Get specific order details\norder = client.order_details(12345)\n# Returns: BudaApi::Models::Order\n\n# Cancel order\ncancelled = client.cancel_order(12345)\n# Returns: BudaApi::Models::Order\n\n# Batch operations (cancel multiple, place multiple)\nresult = client.batch_orders(\n  cancel_orders: [123, 456],\n  place_orders: [\n    { type: \"Bid\", price_type: \"limit\", amount: \"0.001\", limit: \"50000\" }\n  ]\n)\n```\n\n#### Transfers\n\n```ruby\n# Get withdrawals\nwithdrawals = client.withdrawals(\"BTC\", page: 1, per_page: 20)\n# Returns: Hash with :withdrawals and :meta\n\n# Get deposits  \ndeposits = client.deposits(\"BTC\", page: 1, per_page: 20)\n# Returns: Hash with :deposits and :meta\n\n# Simulate withdrawal (calculate fees without executing)\nsimulation = client.simulate_withdrawal(\"BTC\", 0.01)\n# Returns: BudaApi::Models::Withdrawal\n\n# Execute withdrawal\nwithdrawal = client.withdrawal(\"BTC\", 0.01, \"destination_address\")\n# Returns: BudaApi::Models::Withdrawal\n```\n\n## Error Handling\n\nThe SDK provides comprehensive error handling with specific exception classes:\n\n```ruby\nbegin\n  ticker = client.ticker(\"INVALID-MARKET\")\nrescue BudaApi::ValidationError =\u003e e\n  puts \"Validation failed: #{e.message}\"\nrescue BudaApi::NotFoundError =\u003e e\n  puts \"Resource not found: #{e.message}\"\nrescue BudaApi::AuthenticationError =\u003e e\n  puts \"Authentication failed: #{e.message}\"\nrescue BudaApi::RateLimitError =\u003e e\n  puts \"Rate limit exceeded: #{e.message}\"\nrescue BudaApi::ServerError =\u003e e\n  puts \"Server error: #{e.message}\"\nrescue BudaApi::ConnectionError =\u003e e\n  puts \"Connection failed: #{e.message}\"\nrescue BudaApi::ApiError =\u003e e\n  puts \"API error: #{e.message}\"\n  puts \"Status: #{e.status_code}\"\n  puts \"Response: #{e.response_body}\"\nend\n```\n\n### Exception Hierarchy\n\n```\nBudaApi::ApiError (base class)\n├── BudaApi::AuthenticationError    # 401 errors\n├── BudaApi::AuthorizationError     # 403 errors  \n├── BudaApi::BadRequestError        # 400 errors\n├── BudaApi::NotFoundError          # 404 errors\n├── BudaApi::RateLimitError         # 429 errors\n├── BudaApi::ServerError            # 5xx errors\n├── BudaApi::ConnectionError        # Network issues\n├── BudaApi::TimeoutError           # Request timeouts\n└── BudaApi::InvalidResponseError   # Invalid response format\n\nBudaApi::ValidationError            # Parameter validation\nBudaApi::ConfigurationError         # SDK configuration issues\n```\n\n## Debugging\n\nEnable debug mode to see detailed HTTP request/response logs:\n\n```ruby\nBudaApi.configure do |config|\n  config.debug_mode = true\n  config.logger_level = :debug\nend\n\n# All requests will now show detailed logs:\n# → GET https://www.buda.com/api/v2/markets/BTC-CLP/ticker\n# → Headers: {\"User-Agent\"=\u003e\"BudaApi Ruby SDK 1.0.0\"}  \n# ← 200\n# ← Headers: {\"content-type\"=\u003e\"application/json\"}\n# ← Body: {\"ticker\": {...}}\n# ← Duration: 150ms\n```\n\n## Data Models\n\nAll API responses are wrapped in rich data model objects with helper methods:\n\n### Market Model\n\n```ruby\nmarket = client.market_details(\"BTC-CLP\")\n\nmarket.id                    # =\u003e \"BTC-CLP\"\nmarket.name                  # =\u003e \"Bitcoin/Chilean Peso\"  \nmarket.base_currency         # =\u003e \"BTC\"\nmarket.quote_currency        # =\u003e \"CLP\"\nmarket.minimum_order_amount  # =\u003e #\u003cBudaApi::Models::Amount\u003e\n```\n\n### Ticker Model\n\n```ruby\nticker = client.ticker(\"BTC-CLP\")\n\nticker.last_price           # =\u003e #\u003cBudaApi::Models::Amount\u003e\nticker.min_ask             # =\u003e #\u003cBudaApi::Models::Amount\u003e\nticker.max_bid             # =\u003e #\u003cBudaApi::Models::Amount\u003e  \nticker.volume              # =\u003e #\u003cBudaApi::Models::Amount\u003e\nticker.price_variation_24h # =\u003e -2.5 (percentage)\nticker.price_variation_7d  # =\u003e 10.3 (percentage)\n```\n\n### OrderBook Model\n\n```ruby\norder_book = client.order_book(\"BTC-CLP\")\n\norder_book.asks           # =\u003e Array\u003cBudaApi::Models::OrderBookEntry\u003e\norder_book.bids           # =\u003e Array\u003cBudaApi::Models::OrderBookEntry\u003e\norder_book.best_ask       # =\u003e #\u003cBudaApi::Models::OrderBookEntry\u003e\norder_book.best_bid       # =\u003e #\u003cBudaApi::Models::OrderBookEntry\u003e\norder_book.spread         # =\u003e 50000.0 (price difference)\norder_book.spread_percentage # =\u003e 0.12 (percentage)\n```\n\n### Order Model\n\n```ruby\norder = client.order_details(12345)\n\norder.id                  # =\u003e 12345\norder.state               # =\u003e \"traded\" \norder.type                # =\u003e \"Bid\"\norder.amount              # =\u003e #\u003cBudaApi::Models::Amount\u003e\norder.limit               # =\u003e #\u003cBudaApi::Models::Amount\u003e\norder.traded_amount       # =\u003e #\u003cBudaApi::Models::Amount\u003e\norder.filled_percentage   # =\u003e 100.0\norder.is_filled?          # =\u003e true\norder.is_active?          # =\u003e false\norder.is_cancelled?       # =\u003e false\n```\n\n### Balance Model\n\n```ruby\nbalance = client.balance(\"BTC\")\n\nbalance.currency                # =\u003e \"BTC\"\nbalance.amount                  # =\u003e #\u003cBudaApi::Models::Amount\u003e (total)\nbalance.available_amount        # =\u003e #\u003cBudaApi::Models::Amount\u003e\nbalance.frozen_amount           # =\u003e #\u003cBudaApi::Models::Amount\u003e \nbalance.pending_withdraw_amount # =\u003e #\u003cBudaApi::Models::Amount\u003e\n```\n\n## Examples\n\nThe SDK includes comprehensive examples in the `examples/` directory:\n\n### Basic Examples\n\n- [`public_api_example.rb`](examples/public_api_example.rb) - Public API usage\n- [`authenticated_api_example.rb`](examples/authenticated_api_example.rb) - Authenticated API usage  \n- [`error_handling_example.rb`](examples/error_handling_example.rb) - Error handling and debugging\n\n### Advanced Examples\n\n- [`trading_bot_example.rb`](examples/trading_bot_example.rb) - Simple trading bot with price monitoring\n\n### AI-Enhanced Examples\n\n- [`ai/trading_assistant_example.rb`](examples/ai/trading_assistant_example.rb) - Comprehensive AI trading assistant\n- [`ai/natural_language_trading.rb`](examples/ai/natural_language_trading.rb) - Conversational trading interface\n- [`ai/risk_management_example.rb`](examples/ai/risk_management_example.rb) - AI-powered risk analysis\n- [`ai/anomaly_detection_example.rb`](examples/ai/anomaly_detection_example.rb) - Market anomaly detection\n- [`ai/report_generation_example.rb`](examples/ai/report_generation_example.rb) - Automated trading reports\n\n### Running Examples\n\n1. Copy the environment file:\n```bash\ncp examples/.env.example examples/.env\n```\n\n2. Edit `.env` and add your API credentials:\n```bash\nBUDA_API_KEY=your_api_key_here\nBUDA_API_SECRET=your_api_secret_here\n```\n\n3. Run the examples:\n```bash\n# Public API example (no credentials needed)\nruby examples/public_api_example.rb\n\n# AI-enhanced trading assistant\nruby examples/ai/trading_assistant_example.rb\n\n# Authenticated API example (requires credentials)\nruby examples/authenticated_api_example.rb\n\n# Error handling example\nruby examples/error_handling_example.rb\n\n# Trading bot example (requires credentials)\nruby examples/trading_bot_example.rb BTC-CLP\n```\n\n## Constants\n\nThe SDK provides convenient constants for all supported values:\n\n```ruby\n# Currencies\nBudaApi::Constants::Currency::BTC     # =\u003e \"BTC\"\nBudaApi::Constants::Currency::ALL     # =\u003e [\"BTC\", \"ETH\", \"CLP\", ...]\n\n# Markets  \nBudaApi::Constants::Market::BTC_CLP   # =\u003e \"BTC-CLP\"\nBudaApi::Constants::Market::ALL       # =\u003e [\"BTC-CLP\", \"ETH-CLP\", ...]\n\n# Order types\nBudaApi::Constants::OrderType::BID    # =\u003e \"Bid\" (buy)\nBudaApi::Constants::OrderType::ASK    # =\u003e \"Ask\" (sell)\n\n# Price types\nBudaApi::Constants::PriceType::MARKET # =\u003e \"market\"\nBudaApi::Constants::PriceType::LIMIT  # =\u003e \"limit\"\n\n# Order states\nBudaApi::Constants::OrderState::PENDING   # =\u003e \"pending\"\nBudaApi::Constants::OrderState::TRADED    # =\u003e \"traded\"\nBudaApi::Constants::OrderState::CANCELED  # =\u003e \"canceled\"\n```\n\n## Rate Limiting\n\nThe SDK automatically handles rate limiting with exponential backoff retry logic. When rate limits are hit:\n\n1. The request is automatically retried after a delay\n2. The delay increases exponentially for subsequent retries  \n3. After maximum retries, a `RateLimitError` is raised\n\nYou can configure retry behavior:\n\n```ruby\nBudaApi.configure do |config|\n  config.retries = 5           # Maximum retry attempts\n  config.timeout = 60          # Request timeout\nend\n```\n\n## Security\n\n### API Key Security\n\n- Never commit API keys to version control\n- Use environment variables or secure configuration management\n- Rotate API keys regularly\n- Use API keys with minimal required permissions\n\n### HMAC Authentication\n\nThe SDK automatically handles HMAC-SHA384 signature generation:\n\n1. Generates a unique nonce for each request\n2. Creates signature using HTTP method, path, body, and nonce\n3. Includes proper headers: `X-SBTC-APIKEY`, `X-SBTC-NONCE`, `X-SBTC-SIGNATURE`\n\n## AI Features\n\nThe BudaApi Ruby SDK includes powerful AI enhancements through RubyLLM integration:\n\n### Trading Assistant\n```ruby\n# Initialize AI trading assistant\nassistant = BudaApi.trading_assistant(client)\n\n# Get AI market analysis\nanalysis = assistant.analyze_market(\"BTC-CLP\")\nputs analysis[:ai_recommendation][:action]  # \"buy\", \"sell\", or \"hold\"\nputs analysis[:ai_recommendation][:confidence]  # Confidence percentage\n\n# Get trading strategy recommendations\nstrategy = assistant.suggest_trading_strategy(\n  market_id: \"BTC-CLP\",\n  risk_tolerance: \"medium\",\n  investment_horizon: \"short_term\"\n)\n```\n\n### Natural Language Trading\n```ruby\n# Create conversational trading interface\nnl_trader = BudaApi.natural_language_trader(client)\n\n# Execute commands in natural language\nresult = nl_trader.execute_command(\"Check my Bitcoin balance\")\nresult = nl_trader.execute_command(\"What's the current price of Ethereum?\")\nresult = nl_trader.execute_command(\"Buy 0.001 BTC at market price\")\n```\n\n### Risk Management\n```ruby\n# Initialize AI risk manager\nrisk_manager = BudaApi::AI::RiskManager.new(client)\n\n# Analyze portfolio risk with AI insights\nportfolio_risk = risk_manager.analyze_portfolio_risk(\n  include_ai_insights: true\n)\n\n# Evaluate individual trade risk\ntrade_risk = risk_manager.evaluate_trade_risk(\n  \"BTC-CLP\", \"buy\", 0.001\n)\n```\n\n### Anomaly Detection\n```ruby\n# Create market anomaly detector\ndetector = BudaApi::AI::AnomalyDetector.new(client)\n\n# Detect market anomalies with AI analysis\nanomalies = detector.detect_market_anomalies(\n  markets: [\"BTC-CLP\", \"ETH-CLP\"],\n  include_ai_analysis: true\n)\n```\n\n### Report Generation\n```ruby\n# Generate AI-powered reports\nreporter = BudaApi::AI::ReportGenerator.new(client)\n\n# Portfolio summary with AI insights\nreport = reporter.generate_portfolio_summary(\n  format: \"markdown\",\n  include_ai: true\n)\n\n# Custom AI analysis\ncustom_report = reporter.generate_custom_report(\n  \"Analyze market trends and provide investment recommendations\",\n  [:portfolio, :market]\n)\n```\n\n## Contributing\n\n1. Fork it (https://github.com/PabloB07/buda-api-ruby/fork)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n### Development Setup\n\n```bash\ngit clone https://github.com/PabloB07/buda-api-ruby.git\ncd buda-api-ruby\nbundle install\nbundle exec rspec\n```\n\n### Running Tests\n\n```bash\n# Run all tests\nbundle exec rspec\n\n# Run with coverage\nbundle exec rspec --format documentation\n\n# Run specific test file\nbundle exec rspec spec/client_spec.rb\n```\n\n## Changelog\n\n### Version 1.0.0\n\n- Initial release\n- Complete public and authenticated API coverage\n- Comprehensive error handling\n- Debug logging and monitoring\n- Rich data models with helper methods\n- Automatic retries and rate limit handling\n- Extensive documentation and examples\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Disclaimer\n\nThis SDK is provided \"as is\" without warranty. Trading cryptocurrencies involves substantial risk of loss. Always test thoroughly in a staging environment before using in production. Never risk more than you can afford to lose.\n\nThe authors and contributors are not responsible for any financial losses incurred through the use of this SDK.\n\n## Support\n\n- 📖 [API Documentation](https://api.buda.com)  \n- 🐛 [Issue Tracker](https://github.com/PabloB07/buda-api-ruby/issues)\n- 💬 [Discussions](https://github.com/PabloB07/buda-api-ruby/discussions)\n\n## Related Projects\n\n- [Buda Python SDK](https://github.com/delta575/trading-api-wrappers) - Official Python wrapper\n- [Buda API Documentation](https://api.buda.com) - Official API docs","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpablob07%2Fbuda-api-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpablob07%2Fbuda-api-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpablob07%2Fbuda-api-ruby/lists"}