Skip to main content

SDK Fetch - Read

Endpoint

/o/sdk

Overview

Processes SDK fetch requests for installed feature methods.

Authentication

  • SDK app key: app_key
  • SDK device id: device_id

Permissions

  • No dashboard-user permission model. Access is controlled by valid app_key and SDK request validation logic.

Request Parameters

ParameterTypeRequiredDescription
app_keyStringYesApplication key.
device_idStringYesDevice identifier. Used with app key to derive app-user hash.
methodStringUsuallyFeature-specific method name handled by installed /o/sdk listeners.
metricsObject/JSON StringNoOptional metrics object. String values are parsed when possible.
checksumStringConditionallyRequired when app checksum salt is configured and SHA-1 checksum mode is used.
checksum256StringConditionallyRequired when app checksum salt is configured and SHA-256 checksum mode is used.
ip_addressStringNoOptional explicit IP used instead of request IP.
old_device_idStringNoOptional old device id for merge flows in applicable handlers.

Response

Success Response

Example object-root success (method-dependent):

{
"segments": {
"country": "US"
},
"configs": {
"welcome": true
}
}

Example wrapped success (method-dependent):

{
"result": "Success"
}

Response Fields

FieldTypeDescription
(root)Any JSON typeMethod-specific payload returned by the feature handling the request.

Error Responses

Status Code: 400 Bad Request

{
"result": "Missing parameter \"app_key\" or \"device_id\""
}

Status Code: 400 Bad Request

{
"result": "App does not exist"
}

Status Code: 400 Bad Request

{
"result": "Invalid method"
}

Status Code: 200 OK

{
"result": "Request does not match checksum"
}

Status Code: 200 OK

{
"result": "Request does not have checksum"
}

Status Code: 200 OK

{
"result": "Ignoring device_id"
}

Behavior/Processing

Behavior Modes

ModeTriggerProcessing PathResponse Shape
Method handledInstalled feature handles requested SDK methodReturns method-specific payload.Any JSON payload shape.
Unhandled methodNo feature handles methodReturns invalid-method error.Wrapped error string.
Checksum gate failApp has checksum salt and checksum is missing/invalidRequest cancelled before method handling.Wrapped informational error string with status 200.
Ignored device iddevice_id is zero-IDFA valueRequest ignored.Wrapped informational string with status 200.

Database Collections

CollectionUsed forData touched by this endpoint
countly.appsApp validation and settings sourceReads app record by app_key.
countly.app_users{appId}App-user context sourceReads current app-user document by derived _id.

Examples

Example 1: SDK fetch request

/o/sdk?app_key=YOUR_APP_KEY&device_id=DEVICE_ID&method=ab_fetch_experiments

Example 2: Missing required params

/o/sdk?method=ab_fetch_experiments
{
"result": "Missing parameter \"app_key\" or \"device_id\""
}

Operational Considerations

  • Response contracts are owned by feature handlers, not by this core entrypoint.
  • Monitoring should include both 400 Invalid method rates and checksum-gate 200 informational responses.

Limitations

  • There is no single fixed success schema for this endpoint.

Last Updated

2026-02-17