Skip to main content

Populator - Template Create

Endpoint

/i/populator/templates/create

Overview

Creates a new data-population template. Templates define the user/event/view/behavior payload that can be reused when generating test environments.

Authentication

Countly API supports three authentication methods:

  1. API key query parameter: api_key=YOUR_API_KEY
  2. Auth token query parameter: auth_token=YOUR_AUTH_TOKEN
  3. Auth token header: countly-token: YOUR_AUTH_TOKEN

Permissions

Requires Create permission for the Populator feature.

Request Parameters

ParameterTypeRequiredDescription
app_idStringYesApp context for permission checks.
api_keyStringConditionalRequired when auth_token is not provided.
auth_tokenStringConditionalRequired when api_key is not provided.
nameStringYesTemplate name. Must be unique.
uniqueUserCountNumberYesExpected unique user count for generated data.
platformTypeArrayYesPlatforms to generate for (for example iOS, Android, Web).
isDefaultBoolean or StringNo'true' becomes true; all other values become false.
lastEditedByStringNoOptional editor label stored with the template.
usersArrayNoUser-generation definitions.
eventsArrayNoEvent-generation definitions.
viewsArrayNoView/screen-generation definitions.
sequencesArrayNoSequence definitions.
behaviorObjectNoBehavior configuration.

Template Object Structure

FieldTypeRequiredDescription
nameStringYesUnique template name.
uniqueUserCountNumberYesTarget number of generated users.
platformTypeArray (String)YesPlatforms included in generated data.
isDefaultBoolean/StringNoDefault-template flag normalized to boolean.
usersArrayNoUser attribute distributions.
eventsArrayNoEvent definitions and optional segment distributions.
viewsArrayNoScreen/view generation definitions.
sequencesArrayNoSequence definitions used for behavior flows.
behaviorObjectNoAdditional behavior controls.

Example payload:

{
"name": "Subscription Demo",
"uniqueUserCount": 1200,
"platformType": ["iOS", "Android"],
"isDefault": "true",
"users": [
{
"plan": ["free", "premium"],
"country": ["US", "DE", "LT"]
}
],
"events": [
{
"purchase": [
{
"segments": {
"item": ["starter_pack", "pro_pack"],
"currency": ["USD", "EUR"]
}
}
]
}
],
"behavior": {
"sequences": []
}
}

Response

Success Response

{
"result": "Successfully created 65f0cbf8bca6b8e8fbf7f901"
}

Response Fields

FieldTypeDescription
resultStringSuccess message with inserted template ID.

Error Responses

400 Bad Request

{
"result": "Invalid params: ..."
}

400 Bad Request

{
"result": "Invalid type for behavior!"
}

400 Bad Request

{
"result": "Template with name Subscription Demo already exists"
}

400 Bad Request

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

401 Unauthorized

{
"result": "No app_id provided"
}

500 Internal Server Error

{
"result": "Database error: operation failed"
}

Behavior/Processing

Behavior Modes

ModeTriggerProcessing PathResponse Shape
Template createdValid payload and unique nameNormalizes values, sets generatedOn, inserts template.Wrapped object: { "result": "Successfully created [id]" }
Duplicate nameExisting template already uses nameStops before insert.Wrapped object: { "result": "Template with name ... already exists" }

Impact on Other Data

  • Inserts one document into countly.populator_templates.
  • Sets generatedOn timestamp during insert.

Audit & System Logs

ActionTriggerPayload
populator_template_createdTemplate insert succeedsFull created template payload.

Database Collections

CollectionUsed forData touched by this endpoint
countly.populator_templatesTemplate storageReads by name for uniqueness, inserts new template document.
countly.membersAuthentication and authorizationReads member context for permission checks.
countly.appsApp rights validationReads app access context from app_id.

Examples

Create a mobile subscription template

https://your-server.com/i/populator/templates/create?
app_id=6991c75b024cb89cdc04efd2&
api_key=YOUR_API_KEY&
name=Subscription Demo&
uniqueUserCount=1200&
platformType=["iOS","Android"]&
isDefault=true

Create a web-only template

https://your-server.com/i/populator/templates/create?
app_id=6991c75b024cb89cdc04efd2&
api_key=YOUR_API_KEY&
name=Checkout Web Journey&
uniqueUserCount=450&
platformType=["Web"]

Limitations

  • Template name uniqueness is checked globally.
  • behavior.sequences=[] is normalized to an empty behavior object.

Last Updated

2026-02-17