---
title: "get_project_templates"
description: "get_project_templates — the templates new_project can use."
url: "https://docs.justcat.it/reference/python-module/get-project-templates/"
---
# get_project_templates

## Signature

```python
cat.get_project_templates(online: bool = False, logging_level: LoggingLevel = None)
```

## Parameters

| Parameter | Type | Default | Meaning |
|-----------|------|---------|---------|
| `online` | bool | `False` | `True`: list the templates on the CAT server instead of the local ones. Nothing is downloaded by listing. |
| `logging_level` | LoggingLevel | `None` | `cat.LoggingLevel` member; used only when this is the first call of the process. See [Logging](https://docs.justcat.it/reference/python-module/introduction/#logging "Logging"). |

## What it does

Without `online`, returns the templates available locally — the two shipped with CAT (`default`, `getStartedWindows`) and any downloaded earlier. With `online=True`, asks the CAT server for its list, which may hold more templates and newer versions. Signs in like every project function.

## Returns

A .NET collection of `ProjectTemplate` objects: `TemplateCode` — what `new_project(template=…)` takes, `TemplateName`, `Description`, `Version`.

## Raises

The sign-in and plan check (first call of the process) raises the `CatPortalError` family listed on the [Introduction](https://docs.justcat.it/reference/python-module/introduction/ "Introduction") page.

## Examples

```python
for t in cat.get_project_templates():
    print(t.TemplateCode, t.Version, "-", t.Description)
for t in cat.get_project_templates(online=True):
    print(t.TemplateCode, t.Version)
```

## Related

- [Introduction](https://docs.justcat.it/reference/python-module/introduction/ "Introduction") — session model, logging, .NET objects, exceptions, sign-in.
- [`new_project`](https://docs.justcat.it/reference/python-module/new-project/ "new_project") — use a template.

