# get\_or\_create\_project

<pre class="language-python"><code class="lang-python">dbnl.get_or_create_project(
    *,
    name: str,
    description: Optional[str] = None,
) -> <a data-footnote-ref href="#user-content-fn-1">Project</a>:
</code></pre>

## Parameters

<table><thead><tr><th width="173">Arguments</th><th>Description</th></tr></thead><tbody><tr><td><code>name</code></td><td>The name for the dbnl <a href="../../sdk-objects/project">Project</a>. A new Project will be created with this name if there does not exist a Project with this name already. If there does exist a project with this name, the pre-existing Project will be returned.</td></tr><tr><td><code>description</code></td><td>An optional description for the dbnl Project, defaults to <code>None</code>. Description is limited to 255 characters. </td></tr></tbody></table>

{% hint style="warning" %}
Description cannot be updated with this function.
{% endhint %}

## Returns

<table><thead><tr><th width="156">Type</th><th>Description</th></tr></thead><tbody><tr><td><a href="../../sdk-objects/project">Project</a></td><td>A new Project will be created with the specified name if there does not exist a Project with this name already. If there does exist a project with the name, the pre-existing Project will be returned.</td></tr></tbody></table>

## Examples

```python
import dbnl
dbnl.login()


proj_1 = dbnl.create_project(name="test_p1")
proj_2 = dbnl.get_or_create_project(name="test_p1")

# Calling get_or_create_project will yield same Project object
assert proj_1.id == proj_2.id
```

[^1]: [Project](https://docs.dbnl.com/v0.21.x/using-distributional/python-sdk/sdk-objects/project)
