***

title: register
slug: /reference/python/agents/agent-server/register
description: Register an agent at a URL route on the server.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[agentbase]: /docs/server-sdks/reference/python/agents/agent-base

Register an [`AgentBase`][agentbase] instance at a URL route
on the server. The agent's FastAPI router is mounted at the specified prefix so all of its
endpoints (SWML, SWAIG, debug, post-prompt) become available under that path.

<Warning>
  Registering a duplicate route raises `ValueError`. Each route can only host one agent.
</Warning>

## **Parameters**

<ParamField path="agent" type="AgentBase" required={true} toc={true}>
  The agent instance to register. Must be an [`AgentBase`][agentbase]
  subclass.
</ParamField>

<ParamField path="route" type="Optional[str]" toc={true}>
  URL path prefix for this agent (e.g., `"/sales"`). If omitted, the agent's own `route`
  property is used. Leading slashes are added and trailing slashes are stripped automatically.
</ParamField>

## **Returns**

`None`

## **Example**

```python {10}
from signalwire import AgentServer
from signalwire import AgentBase

class SalesAgent(AgentBase):
    def __init__(self):
        super().__init__(name="sales-agent", route="/sales")
        self.prompt_add_section("Role", "You are a sales rep.")

server = AgentServer(port=3000)
server.register(SalesAgent(), "/sales")
server.run()
```