Skip to main content

/i/app_users/update

Endpoint

/i/app_users/update

Overview

Update app user documents by query using MongoDB update modifiers.

Authentication

  • API Key (parameter): api_key=YOUR_API_KEY
  • Auth Token (parameter): auth_token=YOUR_AUTH_TOKEN
  • Auth Token (header): countly-token: YOUR_AUTH_TOKEN

Permissions

  • Requires write-level app access.

Request Parameters

ParameterTypeRequiredDescription
api_keyStringYes (or use auth_token)Dashboard API authentication key.
auth_tokenStringYes (or use api_key)Dashboard auth token.
app_idStringYesTarget app ID.
queryJSON String (Object)YesMongoDB query selecting users to update.
updateJSON String (Object)YesMongoDB update modifiers ($set, $unset, $inc, etc.).
forceBoolean/StringNoRequired when query matches more than one user.

update Object Structure

FieldTypeRequiredDescription
$setObjectNoAssigns field values.
$unsetObjectNoRemoves fields.
$incObjectNoIncrements numeric fields.
$push / $pullObjectNoUpdates array fields.
other Mongo modifiersObjectNoAllowed when key starts with $.

Response

Success Response

{
"result": "User Updated"
}

Response Fields

FieldTypeDescription
resultStringUpdate status message.

Error Responses

Status Code: 400 Bad Request

{
"result": "Missing parameter \"app_id\""
}

Status Code: 400 Bad Request

{
"result": "Missing parameter \"query\""
}

Status Code: 400 Bad Request

{
"result": "Missing parameter \"update\""
}

Status Code: 400 Bad Request

{
"result": "Could not parse parameter \"update\": {bad-json}"
}

Status Code: 400 Bad Request

{
"result": "Could not parse parameter \"query\": {bad-json}"
}

Status Code: 400 Bad Request

{
"result": "Parameter \"update\" cannot be empty"
}

Status Code: 400 Bad Request

{
"result": "No users matching criteria"
}

Status Code: 400 Bad Request

{
"result": "This query would update more than one user"
}

Status Code: 400 Bad Request

{
"result": "Unkown modifier name in {\"name\":\"Alex\"} for {\"uid\":\"1\"}"
}

Status Code: 400 Bad Request

{
"result": "Missing parameter \"api_key\" or \"auth_token\""
}

Behavior/Processing

Behavior Modes

ModeTriggerProcessing PathResponse Shape
Single-user updateQuery matches exactly one userValidates modifiers, updates matching user document.Wrapped string: { "result": "User Updated" }
Multi-user updateQuery matches more than one user and force is providedApplies updateMany to all matched users.Wrapped string: { "result": "User Updated" }
Multi-user blockedQuery matches more than one user and force is missingUpdate is rejected before write.Wrapped error string: { "result": "This query would update more than one user" }

Impact on Other Data

  • Triggers plugin listeners for app-user updates, so plugin-specific user data may be updated as part of the same operation.

Database Collections

CollectionUsed forData touched by this endpoint
countly.membersAuthentication and permission validationReads member identity and app-level write permissions.
countly.app_users{appId}User query and update targetCounts matched users and applies MongoDB modifier updates to matching documents.

Examples

Example 1: Update one user property

/i/app_users/update?api_key=YOUR_API_KEY&app_id=64b0ac10c2c3ce0012dd1001&query={"uid":"1"}&update={"$set":{"name":"Jane"}}
{
"result": "User Updated"
}

Limitations

  • Non-modifier update objects are rejected (update keys must start with $).
  • Multi-user updates require explicit force.

Last Updated

2026-02-17