---
title: "Create a project"
method: POST
path: "/agent/projects"
tags: ["Projects"]
---

# Create a project

`POST /agent/projects`

## Request

- Base URL: `https://edge.network`
- URL: `https://edge.network/agent/projects`
- Auth: HTTP bearer

Create an empty project to group resources under.

## Headers

- `X-Dry-Run` 'true' | 'false'
- `Idempotency-Key` string

## Request body

- object
  - `name` string, required
  - `description` string

## Response `201`

Success.

- object
  - `project` Project, required
    - `id` string, required: Project id, e.g. proj_ab12cd34.
    - `name` string, required
    - `description` string, nullable
    - `resources` object[]: Resources grouped under this project.
      - `type` string, required: Resource type, e.g. vm, bucket, cdn, dns_zone.
      - `id` string, required
      - `name` string
    - `created_at` string, date-time
  - `tell_user` string: Human-readable summary of what happened, for the agent to relay to its operator.

## Other responses

- `400`: Validation error — the response body explains what to fix.
- `401`: Missing or invalid agent access code. The body includes self-signup pointers.
- `429`: Rate limited. Honour Retry-After and the RateLimit-* headers before retrying.

---

[API](https://skmtc.dev/edge/apis/edge-network-agent-api.md) · [All operations](https://skmtc.dev/edge/apis/edge-network-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/edge/apis/edge-network-agent-api/revisions/49b5f2adf020?raw)
