Skip to main content

Overview

Organizations allow multiple users to collaborate on projects. Organization owners can manage members, assign roles, and create teams for granular access control.

Get Organization

curl -X GET "https://app.qfield.cloud/api/v1/users/{organization_name}/" \
  -H "Authorization: Token YOUR_TOKEN"
GET /api/v1/users/{organization_name}/ Retrieve organization details.

Path Parameters

organization_name
string
required
The username of the organization

Response

username
string
Organization username
type
string
User type: organization
email
string
Organization email address
avatar_url
string
URL to the organization’s avatar image
members
array
Array of public member usernames
organization_owner
string
Username of the organization owner
membership_role
string
Current user’s role in the organization: member or admin
membership_role_origin
string
Origin of the membership role: direct or owner
membership_is_public
boolean
Whether the current user’s membership is publicly visible
teams
array
Array of team names within the organization
{
  "username": "acme_org",
  "type": "organization",
  "email": "[email protected]",
  "avatar_url": "https://app.qfield.cloud/api/v1/files/avatars/acme_org/avatar.png",
  "members": ["john_doe", "jane_smith"],
  "organization_owner": "john_doe",
  "membership_role": "admin",
  "membership_role_origin": "owner",
  "membership_is_public": true,
  "teams": ["field_team", "admin_team"]
}

List User’s Organizations

curl -X GET "https://app.qfield.cloud/api/v1/users/{username}/organizations/" \
  -H "Authorization: Token YOUR_TOKEN"
GET /api/v1/users/{username}/organizations/ Get all organizations for a specific user. Only works for the authenticated user.

Path Parameters

username
string
required
Username of the authenticated user

Response

Returns an array of organization objects with the same structure as Get Organization.
[
  {
    "username": "acme_org",
    "type": "organization",
    "email": "[email protected]",
    "avatar_url": "https://app.qfield.cloud/api/v1/files/avatars/acme_org/avatar.png",
    "members": ["john_doe", "jane_smith"],
    "organization_owner": "john_doe",
    "membership_role": "admin",
    "membership_role_origin": "owner",
    "membership_is_public": true,
    "teams": ["field_team", "admin_team"]
  },
  {
    "username": "geo_collective",
    "type": "organization",
    "email": "[email protected]",
    "avatar_url": null,
    "members": ["jane_smith", "bob_wilson"],
    "organization_owner": "bob_wilson",
    "membership_role": "member",
    "membership_role_origin": "direct",
    "membership_is_public": false,
    "teams": ["survey_team"]
  }
]

List Members

curl -X GET "https://app.qfield.cloud/api/v1/members/{organization}/" \
  -H "Authorization: Token YOUR_TOKEN"
GET /api/v1/members/{organization}/ Get all members of an organization.

Path Parameters

organization
string
required
The username of the organization

Query Parameters

limit
integer
Number of results to return per page
offset
integer
The initial index from which to return the results

Response

count
integer
Total number of members
next
string
URL to the next page of results
previous
string
URL to the previous page of results
results
array
Array of member objects
organization
string
Organization username
member
string
Member username
role
string
Member role: member or admin
is_public
boolean
Whether the membership is publicly visible
{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "organization": "acme_org",
      "member": "john_doe",
      "role": "admin",
      "is_public": true
    },
    {
      "organization": "acme_org",
      "member": "jane_smith",
      "role": "member",
      "is_public": true
    }
  ]
}

Add Member

curl -X POST "https://app.qfield.cloud/api/v1/members/{organization}/" \
  -H "Authorization: Token YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "member": "new_user",
    "role": "member",
    "is_public": true
  }'
POST /api/v1/members/{organization}/ Add a user as a member of the organization.

Path Parameters

organization
string
required
The username of the organization

Request Body

member
string
required
Username of the user to add
role
string
required
Role to assign: member or admin
is_public
boolean
required
Whether the membership should be publicly visible

Response

Returns the created member object.
{
  "organization": "acme_org",
  "member": "new_user",
  "role": "member",
  "is_public": true
}

Error Responses

{
  "code": "max_organization_members",
  "message": "Maximum number of organization members reached for your plan"
}

Get Member

curl -X GET "https://app.qfield.cloud/api/v1/members/{organization}/{username}/" \
  -H "Authorization: Token YOUR_TOKEN"
GET /api/v1/members/{organization}/{username}/ Get the role of a specific member.

Path Parameters

organization
string
required
The username of the organization
username
string
required
Username of the member

Response

Returns a single member object.
{
  "organization": "acme_org",
  "member": "jane_smith",
  "role": "member",
  "is_public": true
}

Update Member

curl -X PATCH "https://app.qfield.cloud/api/v1/members/{organization}/{username}/" \
  -H "Authorization: Token YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "admin"
  }'
PATCH /api/v1/members/{organization}/{username}/ Update a member’s role or visibility. You can also use PUT for a full update.

Path Parameters

organization
string
required
The username of the organization
username
string
required
Username of the member

Request Body

role
string
New role: member or admin
is_public
boolean
Whether the membership should be publicly visible

Response

Returns the updated member object.
{
  "organization": "acme_org",
  "member": "jane_smith",
  "role": "admin",
  "is_public": true
}

Remove Member

curl -X DELETE "https://app.qfield.cloud/api/v1/members/{organization}/{username}/" \
  -H "Authorization: Token YOUR_TOKEN"
DELETE /api/v1/members/{organization}/{username}/ Remove a member from the organization.

Path Parameters

organization
string
required
The username of the organization
username
string
required
Username of the member to remove

Response

Returns HTTP 204 No Content on success.

Organization Roles

Member

  • View organization projects (based on project permissions)
  • Be added to teams
  • Use organization quota for owned projects

Admin

  • All Member permissions
  • Add/remove members
  • Create/delete teams
  • Manage team memberships
  • Create organization projects
  • Modify organization settings

Build docs developers (and LLMs) love