Skip to content

Projects

Projects are the primary grouping layer for pentest sessions.

Endpoints

  • GET /api/v1/projects
  • POST /api/v1/projects
  • GET /api/v1/projects/{project_id}
  • PATCH /api/v1/projects/{project_id}

Create a project

curl -sS -X POST "https://app.vulnetic.ai/api/v1/projects" \
  -H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Production",
    "project_metadata": {
      "environment": "production",
      "owner": "security-team"
    }
  }'

List projects

curl -sS "https://app.vulnetic.ai/api/v1/projects?skip=0&limit=20&sort_by=created_at" \
  -H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL"

Response shape

{
  "items": [
    {
      "id": "11111111-1111-1111-1111-111111111111",
      "account_id": "4f0d0a7d-644d-4dad-b5a4-c8f455e6f6b8",
      "name": "Acme Production",
      "project_metadata": {
        "environment": "production",
        "owner": "security-team"
      },
      "session_count": 3,
      "created_by_user_id": "ea0580a8-8df4-43f1-b28e-87f1dc1b3a90",
      "created_at": "2026-04-13T18:00:00Z",
      "updated_at": "2026-04-13T18:20:00Z"
    }
  ],
  "total": 1,
  "skip": 0,
  "limit": 20
}

Update a project

curl -sS -X PATCH "https://app.vulnetic.ai/api/v1/projects/11111111-1111-1111-1111-111111111111" \
  -H "<AUTH_HEADER_NAME>: YOUR_API_CREDENTIAL" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Production External",
    "project_metadata": {
      "environment": "production",
      "owner": "external-appsec"
    }
  }'