# List templates

URL: https://docs.hanzo.ai/docs/openapi/agent/get-agent-roster-templates

> Returns the seven canonical studio functions and the shared, versioned role templates that ventures reuse.

`GET /v1/agent/roster/templates`

> [Agent →](https://docs.hanzo.ai/docs/openapi/agent) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                                  |
| ------------- | ------------------------------------------------ |
| **Address**   | `https://api.hanzo.ai/v1/agent/roster/templates` |
| **Method**    | `GET`                                            |
| **Operation** | `get_agent_roster_templates`                     |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`           |

Returns the seven canonical studio functions and the shared,
versioned role templates that ventures reuse.

## Request

`GET /v1/agent/roster/templates` takes no parameters and no body — the credential is the whole request.

## Response

| Status    | Body                     | Meaning |
| --------- | ------------------------ | ------- |
| `200`     | agent.rosterTemplatesOut | ok      |
| `default` | problem-details          | refused |

`200` body — 22 fields.

| Field                            | In   | Type                    | Always | Description                                                                                                             |
| -------------------------------- | ---- | ----------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------- |
| `functions`                      | body | agent.StudioFunction\[] | —      | Functions are the seven canonical studio functions.                                                                     |
| `functions[].defaultOutput`      | body | string                  | —      | DefaultOutput describes the required deliverable structure and citation standard.                                       |
| `functions[].defaultTools`       | body | string\[]               | —      | DefaultTools lists the MCP tool names granted by default to specialists in this function.                               |
| `functions[].duties`             | body | string                  | —      | Duties states the core responsibilities and operating boundaries of the function.                                       |
| `functions[].expertise`          | body | string                  | —      | Expertise summarizes the domain specialization covered by roles in this function.                                       |
| `functions[].id`                 | body | string                  | —      | ID is the stable slug identifying the studio function (e.g. "regulatory-clinical").                                     |
| `functions[].title`              | body | string                  | —      | Title is the human-readable name of the studio function.                                                                |
| `templates`                      | body | agent.RoleTemplate\[]   | —      | Templates are the versioned role templates (lead plus the seven specialist functions).                                  |
| `templates[].cap_micro_usd`      | body | integer (int64)         | —      | CapMicroUSD is the default period budget cap in integer micro-USD.                                                      |
| `templates[].expertise`          | body | string                  | —      | Expertise is the one-line catalog description explaining when another agent or lead should delegate to this role.       |
| `templates[].function`           | body | string                  | —      | Function is the studio function this role belongs to ("lead" or one of the seven studio functions).                     |
| `templates[].id`                 | body | string                  | —      | ID is the stable template identifier (e.g. "venture-lead" or "specialist-regulatory-clinical").                         |
| `templates[].instructions`       | body | string                  | —      | Instructions is the system prompt governing how the role gathers evidence, cites sources, and flags unsupported claims. |
| `templates[].manager`            | body | string                  | —      | Manager is the default parent role handle this role reports to; empty for the venture lead.                             |
| `templates[].max_task_micro_usd` | body | integer (int64)         | —      | MaxTaskMicroUSD is the default single-run ceiling in integer micro-USD.                                                 |
| `templates[].output`             | body | string                  | —      | Output specifies the structured deliverable format expected from this role.                                             |
| `templates[].period`             | body | string                  | —      | Period is the budget reset window: day, week, or month.                                                                 |
| `templates[].sources`            | body | string\[]               | —      | Sources lists the authorized evidence and knowledge sources for this role.                                              |
| `templates[].title`              | body | string                  | —      | Title is the human-readable role title.                                                                                 |
| `templates[].tools`              | body | string\[]               | —      | Tools lists the MCP tool names this role is allowed to invoke.                                                          |
| `templates[].version`            | body | string                  | —      | Version is the explicit template revision string, preserved when a venture enrolls the role.                            |
| `version`                        | body | string                  | —      | Version is the current studio template catalog version string.                                                          |

Failure carries the platform error shape — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo agent roster templates
```

**SDK**

**.ts**

```ts
import { Configuration, AgentApi } from 'hanzoai';

const api = new AgentApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getAgentRosterTemplates();
```

**.py**

```python
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import AgentApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = AgentApi(client).get_agent_roster_templates()
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.AgentAPI.GetAgentRosterTemplates(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
use hanzo_client::apis::{configuration::Configuration, agent_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = agent_api::get_agent_roster_templates(&cfg, Default::default()).await?;
```

**.java**

```java
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.AgentApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new AgentApi(client).getAgentRosterTemplates();
```

The method above is the one at the current release of the document. `hanzoai@8.5.914` (npm) and `hanzoai@8.5.914` (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. [SDKs →](https://docs.hanzo.ai/docs/sdks)

**HTTP**

```bash
curl https://api.hanzo.ai/v1/agent/roster/templates \
  -H "Authorization: Bearer $HANZO_API_KEY"
```

**MCP**

MCP reaches **agent** through the `agent` tool, which names its 51 operations with its own verbs — this one among them, under a name only MCP declares. `describe` explains any of them:

```bash
curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_agents"
         }
       }
     }'
```

---

[Agent API](https://docs.hanzo.ai/docs/openapi/agent) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
