# OrbitalsAI Python SDK
[](https://badge.fury.io/py/orbitalsai)
[](https://pypi.org/project/orbitalsai/)
[](https://opensource.org/licenses/MIT)
A simple and powerful Python SDK for the OrbitalsAI API. Transcribe audio files in multiple African languages with optional SRT subtitle generation.
## ✨ Features
- 🚀 **Simple API** - Just 3 lines to transcribe audio
- 🔄 **Sync & Async** - Use synchronously or asynchronously
- 🌍 **African Languages** - Support for Hausa, Igbo, Yoruba, Swahili, and more
- 📝 **SRT Subtitles** - Generate subtitle files automatically
- 💰 **Balance Management** - Built-in billing and usage tracking
- 🔒 **Secure** - API key authentication
- 📦 **Easy Installation** - `pip install orbitalsai`
## 🚀 Quick Start
### Installation
```bash
pip install orbitalsai
```
### Basic Usage
```python
import orbitalsai
# Initialize client
client = orbitalsai.Client(api_key="your_api_key_here")
# Transcribe audio (waits automatically)
transcript = client.transcribe("audio.mp3")
print(transcript.text)
```
That's it! 🎉
## 📖 Table of Contents
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Authentication](#authentication)
- [Basic Transcription](#basic-transcription)
- [Advanced Features](#advanced-features)
- [Async Usage](#async-usage)
- [Error Handling](#error-handling)
- [API Reference](#api-reference)
- [Supported Languages](#supported-languages)
- [Supported Formats](#supported-formats)
- [Troubleshooting](#troubleshooting)
## 🔑 Authentication
Get your API key from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).
```python
import orbitalsai
client = orbitalsai.Client(api_key="your_api_key_here")
```
## 🎵 Basic Transcription
### Simple Transcription
```python
import orbitalsai
client = orbitalsai.Client(api_key="your_api_key_here")
# Transcribe audio file
transcript = client.transcribe("audio.mp3")
print(transcript.text)
```
### With Language and SRT
```python
import orbitalsai
client = orbitalsai.Client(api_key="your_api_key_here")
# Transcribe in Hausa with SRT subtitles
transcript = client.transcribe(
"audio.mp3",
language="hausa",
generate_srt=True
)
print(transcript.text)
print(transcript.srt_content) # SRT subtitle content
```
### Don't Wait (Advanced)
```python
import orbitalsai
client = orbitalsai.Client(api_key="your_api_key_here")
# Start transcription without waiting
task = client.transcribe("audio.mp3", wait=False)
print(f"Task started: {task.task_id}")
# Check status later
status = client.get_task(task.task_id)
if status.status == "completed":
print(status.result_text)
# Or wait for completion
transcript = client.wait_for_task(task.task_id)
print(transcript.text)
```
## 🔄 Async Usage
Perfect for processing multiple files or building web applications.
```python
import asyncio
import orbitalsai
async def main():
async with orbitalsai.AsyncClient(api_key="your_api_key_here") as client:
# Transcribe multiple files concurrently
tasks = await asyncio.gather(
client.transcribe("audio1.mp3"),
client.transcribe("audio2.wav"),
client.transcribe("audio3.m4a")
)
for transcript in tasks:
print(transcript.text)
asyncio.run(main())
```
## 💰 Balance Management
### Check Balance
```python
import orbitalsai
client = orbitalsai.Client(api_key="your_api_key_here")
balance = client.get_balance()
print(f"Current balance: ${balance.balance:.2f}")
print(f"Last updated: {balance.last_updated}")
```
### Usage History
```python
import orbitalsai
from datetime import date, timedelta
client = orbitalsai.Client(api_key="QDOBQ2PJ.4ThV4fwk-27hpBvh8pYVvAdOOQlA4Lk1fJQdI6EL9Yk")
# Get last 7 days of usage
end_date = date.today()
start_date = end_date - timedelta(days=7)
usage = client.get_daily_usage(start_date=start_date, end_date=end_date)
print(f"Total cost: ${usage.total_cost:.2f}")
print(f"Total audio processed: {usage.total_audio_seconds:.1f} seconds")
for day in usage.daily_records:
print(f"{day.date}: ${day.total_cost:.4f} ({day.transcription_usage:.1f}s transcription)")
```
## 🛠️ Advanced Features
### List All Tasks
```python
import orbitalsai
client = orbitalsai.Client(api_key="your_api_key_here")
tasks = client.list_tasks()
for task in tasks:
print(f"Task {task.task_id}: {task.status} - {task.original_filename}")
```
### Get User Information
```python
import orbitalsai
client = orbitalsai.Client(api_key="your_api_key_here")
user = client.get_user()
print(f"User: {user.first_name} {user.last_name} ({user.email})")
print(f"Verified: {user.is_verified}")
```
## ⚠️ Error Handling
The SDK provides specific exceptions for different error scenarios.
```python
import orbitalsai
from orbitalsai.exceptions import (
AuthenticationError, InsufficientBalanceError,
UnsupportedFileError, UnsupportedLanguageError,
TranscriptionError, TimeoutError
)
client = orbitalsai.Client(api_key="your_api_key_here")
try:
transcript = client.transcribe("audio.mp3", language="hausa")
print(transcript.text)
except UnsupportedFileError:
print("File format not supported")
except UnsupportedLanguageError:
print("Language not supported")
except InsufficientBalanceError:
print("Not enough credits")
except AuthenticationError:
print("Invalid API key")
except TranscriptionError as e:
print(f"Transcription failed: {e}")
except TimeoutError:
print("Transcription timed out")
except Exception as e:
print(f"Unexpected error: {e}")
```
## 📚 API Reference
### Client Methods
#### `transcribe(file_path, language="english", generate_srt=False, wait=True, timeout=300, poll_interval=5)`
Transcribe an audio file.
**Parameters:**
- `file_path` (str): Path to the audio file
- `language` (str): Language code (default: "english")
- `generate_srt` (bool): Generate SRT subtitles (default: False)
- `wait` (bool): Wait for completion (default: True)
- `timeout` (int): Maximum wait time in seconds (default: 300)
- `poll_interval` (int): Seconds between status checks (default: 5)
**Returns:** `Transcript` object (if wait=True) or `TranscriptTask` object (if wait=False)
#### `get_task(task_id)`
Get the status of a transcription task.
**Parameters:**
- `task_id` (int): ID of the task
**Returns:** `TranscriptTask` object
#### `wait_for_task(task_id, timeout=300, poll_interval=5)`
Wait for a task to complete.
**Parameters:**
- `task_id` (int): ID of the task
- `timeout` (int): Maximum wait time in seconds
- `poll_interval` (int): Seconds between status checks
**Returns:** `Transcript` object
#### `list_tasks()`
Get all transcription tasks for the current user.
**Returns:** List of `TranscriptTask` objects
#### `get_balance()`
Get the current user's balance.
**Returns:** `Balance` object
#### `get_usage_history(start_date=None, end_date=None, page=1, page_size=50)`
Get usage history for the current user.
**Returns:** `UsageHistory` object
#### `get_daily_usage(start_date=None, end_date=None, page=1, page_size=30)`
Get daily usage history for the current user.
**Returns:** `DailyUsage` object
#### `get_user()`
Get current user details.
**Returns:** `User` object
### Data Models
#### `Transcript`
- `text` (str): Transcribed text
- `srt_content` (str, optional): SRT subtitle content
- `task_id` (int): Task ID
- `original_filename` (str): Original filename
- `audio_url` (str, optional): URL to processed audio
#### `TranscriptTask`
- `task_id` (int): Task ID
- `status` (str): Task status ("pending", "processing", "completed", "failed")
- `original_filename` (str): Original filename
- `audio_url` (str, optional): URL to processed audio
- `srt_requested` (bool): Whether SRT was requested
- `result_text` (str, optional): Transcribed text
- `srt_content` (str, optional): SRT subtitle content
- `error` (str, optional): Error message if failed
#### `Balance`
- `balance` (float): Current balance in credits
- `last_updated` (datetime): Last update timestamp
## 🌍 Supported Languages
- **English** (`english`)
- **Hausa** (`hausa`)
- **Igbo** (`igbo`)
- **Yoruba** (`yoruba`)
- **Swahili** (`swahili`)
- **Pidgin** (`pidgin`)
- **Kinyarwanda** (`kinyarwanda`)
## 📁 Supported Formats
### Audio Formats
- WAV (`.wav`, `.wave`)
- MP3 (`.mp3`, `.mpeg`)
- OGG (`.ogg`, `.oga`)
- FLAC (`.flac`)
- AAC (`.aac`)
- M4A (`.m4a`)
- WMA (`.wma`)
- AMR (`.amr`)
- 3GP (`.3gp`)
### Maximum File Size
- **200 MB** per file
## 🔧 Troubleshooting
### Common Issues
**Q: I get "Invalid API key" error**
A: Make sure your API key is correct. Get it from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).
**Q: I get "Insufficient balance" error**
A: Add credits to your account through the dashboard.
**Q: I get "Unsupported file format" error**
A: Make sure your audio file is in a supported format (see [Supported Formats](#supported-formats)).
**Q: Transcription takes too long**
A: Large files take longer to process. You can increase the timeout:
```python
transcript = client.transcribe("large_file.mp3", timeout=600) # 10 minutes
```
**Q: I get "Unsupported language" error**
A: Make sure you're using a supported language code (see [Supported Languages](#supported-languages)).
### Getting Help
- 📧 Email: support@orbitalsai.com
- 🐛 Issues: [GitHub Issues](https://github.com/orbitalsai/orbitalsai-python-sdk/issues)
- 📖 Docs: [Documentation](https://docs.orbitalsai.com)
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## 🙏 Acknowledgments
- Built for the African AI community
- Powered by OrbitalsAI
---
Made by the OrbitalsAI team
Raw data
{
"_id": null,
"home_page": "https://github.com/orbitalsai/orbitalsai-python-sdk",
"name": "orbitalsai",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "OrbitalsAI <support@orbitalsai.com>",
"keywords": "ai, transcription, audio, speech, african languages, srt, subtitles",
"author": "OrbitalsAI",
"author_email": "OrbitalsAI <support@orbitalsai.com>",
"download_url": "https://files.pythonhosted.org/packages/5b/e2/e752bc5ff680e0e876adbc8dbe9523f940f550f02d9abee5c7f79fb40b8b/orbitalsai-1.0.0.tar.gz",
"platform": null,
"description": "# OrbitalsAI Python SDK\n\n[](https://badge.fury.io/py/orbitalsai)\n[](https://pypi.org/project/orbitalsai/)\n[](https://opensource.org/licenses/MIT)\n\nA simple and powerful Python SDK for the OrbitalsAI API. Transcribe audio files in multiple African languages with optional SRT subtitle generation.\n\n## \u2728 Features\n\n- \ud83d\ude80 **Simple API** - Just 3 lines to transcribe audio\n- \ud83d\udd04 **Sync & Async** - Use synchronously or asynchronously\n- \ud83c\udf0d **African Languages** - Support for Hausa, Igbo, Yoruba, Swahili, and more\n- \ud83d\udcdd **SRT Subtitles** - Generate subtitle files automatically\n- \ud83d\udcb0 **Balance Management** - Built-in billing and usage tracking\n- \ud83d\udd12 **Secure** - API key authentication\n- \ud83d\udce6 **Easy Installation** - `pip install orbitalsai`\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install orbitalsai\n```\n\n### Basic Usage\n\n```python\nimport orbitalsai\n\n# Initialize client\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Transcribe audio (waits automatically)\ntranscript = client.transcribe(\"audio.mp3\")\nprint(transcript.text)\n```\n\nThat's it! \ud83c\udf89\n\n## \ud83d\udcd6 Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Authentication](#authentication)\n- [Basic Transcription](#basic-transcription)\n- [Advanced Features](#advanced-features)\n- [Async Usage](#async-usage)\n- [Error Handling](#error-handling)\n- [API Reference](#api-reference)\n- [Supported Languages](#supported-languages)\n- [Supported Formats](#supported-formats)\n- [Troubleshooting](#troubleshooting)\n\n## \ud83d\udd11 Authentication\n\nGet your API key from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n```\n\n## \ud83c\udfb5 Basic Transcription\n\n### Simple Transcription\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Transcribe audio file\ntranscript = client.transcribe(\"audio.mp3\")\nprint(transcript.text)\n```\n\n### With Language and SRT\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Transcribe in Hausa with SRT subtitles\ntranscript = client.transcribe(\n \"audio.mp3\",\n language=\"hausa\",\n generate_srt=True\n)\n\nprint(transcript.text)\nprint(transcript.srt_content) # SRT subtitle content\n```\n\n### Don't Wait (Advanced)\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Start transcription without waiting\ntask = client.transcribe(\"audio.mp3\", wait=False)\nprint(f\"Task started: {task.task_id}\")\n\n# Check status later\nstatus = client.get_task(task.task_id)\nif status.status == \"completed\":\n print(status.result_text)\n\n# Or wait for completion\ntranscript = client.wait_for_task(task.task_id)\nprint(transcript.text)\n```\n\n## \ud83d\udd04 Async Usage\n\nPerfect for processing multiple files or building web applications.\n\n```python\nimport asyncio\nimport orbitalsai\n\nasync def main():\n async with orbitalsai.AsyncClient(api_key=\"your_api_key_here\") as client:\n # Transcribe multiple files concurrently\n tasks = await asyncio.gather(\n client.transcribe(\"audio1.mp3\"),\n client.transcribe(\"audio2.wav\"),\n client.transcribe(\"audio3.m4a\")\n )\n \n for transcript in tasks:\n print(transcript.text)\n\nasyncio.run(main())\n```\n\n## \ud83d\udcb0 Balance Management\n\n### Check Balance\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\nbalance = client.get_balance()\nprint(f\"Current balance: ${balance.balance:.2f}\")\nprint(f\"Last updated: {balance.last_updated}\")\n```\n\n### Usage History\n\n```python\nimport orbitalsai\nfrom datetime import date, timedelta\n\nclient = orbitalsai.Client(api_key=\"QDOBQ2PJ.4ThV4fwk-27hpBvh8pYVvAdOOQlA4Lk1fJQdI6EL9Yk\")\n\n# Get last 7 days of usage\nend_date = date.today()\nstart_date = end_date - timedelta(days=7)\n\nusage = client.get_daily_usage(start_date=start_date, end_date=end_date)\nprint(f\"Total cost: ${usage.total_cost:.2f}\")\nprint(f\"Total audio processed: {usage.total_audio_seconds:.1f} seconds\")\n\nfor day in usage.daily_records:\n print(f\"{day.date}: ${day.total_cost:.4f} ({day.transcription_usage:.1f}s transcription)\")\n```\n\n## \ud83d\udee0\ufe0f Advanced Features\n\n### List All Tasks\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\ntasks = client.list_tasks()\nfor task in tasks:\n print(f\"Task {task.task_id}: {task.status} - {task.original_filename}\")\n```\n\n### Get User Information\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\nuser = client.get_user()\nprint(f\"User: {user.first_name} {user.last_name} ({user.email})\")\nprint(f\"Verified: {user.is_verified}\")\n```\n\n## \u26a0\ufe0f Error Handling\n\nThe SDK provides specific exceptions for different error scenarios.\n\n```python\nimport orbitalsai\nfrom orbitalsai.exceptions import (\n AuthenticationError, InsufficientBalanceError, \n UnsupportedFileError, UnsupportedLanguageError,\n TranscriptionError, TimeoutError\n)\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\ntry:\n transcript = client.transcribe(\"audio.mp3\", language=\"hausa\")\n print(transcript.text)\n \nexcept UnsupportedFileError:\n print(\"File format not supported\")\nexcept UnsupportedLanguageError:\n print(\"Language not supported\")\nexcept InsufficientBalanceError:\n print(\"Not enough credits\")\nexcept AuthenticationError:\n print(\"Invalid API key\")\nexcept TranscriptionError as e:\n print(f\"Transcription failed: {e}\")\nexcept TimeoutError:\n print(\"Transcription timed out\")\nexcept Exception as e:\n print(f\"Unexpected error: {e}\")\n```\n\n## \ud83d\udcda API Reference\n\n### Client Methods\n\n#### `transcribe(file_path, language=\"english\", generate_srt=False, wait=True, timeout=300, poll_interval=5)`\n\nTranscribe an audio file.\n\n**Parameters:**\n- `file_path` (str): Path to the audio file\n- `language` (str): Language code (default: \"english\")\n- `generate_srt` (bool): Generate SRT subtitles (default: False)\n- `wait` (bool): Wait for completion (default: True)\n- `timeout` (int): Maximum wait time in seconds (default: 300)\n- `poll_interval` (int): Seconds between status checks (default: 5)\n\n**Returns:** `Transcript` object (if wait=True) or `TranscriptTask` object (if wait=False)\n\n#### `get_task(task_id)`\n\nGet the status of a transcription task.\n\n**Parameters:**\n- `task_id` (int): ID of the task\n\n**Returns:** `TranscriptTask` object\n\n#### `wait_for_task(task_id, timeout=300, poll_interval=5)`\n\nWait for a task to complete.\n\n**Parameters:**\n- `task_id` (int): ID of the task\n- `timeout` (int): Maximum wait time in seconds\n- `poll_interval` (int): Seconds between status checks\n\n**Returns:** `Transcript` object\n\n#### `list_tasks()`\n\nGet all transcription tasks for the current user.\n\n**Returns:** List of `TranscriptTask` objects\n\n#### `get_balance()`\n\nGet the current user's balance.\n\n**Returns:** `Balance` object\n\n#### `get_usage_history(start_date=None, end_date=None, page=1, page_size=50)`\n\nGet usage history for the current user.\n\n**Returns:** `UsageHistory` object\n\n#### `get_daily_usage(start_date=None, end_date=None, page=1, page_size=30)`\n\nGet daily usage history for the current user.\n\n**Returns:** `DailyUsage` object\n\n#### `get_user()`\n\nGet current user details.\n\n**Returns:** `User` object\n\n### Data Models\n\n#### `Transcript`\n- `text` (str): Transcribed text\n- `srt_content` (str, optional): SRT subtitle content\n- `task_id` (int): Task ID\n- `original_filename` (str): Original filename\n- `audio_url` (str, optional): URL to processed audio\n\n#### `TranscriptTask`\n- `task_id` (int): Task ID\n- `status` (str): Task status (\"pending\", \"processing\", \"completed\", \"failed\")\n- `original_filename` (str): Original filename\n- `audio_url` (str, optional): URL to processed audio\n- `srt_requested` (bool): Whether SRT was requested\n- `result_text` (str, optional): Transcribed text\n- `srt_content` (str, optional): SRT subtitle content\n- `error` (str, optional): Error message if failed\n\n#### `Balance`\n- `balance` (float): Current balance in credits\n- `last_updated` (datetime): Last update timestamp\n\n## \ud83c\udf0d Supported Languages\n\n- **English** (`english`)\n- **Hausa** (`hausa`)\n- **Igbo** (`igbo`)\n- **Yoruba** (`yoruba`)\n- **Swahili** (`swahili`)\n- **Pidgin** (`pidgin`)\n- **Kinyarwanda** (`kinyarwanda`)\n\n## \ud83d\udcc1 Supported Formats\n\n### Audio Formats\n- WAV (`.wav`, `.wave`)\n- MP3 (`.mp3`, `.mpeg`)\n- OGG (`.ogg`, `.oga`)\n- FLAC (`.flac`)\n- AAC (`.aac`)\n- M4A (`.m4a`)\n- WMA (`.wma`)\n- AMR (`.amr`)\n- 3GP (`.3gp`)\n\n### Maximum File Size\n- **200 MB** per file\n\n## \ud83d\udd27 Troubleshooting\n\n### Common Issues\n\n**Q: I get \"Invalid API key\" error**\nA: Make sure your API key is correct. Get it from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).\n\n**Q: I get \"Insufficient balance\" error**\nA: Add credits to your account through the dashboard.\n\n**Q: I get \"Unsupported file format\" error**\nA: Make sure your audio file is in a supported format (see [Supported Formats](#supported-formats)).\n\n**Q: Transcription takes too long**\nA: Large files take longer to process. You can increase the timeout:\n```python\ntranscript = client.transcribe(\"large_file.mp3\", timeout=600) # 10 minutes\n```\n\n**Q: I get \"Unsupported language\" error**\nA: Make sure you're using a supported language code (see [Supported Languages](#supported-languages)).\n\n### Getting Help\n\n- \ud83d\udce7 Email: support@orbitalsai.com\n- \ud83d\udc1b Issues: [GitHub Issues](https://github.com/orbitalsai/orbitalsai-python-sdk/issues)\n- \ud83d\udcd6 Docs: [Documentation](https://docs.orbitalsai.com)\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## \ud83d\ude4f Acknowledgments\n\n- Built for the African AI community\n- Powered by OrbitalsAI\n\n---\n\nMade by the OrbitalsAI team\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A simple and powerful Python SDK for the OrbitalsAI API",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://github.com/orbitalsai/orbitalsai-python-sdk/issues",
"Documentation": "https://docs.orbitalsai.com",
"Homepage": "https://github.com/orbitalsai/orbitalsai-python-sdk",
"Repository": "https://github.com/orbitalsai/orbitalsai-python-sdk"
},
"split_keywords": [
"ai",
" transcription",
" audio",
" speech",
" african languages",
" srt",
" subtitles"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b850cf3922d7d396ff405414c3a33884257ee9125bb8f884ada5a793412ae5f2",
"md5": "68b5cdcfd71a7f9b35f4d81203a2de6a",
"sha256": "adf5731964d82990b2021e157c893e838eff2dfaa837a5e5aac274230deed3bb"
},
"downloads": -1,
"filename": "orbitalsai-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "68b5cdcfd71a7f9b35f4d81203a2de6a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 15894,
"upload_time": "2025-10-22T13:54:55",
"upload_time_iso_8601": "2025-10-22T13:54:55.078574Z",
"url": "https://files.pythonhosted.org/packages/b8/50/cf3922d7d396ff405414c3a33884257ee9125bb8f884ada5a793412ae5f2/orbitalsai-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5be2e752bc5ff680e0e876adbc8dbe9523f940f550f02d9abee5c7f79fb40b8b",
"md5": "a90b960a55e42145b7b9c0cf63f0b706",
"sha256": "8cb5e7540e12e266d8e9b8ad9231c5ab95b425d567e8a5d9df7c7849879bdbde"
},
"downloads": -1,
"filename": "orbitalsai-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "a90b960a55e42145b7b9c0cf63f0b706",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 19233,
"upload_time": "2025-10-22T13:54:56",
"upload_time_iso_8601": "2025-10-22T13:54:56.703055Z",
"url": "https://files.pythonhosted.org/packages/5b/e2/e752bc5ff680e0e876adbc8dbe9523f940f550f02d9abee5c7f79fb40b8b/orbitalsai-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-22 13:54:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "orbitalsai",
"github_project": "orbitalsai-python-sdk",
"github_not_found": true,
"lcname": "orbitalsai"
}