result field rather than minting a second identity. Credentials you supply are sealed before storage; only the last four characters come back in credentials_hint, so a serializer can never accidentally leak a key.
Register an agent
POST /api/agents
Register a new agent and, optionally, attach the first connection to it in the same request. Both the agent row and the connection row are written in one transaction, so a connection payload the registry rejects leaves no partial agent behind.
The result field in the response tells you exactly what happened:
201 Created is returned for created and connection_added. 200 OK is returned for reused.
Request body
string
Display name for the agent. Required unless you want Egma to pick a numbered default. Must be unique within the project.
string
Optional free-text description.
string
Project id or name to write this agent into. Defaults to the project your API key belongs to. In a single-project organization you never need this field.
object
The first connection to attach. Leave this out to register a bare agent and add connections later with
POST /api/agents/:agentId/connections.Response fields
string
One of
created, reused, or connection_added.object
The agent record.
object
The connection that was created or reused. Absent when
result is reused and no new connection was written.Example — register a Retell agent
Example — register a LiveKit agent
List agents
GET /api/agents
Return a paginated list of agents your credential can reach, ordered newest first. Filter by project with ?project. Paginate using the next_cursor value from the previous page.
Query parameters
string
Filter to a specific project by id or name. Omit to list agents across all projects your key can read.
string
The
next_cursor value from the previous page. Omit to start from the newest agent.Response fields
array
Array of agent objects. Each has the same shape as the
agent field in the registration response.string | null
Pass this as
?cursor to fetch the next page. null means you are on the last page.Example
Get an agent
GET /api/agents/:agentId
Retrieve a single agent and all of its connections. An agent you cannot see answers the same not_found sentence as an id that was never minted.
Path parameters
string
required
The
agt_… identifier of the agent.Response fields
object
The agent record (same shape as in registration).
array
All connections currently attached to this agent. Each entry has the same shape as the
connection field in the registration response.Example
Add a connection
POST /api/agents/:agentId/connections
Attach another provider connection to an existing agent. The request body is identical in shape to the connection object on registration. Returns 201 Created with the new connection.
Path parameters
string
required
The
agt_… identifier of the agent to attach the connection to.Request body
Same fields as theconnection object on POST /api/agents. All fields (type, modality, config, credentials, etc.) apply identically.
Response fields
object
The newly created connection record (same shape as the
connection field in the registration response).