# JStudio Python SDK
Official Python SDK for JStudio's API & WebSocket services - Fast, reliable API for real-time data from Various Games (Roblox).
## Installation
```bash
pip install jstudio
```
## Quick Start
```python
import jstudio
# Connect to JStudio API
client = jstudio.connect('js_your_api_key_here')
# Get all stock data
stocks = client.stocks.all()
print(f"Seed stock items: {len(stocks['seed_stock'])}")
# Get specific stock types
seed_items = client.stocks.seeds()
print(f"Found {len(seed_items)} seed items")
# Weather information
weather_data = client.weather.all()
active_weather = client.weather.active()
print(f"Active weather events: {len(active_weather)}")
# Get item information
all_seeds = client.items.seeds()
specific_item = client.items.get('apple')
# Calculator
result = client.calculator.calculate({
'Name': 'Apple',
'Weight': '5.2',
'Variant': 'Golden'
})
# Get image URLs
image_url = client.images.get_url('apple')
```
## API Reference
### Client Initialization
```python
import jstudio
client = jstudio.connect(
api_key='js_your_key_here', # Required: Your JStudio API key
base_url='https://api.joshlei.com', # Optional: Custom API base URL
timeout=30, # Optional: Request timeout in seconds
retries=3, # Optional: Number of retry attempts
retry_delay=1.0 # Optional: Delay between retries
)
```
### Stocks API
```python
# Get all stock data
all_stocks = client.stocks.all()
# Get specific stock types
seeds = client.stocks.seeds()
gear = client.stocks.gear()
eggs = client.stocks.eggs()
cosmetics = client.stocks.cosmetics()
event_shop = client.stocks.event_shop()
traveling_merchant = client.stocks.traveling_merchant()
```
### Weather API
```python
# Get all weather data
weather = client.weather.all()
# Get only active weather events
active_weather = client.weather.active()
```
### Items API
```python
# Get all items (optionally filtered by type)
all_items = client.items.all()
seed_items = client.items.all('seed')
# Get specific item
item = client.items.get('apple')
# Get items by category
seeds = client.items.seeds()
gear = client.items.gear()
eggs = client.items.eggs()
cosmetics = client.items.cosmetics()
events = client.items.events()
pets = client.items.pets()
seedpacks = client.items.seedpacks()
weather_items = client.items.weather()
```
### Calculator API
```python
# Calculate with parameters
result = client.calculator.calculate({
'Name': 'Apple',
'Weight': '5.2',
'Variant': 'Golden'
})
# Get all calculator data
all_data = client.calculator.get_all_data()
```
### Images API
```python
# Get image URL for an item
image_url = client.images.get_url('apple')
```
## Error Handling
```python
import jstudio
try:
client = jstudio.connect('js_your_key_here')
stocks = client.stocks.all()
except jstudio.JStudioApiError as e:
print(f"API Error ({e.status_code}): {e.message}")
if e.retry_after:
print(f"Retry after: {e.retry_after} seconds")
except Exception as e:
print(f"Unexpected error: {e}")
```
## Features
- **Zero dependencies** (except `requests`)
- **Automatic retries** with exponential backoff
- **Rate limiting** handling
- **Type hints** for better IDE support
- **Comprehensive error handling**
- **Same API as Node.js version** for consistency
## Requirements
- Python 3.7+
- requests >= 2.25.0
## License
MIT License - see LICENSE file for details.
## Support
- Homepage: https://api.joshlei.com
- Issues/Support: https://discord.gg/kCryJ8zPwy
- Repository: https://github.com/JStudiooo/growagarden-api
Raw data
{
"_id": null,
"home_page": "https://github.com/JStudiooo/growagarden-api",
"name": "jstudio",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "jstudio, grow-a-garden, roblox, api, sdk, gaming, real-time",
"author": "JStudio",
"author_email": "contact@joshlei.com",
"download_url": "https://files.pythonhosted.org/packages/cb/43/4862b7862d1642d193dc9993cb21e5ac00700b521f22e1def958d9413454/jstudio-1.0.0.tar.gz",
"platform": null,
"description": "# JStudio Python SDK\r\n\r\nOfficial Python SDK for JStudio's API & WebSocket services - Fast, reliable API for real-time data from Various Games (Roblox).\r\n\r\n## Installation\r\n\r\n```bash\r\npip install jstudio\r\n```\r\n\r\n## Quick Start\r\n\r\n```python\r\nimport jstudio\r\n\r\n# Connect to JStudio API\r\nclient = jstudio.connect('js_your_api_key_here')\r\n\r\n# Get all stock data\r\nstocks = client.stocks.all()\r\nprint(f\"Seed stock items: {len(stocks['seed_stock'])}\")\r\n\r\n# Get specific stock types\r\nseed_items = client.stocks.seeds()\r\nprint(f\"Found {len(seed_items)} seed items\")\r\n\r\n# Weather information\r\nweather_data = client.weather.all()\r\nactive_weather = client.weather.active()\r\nprint(f\"Active weather events: {len(active_weather)}\")\r\n\r\n# Get item information\r\nall_seeds = client.items.seeds()\r\nspecific_item = client.items.get('apple')\r\n\r\n# Calculator\r\nresult = client.calculator.calculate({\r\n 'Name': 'Apple',\r\n 'Weight': '5.2',\r\n 'Variant': 'Golden'\r\n})\r\n\r\n# Get image URLs\r\nimage_url = client.images.get_url('apple')\r\n```\r\n\r\n## API Reference\r\n\r\n### Client Initialization\r\n\r\n```python\r\nimport jstudio\r\n\r\nclient = jstudio.connect(\r\n api_key='js_your_key_here', # Required: Your JStudio API key\r\n base_url='https://api.joshlei.com', # Optional: Custom API base URL\r\n timeout=30, # Optional: Request timeout in seconds\r\n retries=3, # Optional: Number of retry attempts\r\n retry_delay=1.0 # Optional: Delay between retries\r\n)\r\n```\r\n\r\n### Stocks API\r\n\r\n```python\r\n# Get all stock data\r\nall_stocks = client.stocks.all()\r\n\r\n# Get specific stock types\r\nseeds = client.stocks.seeds()\r\ngear = client.stocks.gear()\r\neggs = client.stocks.eggs()\r\ncosmetics = client.stocks.cosmetics()\r\nevent_shop = client.stocks.event_shop()\r\ntraveling_merchant = client.stocks.traveling_merchant()\r\n```\r\n\r\n### Weather API\r\n\r\n```python\r\n# Get all weather data\r\nweather = client.weather.all()\r\n\r\n# Get only active weather events\r\nactive_weather = client.weather.active()\r\n```\r\n\r\n### Items API\r\n\r\n```python\r\n# Get all items (optionally filtered by type)\r\nall_items = client.items.all()\r\nseed_items = client.items.all('seed')\r\n\r\n# Get specific item\r\nitem = client.items.get('apple')\r\n\r\n# Get items by category\r\nseeds = client.items.seeds()\r\ngear = client.items.gear()\r\neggs = client.items.eggs()\r\ncosmetics = client.items.cosmetics()\r\nevents = client.items.events()\r\npets = client.items.pets()\r\nseedpacks = client.items.seedpacks()\r\nweather_items = client.items.weather()\r\n```\r\n\r\n### Calculator API\r\n\r\n```python\r\n# Calculate with parameters\r\nresult = client.calculator.calculate({\r\n 'Name': 'Apple',\r\n 'Weight': '5.2',\r\n 'Variant': 'Golden'\r\n})\r\n\r\n# Get all calculator data\r\nall_data = client.calculator.get_all_data()\r\n```\r\n\r\n### Images API\r\n\r\n```python\r\n# Get image URL for an item\r\nimage_url = client.images.get_url('apple')\r\n```\r\n\r\n## Error Handling\r\n\r\n```python\r\nimport jstudio\r\n\r\ntry:\r\n client = jstudio.connect('js_your_key_here')\r\n stocks = client.stocks.all()\r\nexcept jstudio.JStudioApiError as e:\r\n print(f\"API Error ({e.status_code}): {e.message}\")\r\n if e.retry_after:\r\n print(f\"Retry after: {e.retry_after} seconds\")\r\nexcept Exception as e:\r\n print(f\"Unexpected error: {e}\")\r\n```\r\n\r\n## Features\r\n\r\n- **Zero dependencies** (except `requests`)\r\n- **Automatic retries** with exponential backoff\r\n- **Rate limiting** handling\r\n- **Type hints** for better IDE support\r\n- **Comprehensive error handling**\r\n- **Same API as Node.js version** for consistency\r\n\r\n## Requirements\r\n\r\n- Python 3.7+\r\n- requests >= 2.25.0\r\n\r\n## License\r\n\r\nMIT License - see LICENSE file for details.\r\n\r\n## Support\r\n\r\n- Homepage: https://api.joshlei.com\r\n- Issues/Support: https://discord.gg/kCryJ8zPwy\r\n- Repository: https://github.com/JStudiooo/growagarden-api\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Official Python SDK for JStudio's API & WebSocket services - Fast, reliable API for real-time data from Various Games (Roblox)",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://discord.gg/kCryJ8zPwy",
"Homepage": "https://api.joshlei.com"
},
"split_keywords": [
"jstudio",
" grow-a-garden",
" roblox",
" api",
" sdk",
" gaming",
" real-time"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "876dec7873e82d2e9230a2d713d9b43c437a1e6362a951b6bc0ed4ba05e2255e",
"md5": "d7ecf92dec4840604a39010ea8b5f443",
"sha256": "d6e21dad4bc7729ba233519cc513d2f281fbee1bdc72f2fdef4f957c27e8204b"
},
"downloads": -1,
"filename": "jstudio-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d7ecf92dec4840604a39010ea8b5f443",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 6573,
"upload_time": "2025-08-04T05:45:44",
"upload_time_iso_8601": "2025-08-04T05:45:44.780470Z",
"url": "https://files.pythonhosted.org/packages/87/6d/ec7873e82d2e9230a2d713d9b43c437a1e6362a951b6bc0ed4ba05e2255e/jstudio-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cb434862b7862d1642d193dc9993cb21e5ac00700b521f22e1def958d9413454",
"md5": "6d857195d80db35c08ee85742693e2cd",
"sha256": "3571a101247db8954cfb0623204f99940f9dcdfa6ba5f711cffd741bd80b41cd"
},
"downloads": -1,
"filename": "jstudio-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "6d857195d80db35c08ee85742693e2cd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 6151,
"upload_time": "2025-08-04T05:45:46",
"upload_time_iso_8601": "2025-08-04T05:45:46.192161Z",
"url": "https://files.pythonhosted.org/packages/cb/43/4862b7862d1642d193dc9993cb21e5ac00700b521f22e1def958d9413454/jstudio-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-04 05:45:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JStudiooo",
"github_project": "growagarden-api",
"github_not_found": true,
"lcname": "jstudio"
}