Documentation
Frequently Asked Questions
Common questions about the Scopix SDK
What Python versions are supported?
The SDK supports Python 3.9 and above. We recommend using Python 3.11+ for best performance.
Is there a synchronous client?
Yes! Use SyncScopix for synchronous operations:
from scopix import SyncScopix
with SyncScopix(api_key="your-key") as client: result = client.files.upload("image.jpg") # Synchronous callWhat file formats are supported?
Images: JPEG, PNG, WebP, GIF, HEIC, TIFF, BMP
Documents: PDF, DOCX, TXT, Markdown
Note: when you pass a directory to upload(), the SDK only expands files matching .jpg, .jpeg, .png, .webp, and .gif. HEIC, TIFF, and BMP images must be passed in explicitly by path (or bytes) rather than via directory expansion — the server still accepts them, but directory walks will skip them.
How do I handle large file uploads?
For large files, the SDK provides a callback when each file is prepared for upload:
def on_progress(event): print(f"Prepared: {event.filename} ({event.total_bytes} bytes)")
result = await client.files.upload("photo.jpg", on_progress=on_progress)For batch progress use client.files.wait_for_session(session_id, on_progress=...) or poll client.files.get_processing_status(file_id) after calling upload_batch(). Cloud storage, video, and document upload flows have their own dedicated callback surfaces.
Can I use my own S3 bucket?
Yes! The SDK supports Bring Your Own Bucket (BYOB). See the Custom Storage Guide.
What are the rate limits?
Rate limits depend on your subscription tier:
- Free: 10 requests/minute
- Starter: 30 requests/minute
- Professional: 100 requests/minute
- Enterprise: 500 requests/minute
How do chat sessions work?
Chat sessions maintain conversation context. Use the context manager for automatic cleanup:
async with client.chat_session() as session: response = await session.send("Find damaged items") followup = await session.send("Tell me more about the first one")
