# Organization

## List organization groups

> Retrieves all groups in your organization. Groups allow you to organize users and manage access permissions at scale.\
> \
> \*\*What are Groups?\*\*\
> Groups are collections of users within your organization. They enable centralized permission management for teams, departments, or any logical user grouping.\
> \
> \*\*Use Cases:\*\*\
> \- Organize users by department (Engineering, Sales, Operations)\
> \- Grant project access to entire teams at once\
> \- Simplify permission management for large organizations\
> \- Create cross-functional teams with specific access rights\
> \
> \*\*Prerequisites:\*\*\
> \- Must have \`access-management\` or \`invite\` permission\
> \- Organization plan required (not available for Starter/Scale plans)

```json
{"openapi":"3.0.0","info":{"title":"Qubitro Public API","version":"2.0"},"servers":[{"url":"https://api.qubitro.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Enter your API key with the Bearer prefix, e.g. \"Bearer QB_your_api_key_here\"","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"organization.getGroupsResponseBody":{"type":"object","properties":{"groups":{"description":"Array of organization groups","type":"array","items":{"$ref":"#/components/schemas/organization.GroupItem"}}}},"organization.GroupItem":{"type":"object","properties":{"id":{"description":"Group ID","type":"string"},"name":{"description":"Group name","type":"string"}}},"main.ErrorResponse":{"type":"object","properties":{"action":{"description":"Action that was attempted","type":"string"},"code":{"description":"Optional error code","type":"string"},"details":{"description":"Optional additional details","type":"string"},"message":{"description":"Human-readable error message","type":"string"},"success":{"description":"Operation failed","type":"boolean"}}}}},"paths":{"/v2/organization/groups":{"get":{"description":"Retrieves all groups in your organization. Groups allow you to organize users and manage access permissions at scale.\n\n**What are Groups?**\nGroups are collections of users within your organization. They enable centralized permission management for teams, departments, or any logical user grouping.\n\n**Use Cases:**\n- Organize users by department (Engineering, Sales, Operations)\n- Grant project access to entire teams at once\n- Simplify permission management for large organizations\n- Create cross-functional teams with specific access rights\n\n**Prerequisites:**\n- Must have `access-management` or `invite` permission\n- Organization plan required (not available for Starter/Scale plans)","tags":["Organization"],"summary":"List organization groups","responses":{"200":{"description":"Groups retrieved successfully - Returns array of groups with IDs and names","content":{"application/json":{"schema":{"$ref":"#/components/schemas/organization.getGroupsResponseBody"}}}},"401":{"description":"Unauthorized - Invalid or missing API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/main.ErrorResponse"}}}},"403":{"description":"Forbidden - Organization plan required or insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/main.ErrorResponse"}}}}}}}}}
```

## List projects of a group

> Retrieves all projects accessible by a specific group

```json
{"openapi":"3.0.0","info":{"title":"Qubitro Public API","version":"2.0"},"servers":[{"url":"https://api.qubitro.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Enter your API key with the Bearer prefix, e.g. \"Bearer QB_your_api_key_here\"","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"project.projectItem":{"type":"object","properties":{"created_at":{"description":"Project creation timestamp (ISO 8601 format, UTC)","type":"string"},"description":{"description":"Project description (required, max 500 characters)","type":"string"},"id":{"description":"Unique project identifier (UUID format)","type":"string"},"name":{"description":"Project name (required, max 100 characters)","type":"string"},"tags":{"description":"Optional tags for categorization (alphanumeric and underscore only)","type":"array","items":{"type":"string"}}}}}},"paths":{"/v2/organization/groups/{group_id}/projects":{"get":{"description":"Retrieves all projects accessible by a specific group","tags":["Organization"],"summary":"List projects of a group","parameters":[{"description":"Group ID","name":"group_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Projects retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/project.projectItem"}}}}},"401":{"description":"Unauthorized"},"404":{"description":"Group not found"}}}}}}
```

## Invite user to organization

> Invite a user to join your organization with a specified role. The user will receive an email invitation and gain organization access based on their assigned role.\
> \
> \*\*Organization Roles:\*\*\
> \
> \| Role | Permissions |\
> \|------|-------------|\
> \| \`superadmin\` | Full control: all permissions including whitelabel, billing, credentials, blueprints, templates, device transfers |\
> \| \`admin\` | Organization management: read, write, credentials, access management, blueprints, templates, device transfers (no billing) |\
> \| \`readwrite\` | Create and edit: read, write, dashboard blueprints, function templates (no access management or credentials) |\
> \| \`billingadmin\` | Billing only: read and manage billing information (limited other access) |\
> \| \`readonly\` | View only: read organization resources (no modifications) |\
> \
> \*\*Custom Roles:\*\*\
> Organizations can create custom roles with specific permission combinations from the available actions.\
> \
> \*\*Prerequisites:\*\*\
> \- Must have \`access-management\` permission in the organization\
> \- Organization plan required (not available for Starter/Scale plans)\
> \- User email must be registered on the platform\
> \- Role must be a valid organization role ID

```json
{"openapi":"3.0.0","info":{"title":"Qubitro Public API","version":"2.0"},"servers":[{"url":"https://api.qubitro.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"description":"Enter your API key with the Bearer prefix, e.g. \"Bearer QB_your_api_key_here\"","type":"apiKey","name":"Authorization","in":"header"}},"schemas":{"organization.InviteBody":{"type":"object","properties":{"email":{"description":"User email address","type":"string"},"role":{"description":"Organization role: \"superadmin\", \"admin\", \"readwrite\", \"billingadmin\", \"readonly\", or custom role ID","type":"string"}}},"main.SuccessResponse":{"type":"object","properties":{"action":{"description":"Action that was performed","type":"string"},"message":{"description":"Human-readable success message","type":"string"},"success":{"description":"Operation completed successfully","type":"boolean"}}},"main.ErrorResponse":{"type":"object","properties":{"action":{"description":"Action that was attempted","type":"string"},"code":{"description":"Optional error code","type":"string"},"details":{"description":"Optional additional details","type":"string"},"message":{"description":"Human-readable error message","type":"string"},"success":{"description":"Operation failed","type":"boolean"}}}}},"paths":{"/v2/organization/invite":{"post":{"description":"Invite a user to join your organization with a specified role. The user will receive an email invitation and gain organization access based on their assigned role.\n\n**Organization Roles:**\n\n| Role | Permissions |\n|------|-------------|\n| `superadmin` | Full control: all permissions including whitelabel, billing, credentials, blueprints, templates, device transfers |\n| `admin` | Organization management: read, write, credentials, access management, blueprints, templates, device transfers (no billing) |\n| `readwrite` | Create and edit: read, write, dashboard blueprints, function templates (no access management or credentials) |\n| `billingadmin` | Billing only: read and manage billing information (limited other access) |\n| `readonly` | View only: read organization resources (no modifications) |\n\n**Custom Roles:**\nOrganizations can create custom roles with specific permission combinations from the available actions.\n\n**Prerequisites:**\n- Must have `access-management` permission in the organization\n- Organization plan required (not available for Starter/Scale plans)\n- User email must be registered on the platform\n- Role must be a valid organization role ID","tags":["Organization"],"summary":"Invite user to organization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/organization.InviteBody"}}},"description":"User invitation details with organization role","required":true},"responses":{"200":{"description":"Invitation sent successfully - User will receive email notification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/main.SuccessResponse"}}}},"400":{"description":"Invalid request body - Check email format and role values (must be: superadmin, admin, readwrite, billingadmin, readonly, or custom role ID)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/main.ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/main.ErrorResponse"}}}},"403":{"description":"Forbidden - Organization plan required or insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/main.ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.qubitro.com/developers/organization.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
