> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 新しいプロジェクトのセットアップ

> セル、スタディ、モデル、最適化をまとめるプロジェクトを作成し、以降の SDK 呼び出しをそのプロジェクトにスコープします。

[プロジェクト](/ja/core-concepts/projects-studies)はセル仕様、スタディ、モデル、最適化をまとめます。プロジェクトを 1 つ作成し、作業をそこにスコープします。

<Note>
  先にインストールと認証を行います: `pip install ionworks-api` を実行し、`IONWORKS_API_KEY` を設定します。[Python API クライアント](/ja/api-client) ページを参照してください。
</Note>

```python theme={null}
from ionworks import Ionworks

client = Ionworks()

# プロジェクトを作成します — その id が以降のすべてをまとめます。
project = client.project.create({
    "name": "NMC Characterization",
    "description": "Q1 2025 NMC cell testing",
})
print(project.id)

# 後でプロジェクトを検索します（name は大文字小文字を区別しない部分一致）。
projects = client.project.list(name="NMC", order_by="created_at", order="desc")

# スタディはプロジェクト内に存在します — その id を渡してスコープします。
study = client.study.create(
    {"name": "1C Discharge Study"},
    project_id=project.id,
)
```

**ポイント**

* 作業をプロジェクトにスコープする方法は 2 つあります: 呼び出しごとに project id を明示的に渡す（例: `client.study.create(project_id, ...)`）か、環境変数 `IONWORKS_PROJECT_ID` を設定して `project_id` が省略可能な呼び出しのデフォルトにします。
* `client.project` は CRUD 一式をサポートします: `.list()`、`.get(id)`、`.create(data)`、`.update(id, data)`、`.delete(id)`。
* プロジェクトとスタディに `create_or_get` はありません。再実行可能なスクリプトでは `CONFLICT` エラーを捕捉し、その detail から `existing_id` を読み取って既存のものを再利用します。

## さらに詳しく

* [プロジェクトとスタディ](/ja/core-concepts/projects-studies)
* [組織](/ja/core-concepts/organizations)
* [Python API クライアント](/ja/api-client) — `project_id` 引数と `IONWORKS_PROJECT_ID` の優先順位
