Skip to main content

Update property or segment data types

Enterprise Only
This API is available exclusively in Countly Enterprise.

Endpoint

/i/data-manager/data-type

Overview

Runs Data Manager type migration operations for event segments and user properties.

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 data_manager Update permission.

Request Parameters

ParameterTypeRequiredDescription
app_idStringYesTarget app ID.
opsJSON String (Object)YesType migration operations keyed by event key + segment key.
api_keyStringConditionalRequired if auth_token is not provided.
auth_tokenStringConditionalRequired if api_key is not provided.

ops Object Structure

ops is a JSON-stringified object keyed by event|segment, where each value describes one type migration operation.

FieldTypeRequiredDescription
eventStringYesTarget domain key (custom, up, or event key).
segmentStringYesSegment/property key to migrate.
newDataTypeStringYesNew type code (for example s, n).
prevDataTypeStringYesPrevious type code.

Decoded example:

{
"purchase|price": {
"event": "purchase",
"segment": "price",
"newDataType": "n",
"prevDataType": "s"
}
}

Response

Success Response

"Success"

Response Fields

FieldTypeDescription
(root value)StringSuccess when migration request is accepted.

Error Responses

  • 500
500

Behavior/Processing

  • Parses ops and forces user-property mode (ops.isUserProperty = true).
  • Runs migrateDataType(...) for each operation.
  • Updates type metadata in countly_drill.drill_meta and app overrides in countly.apps.
  • Triggers type migration through drill processing and invalidates Data Manager cache.

Audit & System Logs

ActionTriggerPayload
dm-dt-customUser custom-property type migration (event=custom){ query, id: "custom.segment_key" }
dm-dt-upBuilt-in user property type migration (event=up){ query, id: "up.segment_key" }
dm-dt-event-sgEvent segment type migration (event_key + segment_key){ query }

Database Collections

CollectionUsed forData touched by this endpoint
countly_drill.drill_metaSource-of-truth metadata for event segments and user propertiesUpdates type metadata (type, prev_type) for custom, up, and event segment targets.
countly.appsApp-level type override cacheUpdates ovveridden_types.events.* / ovveridden_types.prop.* entries used by downstream reads.
countly.systemlogsAudit trailWrites migration actions (dm-dt-custom, dm-dt-up, dm-dt-event-sg) with migrated target details.

Examples

Update a custom user property type

/i/data-manager/data-type?
app_id=64f5c0d8f4f7ac0012ab3456&
ops={"custom|plan":{"event":"custom","segment":"plan","newDataType":"s","prevDataType":"n"}}

Update an event segment type

/i/data-manager/data-type?
app_id=64f5c0d8f4f7ac0012ab3456&
ops={"purchase|price":{"event":"purchase","segment":"price","newDataType":"n","prevDataType":"s"}}

Operational Considerations

  • Type migration can touch large historical datasets and may run for a long time on high-volume apps.
  • Plan migrations during low-traffic windows to reduce contention with write-heavy workloads.

Limitations

  • On runtime exceptions, this endpoint can return HTTP 200 with raw JSON body 500.


Last Updated

2026-02-16