# Create workspace

URL: https://docs.hanzo.ai/docs/openapi/git/post-git-workspace

> Sets the org's code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller's forge account and seat there.

`POST /v1/git/workspace`

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

|               |                                         |
| ------------- | --------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/git/workspace` |
| **Method**    | `POST`                                  |
| **Operation** | `post_git_workspace`                    |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`  |

Sets the org's code workspace up for the caller and answers it:
the namespace, made when the org has none, and the caller's forge account and
seat there. Idempotent. The estate's namespace is answered from the closed
table and nobody is enrolled in it. A seat is a person's: an API key or an
application is refused, and a SuperAdmin acting in another org reads the
workspace as it is and makes nothing.

## Request

The document declares no body for `POST /v1/git/workspace`. The handler is typed in cloud but its shape is not yet emitted, so the fields are not listed here — ask MCP's `describe` for `post_git_workspace`, which answers from the running route.

## Response

| Status    | Body              | Meaning |
| --------- | ----------------- | ------- |
| `200`     | git.workspaceView | ok      |
| `default` | problem-details   | refused |

`200` body — 3 fields.

| Field   | In   | Type    | Always | Description                                                        |
| ------- | ---- | ------- | ------ | ------------------------------------------------------------------ |
| `login` | body | string  | —      | Login is the caller's forge account in a made workspace.           |
| `made`  | body | boolean | —      | Made says the platform made it for the org; false is the estate's. |
| `owner` | body | string  | —      | Owner is the forge namespace.                                      |

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

## Examples

**CLI**

`hanzo` has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.

**SDK**

**.ts**

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

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

**.py**

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

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

**.go**

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

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

**.rs**

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

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

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

**.java**

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

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

var result = new GitApi(client).postGitWorkspace();
```

**HTTP**

```bash
curl -X POST https://api.hanzo.ai/v1/git/workspace \
  -H "Authorization: Bearer $HANZO_API_KEY"
```

**MCP**

MCP reaches **git** through the `git` tool, which names its 38 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_git_keys"
         }
       }
     }'
```

---

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