# Thriving API Python SDK
[](https://badge.fury.io/py/thriving-api)
[](https://www.python.org/downloads/)
[](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[](https://badge.fury.io/py/thriving-api)\n[](https://www.python.org/downloads/)\n[](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"
}