Skip to content

Latest commit

Β 

History

60 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OmniDimension Python SDK

Build and ship AI voice agents from a single prompt.

OmniDimension lets you build, test, and deploy reliable voice AI assistants by simply describing them in plain text. The platform offers rigorous simulation testing and real-time observability, making it easy to debug and monitor agents in production.

πŸ‘‰ Try the Web UI β€” You can also build and test voice agents visually using our no-code interface.


πŸš€ Features

  • Prompt-based creation: Define voice agents with natural language.
  • Drag-and-drop editor: Chat or visually edit flows, voices, models, and more.
  • Prebuilt templates: Use plug-and-play agent templates for common use cases.
  • Testing & monitoring: Simulate edge cases and debug live calls.
  • Knowledge Base support: Upload and attach documents (PDFs) for factual grounding.
  • Integrations: Connect to external APIs, CRMs, or tools like Cal.com.
  • Phone agents: Assign numbers and initiate real voice calls via the SDK.
  • Bulk Call: Send multiple voice calls AI to multiple numbers simultaneously.

πŸ“¦ Installation

Basic SDK

pip install omnidimension

Requires Python 3.9+


πŸ” Authentication

First, obtain your API key from the OmniDimension dashboard. Store it in your environment variables:

Linux/macOS

export OMNIDIM_API_KEY="your_api_key_here"

Windows (CMD)

set OMNIDIM_API_KEY=your_api_key_here

In Python

import os
from omnidimension import Client

api_key = os.environ.get("OMNIDIM_API_KEY")
client = Client(api_key)

✨ SDK Usage

from omnidimension import Client

# Initialize the client with your API key
client = Client(api_key="your_api_key")

# List agents
agents = client.agent.list()
print(agents)

πŸ›°οΈ MCP server

The OmniDimension MCP server lives in its own repositories, not in this SDK. Pick whichever fits your client.

Hosted (no install)

Point any MCP client at the hosted server. It speaks the standard OAuth flow, so clients discover the rest automatically:

https://mcp.omnidim.io/mcp

For Claude Code:

claude mcp add --transport http omnidim https://mcp.omnidim.io/mcp --scope user

Source: Omnidim/omnidim-mcp-cloud

Local (stdio)

For clients that launch a local server (Claude Desktop, Cursor, Windsurf), use the npm package @omnidim-ai/mcp-server. Save this as your MCP client config:

{
  "mcpServers": {
    "omnidim": {
      "command": "npx",
      "args": ["-y", "@omnidim-ai/mcp-server"],
      "env": {
        "OMNIDIM_API_KEY": "<your_omnidim_api_key>"
      }
    }
  }
}

Source: Omnidim/omnidim-mcp-server


πŸ“‘ Providers API

The Providers API allows you to discover and explore all available AI providers for LLMs, voices, STT, and TTS services.

Quick Examples

# Get all LLM providers
llms = client.providers.list_llms()
print(f"[SUCCESS] Found {llms['total']} LLM providers")

# List voices with pagination
voices = client.providers.list_voices(page=1, page_size=50)
print(f"[SUCCESS] Found {voices['total']} voices")

![INFO] Complete Providers Documentation


πŸ“š Knowledge Base

files = client.knowledge_base.list()
print(files)

file_ids = [123]
agent_id = 456
response = client.knowledge_base.attach(file_ids, agent_id)
print(response)

πŸ”Œ Integrations

response = client.integrations.create_custom_api_integration(
    name="WeatherAPI",
    url="https://api.example.com/weather",
    method="GET"
)
print(response)

client.integrations.add_integration_to_agent(agent_id=123, integration_id=789)

☎️ Phone Number Management

numbers = client.phone_number.list(page=1, page_size=10)
print(numbers)

client.phone_number.attach(phone_number_id=321, agent_id=123)

πŸ“ž Bulk Call Management

# First, get your phone number IDs
phone_numbers = client.phone_number.list()
phone_number_id = phone_numbers['phone_numbers'][0]['id']  # Use the first available phone number

# Create a bulk call campaign
contact_list = [
    {
        "phone_number": "+1234567890",
        "customer_name": "John Doe",
        "product_interest": "Premium Plan"
    },
    {
        "phone_number": "+1987654321", 
        "customer_name": "Jane Smith",
        "product_interest": "Basic Plan"
    }
]

# Create immediate bulk call
bulk_call = client.bulk_call.create_bulk_calls(
    name="Marketing Campaign - Q4 2024",
    contact_list=contact_list,
    phone_number_id=phone_number_id
)

# Create scheduled bulk call
scheduled_call = client.bulk_call.create_bulk_calls(
    name="Scheduled Campaign",
    contact_list=contact_list,
    phone_number_id=phone_number_id,
    is_scheduled=True,
    scheduled_datetime="2024-12-25 10:00:00",
    timezone="America/New_York"
)

# Fetch all bulk calls
bulk_calls = client.bulk_call.fetch_bulk_calls(page=1, page_size=10, status="active")

# Get bulk call details
details = client.bulk_call.detail_bulk_calls(bulk_call_id=123)

# Control bulk call actions
client.bulk_call.bulk_calls_actions(bulk_call_id=123, action="pause")
client.bulk_call.bulk_calls_actions(bulk_call_id=123, action="resume")
client.bulk_call.bulk_calls_actions(
    bulk_call_id=123, 
    action="reschedule",
    new_scheduled_datetime="2024-12-26 14:00:00",
    new_timezone="America/New_York"
)

# Cancel bulk call
client.bulk_call.cancel_bulk_calls(bulk_call_id=123)

πŸ“ Recommended Project Structure

/docs/
  β”œβ”€β”€ agents/
  β”œβ”€β”€ calling/
  β”œβ”€β”€ integrations/
  β”œβ”€β”€ knowledge_base/
  └── phone_numbers/

/examples/         # Sample Python scripts
/cookbook/         # Ready-made project use cases

🌐 Learn More

Visit omnidim.io to explore the full platform, UI builder, and templates.


πŸ’¬ Support

Releases

Packages

Contributors

Languages