Projects

Projects API endpoint reference for the LegionEdge Platform

The Projects API provides full lifecycle management for projects, including creation, configuration, member management, and resource allocation.

List Projects

GET /v2/organizations/{orgId}/projects

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger20Results per page (max 100)
statusstring--Filter: active, archived, suspended
searchstring--Search by name or description
const projects = await client.projects.list({
  organizationId: "org_abc123",
  status: "active",
});

Response

{
  "data": [
    {
      "id": "proj_abc123",
      "name": "payment-service",
      "slug": "payment-service",
      "description": "Payment processing microservice",
      "organizationId": "org_abc123",
      "status": "active",
      "settings": {
        "defaultEnvironment": "production",
        "autoScaling": true,
        "notificationsEnabled": true
      },
      "createdAt": "2025-09-01T12:00:00Z",
      "updatedAt": "2026-03-10T08:30:00Z"
    }
  ],
  "pagination": { "total": 12, "page": 1, "perPage": 20, "totalPages": 1, "hasMore": false }
}

Get Project

GET /v2/projects/{projectId}
const project = await client.projects.get("proj_abc123");

Create Project

POST /v2/organizations/{orgId}/projects
const project = await client.projects.create({
  organizationId: "org_abc123",
  name: "payment-service",
  description: "Payment processing microservice",
  settings: {
    defaultEnvironment: "development",
    autoScaling: false,
    notificationsEnabled: true,
  },
});

Update Project

PATCH /v2/projects/{projectId}
const updated = await client.projects.update("proj_abc123", {
  description: "Updated payment processing service",
  settings: {
    autoScaling: true,
  },
});

Delete Project

Deleting a project deprovisions all associated resources. This action is irreversible.

DELETE /v2/projects/{projectId}
await client.projects.delete("proj_abc123");

Project Members

List Members

GET /v2/projects/{projectId}/members
const members = await client.projects.listMembers("proj_abc123");
for (const m of members.data) {
  console.log(`${m.user.name} (${m.role})`);
}

Add Member

POST /v2/projects/{projectId}/members
await client.projects.addMember("proj_abc123", {
  userId: "user_jane",
  role: "admin",
});

Remove Member

DELETE /v2/projects/{projectId}/members/{userId}
await client.projects.removeMember("proj_abc123", "user_jane");

Project Environments

Each project supports multiple environments with isolated configuration:

// List environments
const envs = await client.projects.listEnvironments("proj_abc123");

// Promote from staging to production
await client.projects.promoteEnvironment("proj_abc123", {
  source: "staging",
  target: "production",
});

Next Steps