Appearance
Installation
Quick Start
The Urban Sky SDK is available for JavaScript and Python. Choose your preferred language below.
JavaScript/TypeScript
Prerequisites
Install the real-time WebSocket client alongside the SDK:
bash
npm install centrifugeRequirements:
- Node.js 18+
centrifuge(^5.5.3) — real-time WebSocket client, a required peer dependency
Note: centrifuge is a peer dependency and is deliberately excluded from the SDK bundle, so you must install it yourself. HTTP requests do use Node.js built-in modules (https, http, url), so no additional HTTP client is required.
Using the CDN Loader
Load the SDK dynamically in your Node.js application:
javascript
// Load the SDK dynamically
const response = await fetch('https://sdk.atmosys.com/runtime/js/current/loader.js')
const loaderCode = await response.text()
eval(loaderCode) // Loads the latest SDK version
// SDK is now available as UrbanSkySDK
const sdk = await UrbanSkySDK.init({
apiToken: process.env.URBAN_SKY_API_TOKEN,
})Python
Prerequisites
Install the real-time WebSocket client:
bash
pip install centrifuge-pythonRequirements:
- Python 3.8+
centrifuge-python(>=0.3.0) - real-time WebSocket client, a required dependency
Note: centrifuge-python is a hard dependency of the SDK, not an optional extra, and it must be available in your environment. The SDK runtime itself is fetched from the CDN by the loader.
Using the CDN Loader
Load the SDK dynamically in your Python application:
python
import asyncio
import os
import requests # pip install requests
# Loads the latest SDK version
exec(requests.get('https://sdk.atmosys.com/runtime/py/current/loader.py').text)
async def main():
# SDK is now available as UrbanSkySDK
sdk = await UrbanSkySDK.init({
'apiToken': os.getenv('URBAN_SKY_API_TOKEN')
})
asyncio.run(main())Environment Setup
Environment Variables
Set up your environment variables:
bash
# .env file
URBAN_SKY_API_TOKEN=your-api-token-hereVerification
Test Your Installation
JavaScript:
javascript
try {
const sdk = await UrbanSkySDK.init({
apiToken: 'your-api-token',
})
console.log('✅ SDK connected successfully!')
} catch (err) {
console.error('❌ Connection failed:', err)
}Python:
python
import asyncio
async def test_connection():
try:
sdk = await UrbanSkySDK.init({
'apiToken': 'your-api-token'
})
print('✅ SDK connected successfully!')
except Exception as e:
print(f'❌ Connection failed: {e}')
asyncio.run(test_connection())Dependency Installation Issues
JavaScript Common Issues
"SDK is not supported in browser environments"
- The JavaScript SDK is Node.js only. For browser applications, consider using our REST API directly.
Python Common Issues
"No module named 'urbansky_sdk'" or "No module named 'centrifuge'"
bash
# Install the required dependencies — the SDK runtime itself comes from the loader
pip install centrifuge-python requests
# Or using a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install centrifuge-python requests"ModuleNotFoundError" with async/await
- Ensure you're using Python 3.8+ for proper async support
Next Steps
- Get an API Token: Follow the Authentication Guide
- Try Basic Usage: Check out Basic Usage Examples
- Explore Features: See JavaScript SDK or Python SDK
Troubleshooting
Common Installation Issues
"SDK not found" or "UrbanSkySDK is not defined"
- Check network connectivity to
sdk.atmosys.com - Verify the loader script executed successfully
"Module not found" (Python)
- Ensure you're running Python 3.8+
- Check that the required
centrifuge-pythondependency is installed in your environment - Check that the loader script downloaded correctly and verify file permissions
Getting Help
- Check the Error Handling Guide
- Contact support with installation details