Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.asteroid.ai/llms.txt

Use this file to discover all available pages before exploring further.

Use the asteroid-odyssey Python SDK to execute agents, monitor executions, work with files, and manage profiles from your application.
The SDK provides generated API classes. Instantiate Configuration with your API key, create an ApiClient, then use the API classes directly.

Install

pip install --upgrade asteroid-odyssey
Or with uv:
uv pip install asteroid-odyssey

Quickstart

import os
import time
from asteroid_odyssey import Configuration, ApiClient
from asteroid_odyssey.api.agents_api import AgentsApi
from asteroid_odyssey.api.execution_api import ExecutionApi
from asteroid_odyssey.models.agents_agent_execute_agent_request import AgentsAgentExecuteAgentRequest

config = Configuration(api_key={"ApiKeyAuth": os.environ["ASTEROID_API_KEY"]})

with ApiClient(config) as api_client:
    agents_api = AgentsApi(api_client)
    exec_api = ExecutionApi(api_client)

    response = agents_api.agent_execute_post(
        agent_id="your-agent-id",
        agents_agent_execute_agent_request=AgentsAgentExecuteAgentRequest(
            inputs={"customerName": "Jane Doe"},
        ),
    )
    execution_id = response.execution_id

    # Poll until complete
    while True:
        time.sleep(3)
        execution = exec_api.execution_get(execution_id=execution_id)
        if execution.status not in ("running", "starting"):
            break

    print(execution.status, execution.inputs)
Run it with:
python run_agent.py

API Classes

Import these from asteroid_odyssey.api.*:
ClassImportPurpose
AgentsApiasteroid_odyssey.api.agents_apiExecute agents, list agents
ExecutionApiasteroid_odyssey.api.execution_apiGet, list, poll, message executions
FilesApiasteroid_odyssey.api.files_apiUpload/download execution files
AgentProfilesApiasteroid_odyssey.api.agent_profiles_apiManage agent profiles
AgentProfilePoolsApiasteroid_odyssey.api.agent_profile_pools_apiManage profile pools
WorkflowsApiasteroid_odyssey.api.workflows_apiExecute specific workflow versions
Models live under asteroid_odyssey.models.*.

Common Patterns

import os
import time
from asteroid_odyssey import Configuration, ApiClient
from asteroid_odyssey.api.agents_api import AgentsApi
from asteroid_odyssey.api.execution_api import ExecutionApi
from asteroid_odyssey.models.agents_agent_execute_agent_request import AgentsAgentExecuteAgentRequest

config = Configuration(api_key={"ApiKeyAuth": os.environ["ASTEROID_API_KEY"]})

with ApiClient(config) as api_client:
    agents_api = AgentsApi(api_client)
    exec_api = ExecutionApi(api_client)

    response = agents_api.agent_execute_post(
        agent_id="your-agent-id",
        agents_agent_execute_agent_request=AgentsAgentExecuteAgentRequest(
            inputs={"task": "Summarize the attached invoice"},
        ),
    )
    execution_id = response.execution_id

    activities = exec_api.execution_activities_get(
        execution_id=execution_id,
        limit=20,
        order="desc",
    )
    exec_api.execution_user_messages_add(
        execution_id=execution_id,
        agents_execution_user_messages_add_text_body={"message": "Please use the latest file only."},
    )

    status = exec_api.execution_get(execution_id=execution_id)
    print(status.status)
    for activity in activities:
        print(activity.payload)

Notes

  • Use inputs for execution variables — dynamic_data is deprecated.
  • execution_activities_get returns a list of AgentsExecutionActivity objects directly.
  • agent_profiles_list requires organization_id.
  • The SDK’s default base URL is https://odyssey.asteroid.ai/agents/v2. Override via Configuration(host=...).

TypeScript SDK

See the TypeScript SDK guide

API

Browse the API landing page and common workflows