MCPcopy Create free account
hub / github.com/Mnexa-AI/e2a / E2AClient

Class E2AClient

sdks/python/src/e2a/v1/client.py:109–203  ·  view source on GitHub ↗

Async client for the e2a /v1 API. Use as an async context manager so the underlying HTTP connections are closed:: async with E2AClient(api_key="e2a_...") as client: agents = await client.agents.list().to_list(limit=100)

Source from the content-addressed store, hash-verified

107
108
109class E2AClient:
110 """Async client for the e2a /v1 API.
111
112 Use as an async context manager so the underlying HTTP connections are
113 closed::
114
115 async with E2AClient(api_key="e2a_...") as client:
116 agents = await client.agents.list().to_list(limit=100)
117 """
118
119 def __init__(
120 self,
121 api_key: Optional[str] = None,
122 *,
123 base_url: Optional[str] = None,
124 max_retries: int = 2,
125 max_elapsed_ms: Optional[float] = None,
126 _retry_config: Optional[RetryConfig] = None,
127 ) -> None:
128 key = api_key or _env("E2A_API_KEY")
129 if not key:
130 raise E2AError(
131 code="no_api_key",
132 message="api_key is required — pass api_key=... or set E2A_API_KEY",
133 status=0,
134 retryable=False,
135 )
136 self._api_key = key
137 self._base_url = base_url or _env("E2A_BASE_URL") or DEFAULT_BASE_URL
138 self._cfg = _retry_config or RetryConfig(
139 max_retries=max_retries, max_elapsed_ms=max_elapsed_ms
140 )
141
142 config = Configuration(host=self._base_url, access_token=key)
143 self._api_client = ApiClient(config)
144
145 self.agents = AgentsResource(AgentsApi(self._api_client), self)
146 self.messages = MessagesResource(MessagesApi(self._api_client), self)
147 self.conversations = ConversationsResource(ConversationsApi(self._api_client), self)
148 self.domains = DomainsResource(DomainsApi(self._api_client), self)
149 self.events = EventsResource(EventsApi(self._api_client), self)
150 self.webhooks = WebhooksResource(WebhooksApi(self._api_client), self)
151 self.account = AccountResource(AccountApi(self._api_client), self)
152 self.reviews = ReviewsResource(ReviewsApi(self._api_client), self)
153 self._meta = MetaApi(self._api_client)
154
155 # ── lifecycle ───────────────────────────────────────────────────
156 async def aclose(self) -> None:
157 await self._api_client.close()
158
159 async def __aenter__(self) -> "E2AClient":
160 return self
161
162 async def __aexit__(self, *exc: Any) -> None:
163 await self.aclose()
164
165 # ── shared executors (retry + error mapping live here) ──────────
166 async def _read(self, make: _Make) -> Any:

Callers 3

_clientFunction · 0.90
test_requires_api_keyFunction · 0.90
lifespanFunction · 0.90

Calls

no outgoing calls

Tested by 2

_clientFunction · 0.72
test_requires_api_keyFunction · 0.72