Projects API

Create, manage, and configure projects and team members.

Overview

Projects are the top-level organizational unit in Apperio. Each project has its own API key, log data, team members, and configuration. All project endpoints require JWT authentication.

List Projects

GET
/api/v1/projects

Get all projects owned by or shared with the authenticated user

Bash
curl "https://apperioserver.onrender.com/api/v1/projects" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
JSON
// Response(200 OK)
{
  "status": "success",
  "data": [
    {
      "id": "proj_abc123",
      "name": "My Web App",
      "description": "Production web application",
      "environment": "production",
      "logCount": 15420,
      "errorRate": 2.3,
      "status": "active",
      "createdAt": "2026-01-15T08:00:00Z"
    }
  ]
}

Create Project

POST
/api/v1/projects

Create a new project

Bash
curl -X POST "https://apperioserver.onrender.com/api/v1/projects" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My New App",
    "description": "Staging environment for my app",
    "environment": "staging"
  }'
JSON
// Response(201 Created)
{
  "status": "success",
  "data": {
    "id": "proj_xyz789",
    "name": "My New App",
    "description": "Staging environment for my app",
    "apiKey": "mk_a1b2c3d4e5f6...",
    "owner": "user_abc123",
    "status": "active",
    "createdAt": "2026-03-07T10:30:00Z"
  }
}

Info

The API key is returned only when the project is created. Store it securely. You can regenerate it later, but the old key will stop working immediately.

Get Project

GET
/api/v1/projects/:id

Get project details by ID

Update Project

PUT
/api/v1/projects/:id

Update project settings

Bash
curl -X PUT "https://apperioserver.onrender.com/api/v1/projects/PROJ_ID" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated App Name",
    "description": "Updated description"
  }'

Delete Project

DELETE
/api/v1/projects/:id

Delete a project and all its data

Danger

Deleting a project permanently removes all associated logs, alert rules, and configuration. This action cannot be undone.

API Key Management

POST
/api/v1/projects/:id/regenerate-api-key

Generate a new API key (invalidates the old one)

Bash
curl -X POST "https://apperioserver.onrender.com/api/v1/projects/PROJ_ID/regenerate-api-key" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
JSON
// Response
{
  "status": "success",
  "data": {
    "apiKey": "mk_new_key_here..."
  }
}

Warning

Regenerating an API key immediately invalidates the previous key. Update your SDK configuration with the new key to avoid log ingestion failures.

Team Management

Add Team Member

POST
/api/v1/projects/:projectId/team-members

Invite a user to the project

JSON
// Request body
{
  "email": "teammate@example.com",
  "role": "admin"  // "admin" or "viewer"
}

Update Member Role

PUT
/api/v1/projects/:projectId/team-members/role

Change a team member's role

Remove Team Member

DELETE
/api/v1/projects/:projectId/team-members

Remove a user from the project

RolePermissions
OwnerFull access: settings, team, data, deletion
AdminManage logs, alerts, and view settings
ViewerRead-only access to logs and dashboards

Project Statistics

GET
/api/v1/projects/:id/stats

Get aggregated project metrics

JSON
// Response
{
  "status": "success",
  "data": {
    "totalLogs": 15420,
    "errorRate": 2.3,
    "averageResponseTime": 245,
    "logCountToday": 1230,
    "errorCountToday": 28,
    "topErrors": [
      { "message": "TypeError: Cannot read...", "count": 45 },
      { "message": "NetworkError: Failed...", "count": 23 }
    ]
  }
}