thriving-api


Namethriving-api JSON
Version 1.0.6 PyPI version JSON
download
home_pageNone
SummaryOfficial Python SDK for the Thriving API - AI-powered financial analysis and trading intelligence
upload_time2025-07-15 14:38:04
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords trading finance api stocks ai machine-learning technical-analysis market-data financial-data investment
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Thriving API Python SDK

[![PyPI version](https://badge.fury.io/py/thriving-api.svg)](https://badge.fury.io/py/thriving-api)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Official Python SDK for the **Thriving API** - Your gateway to institutional-grade financial analysis and AI-powered trading intelligence.

## ๐Ÿš€ Features

- **AI-Powered Analysis**: Get buy/sell/hold recommendations with confidence scores
- **Real-Time Market Data**: Live quotes, OHLC data, and market status
- **Technical Indicators**: 50+ technical analysis tools (RSI, MACD, Bollinger Bands, etc.)
- **Company Fundamentals**: Financial statements, earnings, and key metrics
- **Options Data**: Complete options chains with Greeks and implied volatility
- **News & Sentiment**: Latest news with AI-powered sentiment analysis
- **Rate Limiting**: Intelligent rate limiting with adaptive behavior
- **Error Handling**: Comprehensive error handling and retry logic
- **Type Safety**: Full type hints and Pydantic validation
- **Async Support**: Built for high-performance async applications

## ๐Ÿ“ฆ Installation

```bash
pip install thriving-api
```

## ๐Ÿ”‘ Authentication

Get your API key from the [Thriving API Dashboard](https://tradethriving.com/api-dashboard).

```python
from thriving_api import ThrivingAPI

# Initialize client
client = ThrivingAPI(api_key="your-api-key")
```

## ๐Ÿƒ Quick Start

### AI-Powered Stock Analysis

```python
import asyncio
from thriving_api import ThrivingAPI

async def analyze_stock():
    async with ThrivingAPI(api_key="your-api-key") as client:
        # Get AI analysis for Apple
        analysis = await client.ai.analyze_symbol("AAPL")
        
        print(f"Symbol: {analysis.analysis.symbol}")
        print(f"Action: {analysis.analysis.action}")  # buy, sell, or wait
        print(f"Confidence: {analysis.analysis.get_confidence_percentage():.1f}%")
        print(f"Trade Score: {analysis.analysis.trade_score:.1f}/100")
        
        if analysis.analysis.optimal_stop_loss:
            print(f"Stop Loss: ${analysis.analysis.optimal_stop_loss:.2f}")

# Run the analysis
asyncio.run(analyze_stock())
```

### Symbol Search and Market Data

```python
async def get_market_data():
    async with ThrivingAPI(api_key="your-api-key") as client:
        # Search for symbols
        search_results = await client.symbol.search("Apple")
        best_match = search_results.results.get_best_match()
        print(f"Best match: {best_match.symbol} - {best_match.name}")
        
        # Get live quote
        quote = await client.symbol.get_live_quote("AAPL", "1min")
        latest = quote.get_latest_quote()
        print(f"Current price: ${latest.get_close():.2f}")
        print(f"Volume: {latest.get_volume():,}")
        
        # Get performance
        performance = await client.symbol.get_performance("AAPL", "1yr")
        yearly_return = performance.get_performance_float("1yr")
        print(f"1-year return: {yearly_return:.2f}%")

asyncio.run(get_market_data())
```

### Company Fundamentals

```python
async def get_fundamentals():
    async with ThrivingAPI(api_key="your-api-key") as client:
        # Get company fundamentals
        fundamentals = await client.company.get_fundamentals("AAPL")
        company = fundamentals.fundamentals
        
        print(f"P/E Ratio: {company.get_pe_ratio()}")
        print(f"Market Cap: ${company.get_market_cap():,}")
        print(f"Debt/Equity: {company.get_debt_to_equity()}")
        print(f"Dividend Yield: {company.get_dividend_yield_percent():.2f}%")
        
        # Get financial strength score
        strength = company.get_financial_strength_score()
        if strength:
            print(f"Financial Strength: {strength:.1f}/100")

asyncio.run(get_fundamentals())
```

### Technical Analysis

```python
async def technical_analysis():
    async with ThrivingAPI(api_key="your-api-key") as client:
        # Get RSI
        rsi = await client.technical.get_rsi("AAPL", "daily", 14)
        current_rsi = rsi.get_current_signal()
        print(f"RSI Signal: {current_rsi}")
        
        # Get MACD
        macd = await client.technical.get_macd("AAPL", "daily")
        macd_signal = macd.get_current_signal()
        print(f"MACD Signal: {macd_signal}")
        
        # Get Bollinger Bands
        bbands = await client.technical.get_bollinger_bands("AAPL", "daily", 20)
        latest_bands = bbands.get_latest_bands()
        if latest_bands:
            print(f"Upper Band: ${latest_bands.get_upper_band():.2f}")
            print(f"Lower Band: ${latest_bands.get_lower_band():.2f}")

asyncio.run(technical_analysis())
```

## ๐Ÿ“š API Modules

The SDK is organized into specialized modules for different types of data:

### ๐Ÿค– AI Module (`client.ai`)
- `analyze_symbol(symbol)` - Get AI trading recommendations
- `analyze_symbol_with_data(symbol, custom_data)` - Enhanced analysis with custom data

### ๐Ÿ“ˆ Symbol Module (`client.symbol`)
- `search(query)` - Search for stock symbols
- `get_performance(symbol, interval)` - Get performance metrics
- `get_live_quote(symbol, interval)` - Get real-time quotes
- `get_ohlc_daily(symbol)` - Get daily OHLC data
- `get_news(symbol)` - Get latest news and sentiment

### ๐Ÿข Company Module (`client.company`)
- `get_fundamentals(symbol)` - Get financial fundamentals
- `get_earnings(symbol)` - Get earnings data
- `get_details(symbol)` - Get company profile

### ๐Ÿ“Š Technical Module (`client.technical`)
- `get_sma(symbol, interval, period)` - Simple Moving Average
- `get_ema(symbol, interval, period)` - Exponential Moving Average
- `get_rsi(symbol, interval, period)` - Relative Strength Index
- `get_macd(symbol, interval)` - MACD indicator
- `get_bollinger_bands(symbol, interval, period)` - Bollinger Bands
- `get_stochastic(symbol, interval)` - Stochastic Oscillator
- And 40+ more technical indicators...

### ๐Ÿ“‹ Options Module (`client.options`)
- `get_chain(symbol)` - Get complete options chain
- `get_contract_details(symbol, contract)` - Get specific contract details

### ๐Ÿช Market Module (`client.market`)
- `get_status()` - Get market status and trading hours

## โš™๏ธ Configuration

### Rate Limiting

The SDK includes intelligent rate limiting to prevent API quota exhaustion:

```python
client = ThrivingAPI(
    api_key="your-api-key",
    requests_per_second=30,  # Default rate limit
    burst_limit=60,          # Burst capacity
    enable_rate_limiting=True # Enable client-side limiting
)

# Check rate limit status
rate_info = client.get_rate_limit_info()
print(f"Current rate: {rate_info['current_rate']} req/sec")
```

### Error Handling

The SDK provides comprehensive error handling:

```python
from thriving_api import (
    ThrivingAPI, 
    AuthenticationError, 
    RateLimitError, 
    ValidationError,
    SymbolNotFoundError
)

async def handle_errors():
    try:
        async with ThrivingAPI(api_key="your-api-key") as client:
            analysis = await client.ai.analyze_symbol("INVALID")
    except AuthenticationError:
        print("Invalid API key")
    except SymbolNotFoundError as e:
        print(f"Symbol not found: {e.symbol}")
    except RateLimitError as e:
        print(f"Rate limited. Retry after: {e.retry_after} seconds")
    except ValidationError as e:
        print(f"Validation error: {e.message}")

asyncio.run(handle_errors())
```

### Timeouts and Retries

```python
client = ThrivingAPI(
    api_key="your-api-key",
    timeout=60.0,      # Request timeout in seconds
    max_retries=5      # Maximum retry attempts
)
```

## ๐Ÿ“Š Response Models

All API responses are validated using Pydantic models with full type safety:

```python
# AI Analysis Response
analysis: AIAnalysisResponse = await client.ai.analyze_symbol("AAPL")
print(analysis.analysis.action)           # Typed as Literal["buy", "sell", "wait"]
print(analysis.analysis.confidence)       # Typed as float
print(analysis.analysis.trade_score)      # Typed as float

# Symbol Search Response  
results: SymbolSearchResponse = await client.symbol.search("AAPL")
matches: List[SymbolMatch] = results.results.matches

# Technical Indicator Response
rsi: RSIResponse = await client.technical.get_rsi("AAPL", "daily", 14)
latest_rsi: Optional[RSIDataPoint] = rsi.get_latest_rsi()
```

## ๐Ÿ”ง Advanced Usage

### Custom HTTP Client Configuration

```python
client = ThrivingAPI(
    api_key="your-api-key",
    base_url="https://custom-api-url.com",  # Custom base URL
    timeout=120.0,                          # Extended timeout
    max_retries=10,                         # More retries
    requests_per_second=50,                 # Higher rate limit
)
```

### Batch Operations

```python
async def batch_analysis():
    symbols = ["AAPL", "GOOGL", "MSFT", "TSLA", "NVDA"]
    
    async with ThrivingAPI(api_key="your-api-key") as client:
        # Analyze multiple symbols concurrently
        tasks = [client.ai.analyze_symbol(symbol) for symbol in symbols]
        results = await asyncio.gather(*tasks, return_exceptions=True)
        
        for symbol, result in zip(symbols, results):
            if isinstance(result, Exception):
                print(f"Error analyzing {symbol}: {result}")
            else:
                print(f"{symbol}: {result.analysis.action} (Score: {result.analysis.trade_score:.1f})")

asyncio.run(batch_analysis())
```

### Statistics and Monitoring

```python
# Get client statistics
stats = client.get_stats()
print(f"Total requests: {stats['total_requests']}")
print(f"Successful requests: {stats['successful_requests']}")
print(f"Failed requests: {stats['failed_requests']}")
print(f"Rate limited requests: {stats['rate_limited_requests']}")

# Get rate limiting info
rate_info = client.get_rate_limit_info()
print(f"Available tokens: {rate_info['available_tokens']}")
print(f"Requests per minute: {rate_info['recent_requests_per_minute']}")

## ๐Ÿงช Testing

The SDK includes comprehensive test coverage. To run tests:

```bash
# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run tests with coverage
pytest --cov=thriving_api --cov-report=html
```

## ๐Ÿ“– Examples

Check out the `examples/` directory for more comprehensive examples:

- `basic_usage.py` - Basic SDK usage patterns
- `ai_analysis.py` - AI analysis examples
- `technical_indicators.py` - Technical analysis examples
- `portfolio_analysis.py` - Portfolio-level analysis
- `options_analysis.py` - Options trading examples
- `news_sentiment.py` - News and sentiment analysis

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ†˜ Support

- **Documentation**: [https://tradethriving.com/api-documentation](https://tradethriving.com/api-documentation)
- **API Dashboard**: [https://tradethriving.com/api-dashboard](https://tradethriving.com/api-dashboard)
- **Email Support**: [support@tradethriving.com](mailto:support@tradethriving.com)
- **GitHub Issues**: [Report bugs and request features](https://github.com/thriving/thriving-api-python/issues)

## ๐Ÿ”— Links

- **Homepage**: [https://tradethriving.com](https://tradethriving.com)
- **API Documentation**: [https://tradethriving.com/api-documentation](https://tradethriving.com/api-documentation)
- **PyPI Package**: [https://pypi.org/project/thriving-api/](https://pypi.org/project/thriving-api/)
- **GitHub Repository**: [https://github.com/thriving/thriving-api-python](https://github.com/thriving/thriving-api-python)

---

**Disclaimer**: This SDK is for informational purposes only and should not be considered as financial advice. Always do your own research and consult with financial professionals before making investment decisions.
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "thriving-api",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Thriving <support@tradethriving.com>",
    "keywords": "trading, finance, api, stocks, ai, machine-learning, technical-analysis, market-data, financial-data, investment",
    "author": null,
    "author_email": "Thriving <support@tradethriving.com>",
    "download_url": "https://files.pythonhosted.org/packages/ff/88/2d14b58d153a95231f7df3a199591917b9ea77197e7596c7603a762c2076/thriving_api-1.0.6.tar.gz",
    "platform": null,
    "description": "# Thriving API Python SDK\n\n[![PyPI version](https://badge.fury.io/py/thriving-api.svg)](https://badge.fury.io/py/thriving-api)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nOfficial Python SDK for the **Thriving API** - Your gateway to institutional-grade financial analysis and AI-powered trading intelligence.\n\n## \ud83d\ude80 Features\n\n- **AI-Powered Analysis**: Get buy/sell/hold recommendations with confidence scores\n- **Real-Time Market Data**: Live quotes, OHLC data, and market status\n- **Technical Indicators**: 50+ technical analysis tools (RSI, MACD, Bollinger Bands, etc.)\n- **Company Fundamentals**: Financial statements, earnings, and key metrics\n- **Options Data**: Complete options chains with Greeks and implied volatility\n- **News & Sentiment**: Latest news with AI-powered sentiment analysis\n- **Rate Limiting**: Intelligent rate limiting with adaptive behavior\n- **Error Handling**: Comprehensive error handling and retry logic\n- **Type Safety**: Full type hints and Pydantic validation\n- **Async Support**: Built for high-performance async applications\n\n## \ud83d\udce6 Installation\n\n```bash\npip install thriving-api\n```\n\n## \ud83d\udd11 Authentication\n\nGet your API key from the [Thriving API Dashboard](https://tradethriving.com/api-dashboard).\n\n```python\nfrom thriving_api import ThrivingAPI\n\n# Initialize client\nclient = ThrivingAPI(api_key=\"your-api-key\")\n```\n\n## \ud83c\udfc3 Quick Start\n\n### AI-Powered Stock Analysis\n\n```python\nimport asyncio\nfrom thriving_api import ThrivingAPI\n\nasync def analyze_stock():\n    async with ThrivingAPI(api_key=\"your-api-key\") as client:\n        # Get AI analysis for Apple\n        analysis = await client.ai.analyze_symbol(\"AAPL\")\n        \n        print(f\"Symbol: {analysis.analysis.symbol}\")\n        print(f\"Action: {analysis.analysis.action}\")  # buy, sell, or wait\n        print(f\"Confidence: {analysis.analysis.get_confidence_percentage():.1f}%\")\n        print(f\"Trade Score: {analysis.analysis.trade_score:.1f}/100\")\n        \n        if analysis.analysis.optimal_stop_loss:\n            print(f\"Stop Loss: ${analysis.analysis.optimal_stop_loss:.2f}\")\n\n# Run the analysis\nasyncio.run(analyze_stock())\n```\n\n### Symbol Search and Market Data\n\n```python\nasync def get_market_data():\n    async with ThrivingAPI(api_key=\"your-api-key\") as client:\n        # Search for symbols\n        search_results = await client.symbol.search(\"Apple\")\n        best_match = search_results.results.get_best_match()\n        print(f\"Best match: {best_match.symbol} - {best_match.name}\")\n        \n        # Get live quote\n        quote = await client.symbol.get_live_quote(\"AAPL\", \"1min\")\n        latest = quote.get_latest_quote()\n        print(f\"Current price: ${latest.get_close():.2f}\")\n        print(f\"Volume: {latest.get_volume():,}\")\n        \n        # Get performance\n        performance = await client.symbol.get_performance(\"AAPL\", \"1yr\")\n        yearly_return = performance.get_performance_float(\"1yr\")\n        print(f\"1-year return: {yearly_return:.2f}%\")\n\nasyncio.run(get_market_data())\n```\n\n### Company Fundamentals\n\n```python\nasync def get_fundamentals():\n    async with ThrivingAPI(api_key=\"your-api-key\") as client:\n        # Get company fundamentals\n        fundamentals = await client.company.get_fundamentals(\"AAPL\")\n        company = fundamentals.fundamentals\n        \n        print(f\"P/E Ratio: {company.get_pe_ratio()}\")\n        print(f\"Market Cap: ${company.get_market_cap():,}\")\n        print(f\"Debt/Equity: {company.get_debt_to_equity()}\")\n        print(f\"Dividend Yield: {company.get_dividend_yield_percent():.2f}%\")\n        \n        # Get financial strength score\n        strength = company.get_financial_strength_score()\n        if strength:\n            print(f\"Financial Strength: {strength:.1f}/100\")\n\nasyncio.run(get_fundamentals())\n```\n\n### Technical Analysis\n\n```python\nasync def technical_analysis():\n    async with ThrivingAPI(api_key=\"your-api-key\") as client:\n        # Get RSI\n        rsi = await client.technical.get_rsi(\"AAPL\", \"daily\", 14)\n        current_rsi = rsi.get_current_signal()\n        print(f\"RSI Signal: {current_rsi}\")\n        \n        # Get MACD\n        macd = await client.technical.get_macd(\"AAPL\", \"daily\")\n        macd_signal = macd.get_current_signal()\n        print(f\"MACD Signal: {macd_signal}\")\n        \n        # Get Bollinger Bands\n        bbands = await client.technical.get_bollinger_bands(\"AAPL\", \"daily\", 20)\n        latest_bands = bbands.get_latest_bands()\n        if latest_bands:\n            print(f\"Upper Band: ${latest_bands.get_upper_band():.2f}\")\n            print(f\"Lower Band: ${latest_bands.get_lower_band():.2f}\")\n\nasyncio.run(technical_analysis())\n```\n\n## \ud83d\udcda API Modules\n\nThe SDK is organized into specialized modules for different types of data:\n\n### \ud83e\udd16 AI Module (`client.ai`)\n- `analyze_symbol(symbol)` - Get AI trading recommendations\n- `analyze_symbol_with_data(symbol, custom_data)` - Enhanced analysis with custom data\n\n### \ud83d\udcc8 Symbol Module (`client.symbol`)\n- `search(query)` - Search for stock symbols\n- `get_performance(symbol, interval)` - Get performance metrics\n- `get_live_quote(symbol, interval)` - Get real-time quotes\n- `get_ohlc_daily(symbol)` - Get daily OHLC data\n- `get_news(symbol)` - Get latest news and sentiment\n\n### \ud83c\udfe2 Company Module (`client.company`)\n- `get_fundamentals(symbol)` - Get financial fundamentals\n- `get_earnings(symbol)` - Get earnings data\n- `get_details(symbol)` - Get company profile\n\n### \ud83d\udcca Technical Module (`client.technical`)\n- `get_sma(symbol, interval, period)` - Simple Moving Average\n- `get_ema(symbol, interval, period)` - Exponential Moving Average\n- `get_rsi(symbol, interval, period)` - Relative Strength Index\n- `get_macd(symbol, interval)` - MACD indicator\n- `get_bollinger_bands(symbol, interval, period)` - Bollinger Bands\n- `get_stochastic(symbol, interval)` - Stochastic Oscillator\n- And 40+ more technical indicators...\n\n### \ud83d\udccb Options Module (`client.options`)\n- `get_chain(symbol)` - Get complete options chain\n- `get_contract_details(symbol, contract)` - Get specific contract details\n\n### \ud83c\udfea Market Module (`client.market`)\n- `get_status()` - Get market status and trading hours\n\n## \u2699\ufe0f Configuration\n\n### Rate Limiting\n\nThe SDK includes intelligent rate limiting to prevent API quota exhaustion:\n\n```python\nclient = ThrivingAPI(\n    api_key=\"your-api-key\",\n    requests_per_second=30,  # Default rate limit\n    burst_limit=60,          # Burst capacity\n    enable_rate_limiting=True # Enable client-side limiting\n)\n\n# Check rate limit status\nrate_info = client.get_rate_limit_info()\nprint(f\"Current rate: {rate_info['current_rate']} req/sec\")\n```\n\n### Error Handling\n\nThe SDK provides comprehensive error handling:\n\n```python\nfrom thriving_api import (\n    ThrivingAPI, \n    AuthenticationError, \n    RateLimitError, \n    ValidationError,\n    SymbolNotFoundError\n)\n\nasync def handle_errors():\n    try:\n        async with ThrivingAPI(api_key=\"your-api-key\") as client:\n            analysis = await client.ai.analyze_symbol(\"INVALID\")\n    except AuthenticationError:\n        print(\"Invalid API key\")\n    except SymbolNotFoundError as e:\n        print(f\"Symbol not found: {e.symbol}\")\n    except RateLimitError as e:\n        print(f\"Rate limited. Retry after: {e.retry_after} seconds\")\n    except ValidationError as e:\n        print(f\"Validation error: {e.message}\")\n\nasyncio.run(handle_errors())\n```\n\n### Timeouts and Retries\n\n```python\nclient = ThrivingAPI(\n    api_key=\"your-api-key\",\n    timeout=60.0,      # Request timeout in seconds\n    max_retries=5      # Maximum retry attempts\n)\n```\n\n## \ud83d\udcca Response Models\n\nAll API responses are validated using Pydantic models with full type safety:\n\n```python\n# AI Analysis Response\nanalysis: AIAnalysisResponse = await client.ai.analyze_symbol(\"AAPL\")\nprint(analysis.analysis.action)           # Typed as Literal[\"buy\", \"sell\", \"wait\"]\nprint(analysis.analysis.confidence)       # Typed as float\nprint(analysis.analysis.trade_score)      # Typed as float\n\n# Symbol Search Response  \nresults: SymbolSearchResponse = await client.symbol.search(\"AAPL\")\nmatches: List[SymbolMatch] = results.results.matches\n\n# Technical Indicator Response\nrsi: RSIResponse = await client.technical.get_rsi(\"AAPL\", \"daily\", 14)\nlatest_rsi: Optional[RSIDataPoint] = rsi.get_latest_rsi()\n```\n\n## \ud83d\udd27 Advanced Usage\n\n### Custom HTTP Client Configuration\n\n```python\nclient = ThrivingAPI(\n    api_key=\"your-api-key\",\n    base_url=\"https://custom-api-url.com\",  # Custom base URL\n    timeout=120.0,                          # Extended timeout\n    max_retries=10,                         # More retries\n    requests_per_second=50,                 # Higher rate limit\n)\n```\n\n### Batch Operations\n\n```python\nasync def batch_analysis():\n    symbols = [\"AAPL\", \"GOOGL\", \"MSFT\", \"TSLA\", \"NVDA\"]\n    \n    async with ThrivingAPI(api_key=\"your-api-key\") as client:\n        # Analyze multiple symbols concurrently\n        tasks = [client.ai.analyze_symbol(symbol) for symbol in symbols]\n        results = await asyncio.gather(*tasks, return_exceptions=True)\n        \n        for symbol, result in zip(symbols, results):\n            if isinstance(result, Exception):\n                print(f\"Error analyzing {symbol}: {result}\")\n            else:\n                print(f\"{symbol}: {result.analysis.action} (Score: {result.analysis.trade_score:.1f})\")\n\nasyncio.run(batch_analysis())\n```\n\n### Statistics and Monitoring\n\n```python\n# Get client statistics\nstats = client.get_stats()\nprint(f\"Total requests: {stats['total_requests']}\")\nprint(f\"Successful requests: {stats['successful_requests']}\")\nprint(f\"Failed requests: {stats['failed_requests']}\")\nprint(f\"Rate limited requests: {stats['rate_limited_requests']}\")\n\n# Get rate limiting info\nrate_info = client.get_rate_limit_info()\nprint(f\"Available tokens: {rate_info['available_tokens']}\")\nprint(f\"Requests per minute: {rate_info['recent_requests_per_minute']}\")\n\n## \ud83e\uddea Testing\n\nThe SDK includes comprehensive test coverage. To run tests:\n\n```bash\n# Install development dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Run tests with coverage\npytest --cov=thriving_api --cov-report=html\n```\n\n## \ud83d\udcd6 Examples\n\nCheck out the `examples/` directory for more comprehensive examples:\n\n- `basic_usage.py` - Basic SDK usage patterns\n- `ai_analysis.py` - AI analysis examples\n- `technical_indicators.py` - Technical analysis examples\n- `portfolio_analysis.py` - Portfolio-level analysis\n- `options_analysis.py` - Options trading examples\n- `news_sentiment.py` - News and sentiment analysis\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83c\udd98 Support\n\n- **Documentation**: [https://tradethriving.com/api-documentation](https://tradethriving.com/api-documentation)\n- **API Dashboard**: [https://tradethriving.com/api-dashboard](https://tradethriving.com/api-dashboard)\n- **Email Support**: [support@tradethriving.com](mailto:support@tradethriving.com)\n- **GitHub Issues**: [Report bugs and request features](https://github.com/thriving/thriving-api-python/issues)\n\n## \ud83d\udd17 Links\n\n- **Homepage**: [https://tradethriving.com](https://tradethriving.com)\n- **API Documentation**: [https://tradethriving.com/api-documentation](https://tradethriving.com/api-documentation)\n- **PyPI Package**: [https://pypi.org/project/thriving-api/](https://pypi.org/project/thriving-api/)\n- **GitHub Repository**: [https://github.com/thriving/thriving-api-python](https://github.com/thriving/thriving-api-python)\n\n---\n\n**Disclaimer**: This SDK is for informational purposes only and should not be considered as financial advice. Always do your own research and consult with financial professionals before making investment decisions.\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Official Python SDK for the Thriving API - AI-powered financial analysis and trading intelligence",
    "version": "1.0.6",
    "project_urls": {
        "API Documentation": "https://tradethriving.com/api-documentation",
        "Bug Tracker": "https://github.com/thriving/thriving-api-python/issues",
        "Documentation": "https://tradethriving.com/api-documentation",
        "Homepage": "https://tradethriving.com",
        "Repository": "https://github.com/thriving/thriving-api-python"
    },
    "split_keywords": [
        "trading",
        " finance",
        " api",
        " stocks",
        " ai",
        " machine-learning",
        " technical-analysis",
        " market-data",
        " financial-data",
        " investment"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "57d2d7ad0e470faa69fc14720a460305b39c971e1de6c85d43856475375ba45b",
                "md5": "b0618dfa450b12d1bf221efe0a3c8246",
                "sha256": "8bd73899dffdbd31e0cbdf983434c5a0b0587c468f1586a3c6b6fa0145cc61a2"
            },
            "downloads": -1,
            "filename": "thriving_api-1.0.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b0618dfa450b12d1bf221efe0a3c8246",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 44084,
            "upload_time": "2025-07-15T14:38:03",
            "upload_time_iso_8601": "2025-07-15T14:38:03.016918Z",
            "url": "https://files.pythonhosted.org/packages/57/d2/d7ad0e470faa69fc14720a460305b39c971e1de6c85d43856475375ba45b/thriving_api-1.0.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff882d14b58d153a95231f7df3a199591917b9ea77197e7596c7603a762c2076",
                "md5": "2da19b67d9862e86f2674b79d0a645a5",
                "sha256": "6519a69c2cb33c348ede4de066fa60f57d5bf6edef13c1e2f0dca75dd1bbf990"
            },
            "downloads": -1,
            "filename": "thriving_api-1.0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "2da19b67d9862e86f2674b79d0a645a5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 46107,
            "upload_time": "2025-07-15T14:38:04",
            "upload_time_iso_8601": "2025-07-15T14:38:04.269132Z",
            "url": "https://files.pythonhosted.org/packages/ff/88/2d14b58d153a95231f7df3a199591917b9ea77197e7596c7603a762c2076/thriving_api-1.0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-15 14:38:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "thriving",
    "github_project": "thriving-api-python",
    "github_not_found": true,
    "lcname": "thriving-api"
}
        
Elapsed time: 1.11887s