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​

Pass api_key or auth_token as a query parameter, or send countly-token as a header. See Authentication.

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 $.

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"
}

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​

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.

Limitations​

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

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.