Skip to Content

Projects API

Projects are the top-level organizational unit in Quazzar Space. Each project contains environments, groups, services, and team members.

Base URL

https://app.quazzar.space

All requests require an Authorization: Bearer <token> header. See the Authentication guide.

List Projects

Retrieve all projects the authenticated user has access to.

GET /projects

curl -H "Authorization: Bearer YOUR_TOKEN" \ "https://app.quazzar.space/projects?page=1&per_page=20"

Query Parameters:

ParameterTypeDescription
pageintegerPage number (default: 1)
per_pageintegerItems per page (default: 20, max: 100)
searchstringFilter by project name

Response (200 OK):

{ "items": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "my-saas-product", "description": "Production infrastructure for our SaaS platform", "owner_id": "user-uuid", "created_at": "2026-01-15T08:30:00Z", "stats": { "environments": 3, "services": 24, "members": 8 } } ], "total": 5, "page": 1, "per_page": 20 }

Create Project

POST /projects

curl -X POST https://app.quazzar.space/projects \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "my-saas-product", "description": "Production infrastructure for our SaaS platform" }'

Response (201 Created):

{ "id": "550e8400-e29b-41d4-a716-446655440000", "name": "my-saas-product", "description": "Production infrastructure for our SaaS platform", "owner_id": "current-user-uuid", "created_at": "2026-03-01T12:00:00Z" }

Error Responses:

StatusDescription
403Project limit reached for your subscription tier
409Project with this name already exists
422Validation error

Subscription Limits

TierMax Projects
Free1
Starter3
Team10
Business / EnterpriseUnlimited

Get Project

GET /projects/{project_id}

curl -H "Authorization: Bearer YOUR_TOKEN" \ https://app.quazzar.space/projects/550e8400-e29b-41d4-a716-446655440000

Response (200 OK):

{ "id": "550e8400-e29b-41d4-a716-446655440000", "name": "my-saas-product", "description": "Production infrastructure for our SaaS platform", "owner_id": "user-uuid", "created_at": "2026-01-15T08:30:00Z", "updated_at": "2026-03-01T12:00:00Z", "settings": { "default_environment": "production", "notifications_enabled": true } }

Update Project

PATCH /projects/{project_id}

Requires Owner role on the project.

curl -X PATCH https://app.quazzar.space/projects/PROJECT_UUID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name": "my-saas-product-v2", "description": "Updated description"}'

Returns the updated project object.

Delete Project

DELETE /projects/{project_id}

Requires Owner role. Deleting a project permanently removes all environments, groups, services, and related data within it.

curl -X DELETE https://app.quazzar.space/projects/PROJECT_UUID \ -H "Authorization: Bearer YOUR_TOKEN"

Response (204 No Content)

Environments

Environments represent deployment stages within a project (e.g., production, staging, development).

List Environments

GET /projects/{project_id}/environments

curl -H "Authorization: Bearer YOUR_TOKEN" \ https://app.quazzar.space/projects/PROJECT_UUID/environments

Response (200 OK):

{ "items": [ { "id": "env-uuid-1", "name": "production", "description": "Production environment", "project_id": "project-uuid", "created_at": "2026-01-15T08:30:00Z", "stats": { "groups": 4, "services": 18, "service_floors": 12 } } ] }

Create Environment

POST /environments

curl -X POST https://app.quazzar.space/environments \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "staging", "description": "Staging environment for QA testing", "project_id": "project-uuid" }'

Update Environment

PATCH /environments/{environment_id}

curl -X PATCH https://app.quazzar.space/environments/ENV_UUID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name": "staging-v2", "description": "Updated staging"}'

Delete Environment

DELETE /environments/{environment_id}

curl -X DELETE https://app.quazzar.space/environments/ENV_UUID \ -H "Authorization: Bearer YOUR_TOKEN"

Environment Limits

TierEnvironments per Project
Free1
Starter2
Team5
Business10
EnterpriseUnlimited

Project Members

Manage team access to a project.

List Members

GET /projects/{project_id}/members

curl -H "Authorization: Bearer YOUR_TOKEN" \ https://app.quazzar.space/projects/PROJECT_UUID/members

Response (200 OK):

{ "items": [ { "user_id": "user-uuid", "email": "[email protected]", "full_name": "Alex Dev", "role": "member", "joined_at": "2026-02-01T10:00:00Z" } ] }

Add Member

POST /projects/{project_id}/members

curl -X POST https://app.quazzar.space/projects/PROJECT_UUID/members \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"email": "[email protected]", "role": "member"}'

An invitation email is sent to the user. They can accept via the link in the email or through the dashboard.

Project Roles:

RolePermissions
ownerFull access — manage members, settings, delete project
memberRead/write access to environments, services, and groups

Environment Roles

For more granular control, assign per-environment roles:

POST /environments/{env_id}/roles

curl -X POST https://app.quazzar.space/environments/ENV_UUID/roles \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"user_id": "user-uuid", "role": "manager"}'
RolePermissions
administratorFull environment access including member management
managerCreate, update, and delete resources within the environment
viewerRead-only access to all resources in the environment

Project Statistics

GET /projects/{project_id}/statistics

curl -H "Authorization: Bearer YOUR_TOKEN" \ https://app.quazzar.space/projects/PROJECT_UUID/statistics

Response (200 OK):

{ "environments": 3, "groups": 12, "services": 48, "service_floors": 32, "networks": 6, "members": 8, "monthly_estimated_cost": 2847.50 }

Next Steps