---
title: "Agent Projects"
description: "Group related resources together for unified management, health checks, and teardown."
url: https://edge.network/docs/agent/projects/
---

# Agent Projects

Agent Tooling

# Projects

Group related resources together. A project might contain a VM, CDN deployment, storage bucket, and DNS records — all for one app.

## Why Projects?

### Clean Teardown

Delete all resources for an app in one command. No orphaned VMs or forgotten DNS records.

### Health Checks

Check the status of everything related to an app in one call.

### Cost Tracking

See how much each project costs per month.

### No Orphans

Resources are tracked by project, preventing forgotten infrastructure.

## API Endpoints

```
GET    /agent/projects              # List all projects
POST   /agent/projects              # Create a project
GET    /agent/projects/{id}         # Get project with resources
GET    /agent/projects/{id}/health  # Health check all resources
POST   /agent/projects/{id}/scale   # Scale compute resources
DELETE /agent/projects/{id}         # Teardown (requires X-Confirm: teardown)
```

## Creating a Project

```
POST /agent/projects
Authorization: Bearer ea_live_...

{
  "name": "my-portfolio",
  "description": "Personal portfolio website"
}

# Response:
{
  "project": {
    "id": "proj_a1b2c3d4e5f6",
    "name": "my-portfolio",
    "description": "Personal portfolio website",
    "resources": [],
    "created_at": "2026-02-18T12:00:00Z"
  },
  "tell_user": "Project \"my-portfolio\" created."
}
```

Resources are added to the project as the agent creates them. When using composite actions like `deploy/static-site`,
all created resources are automatically associated with the project.

## Tearing Down a Project

Tearing down a project deletes ALL resources associated with it — VMs, CDN deployments, storage buckets, and DNS records. This requires the `X-Confirm: teardown` header as a safety measure.

```
DELETE /agent/projects/proj_a1b2c3d4e5f6
Authorization: Bearer ea_live_...
X-Confirm: teardown

# Response:
{
  "deleted": true,
  "project": "my-app",
  "resources": [
    { "type": "compute", "id": "vm_xyz", "name": "my-app", "status": "deleted" },
    { "type": "cdn", "id": "dep_abc", "name": "my-app-cdn", "status": "deleted" },
    { "type": "storage", "id": "my-app", "name": "my-app", "status": "deleted" }
  ],
  "tell_user": "Project \"my-app\" and all 3 resources have been deleted."
}
```

Without the X-Confirm header

The API returns a 400 error with details about what would be deleted, giving the agent a chance to confirm with the user first.

## See Also

[Access Codes Create and scope agent credentials](https://edge.network/docs/agent/access-codes) [Discovery Endpoint The agent's entry point](https://edge.network/docs/agent/discovery)
[Back to Docs](https://edge.network/docs) [Need help?](https://edge.network/support)
