One of the most powerful pieces of functionality Analytics offers is the ability to identify groups of users based on their behavioral characteristics. These groups are known in Analytics as User Segments. This functionality is now available as an API so that you can programmatically export segments for use within your own or third-party platforms.
Almost any data point in Analytics can be saved as a User Segment. For example, if you run a segmentation query representing Registrations in the Last 7 Days, you can save the output of that query as a User Segment named Recent Registrants, which will contain all users who performed a Registration event in the Last 7 Days. Once these User Segments are built, they can be used as filters in all other queries. Continuing on the above example, you would be able to filter any analysis based on whether users included in that analysis are in (or not in) the Recent Registrants set of users.
Using Analytics’ User Segments Export API, you will be able to export your User Segments for use in downstream systems.
Analytics’ Export API is accessible only to Pro or Enterprise customers.
The User Segments Export API is an asynchronous API. Upon invoking a request for a User Segments export, Analytics will schedule a job to asynchronously process and upload the final result to Amazon S3, where you’ll then be able to download the file to access the contents.
Analytics’ User Segments Export API allows you to perform three operations related to User Segment exports:
User Segment exports typically complete within a matter of seconds, but can potentially take up to several hours to complete with a large result set.
The expected usage of this API works as follows:
Analytics’ Export API requires HTTPS/SSL and uses Basic Authentication header for all requests. Basic Authentication is a simple authentication scheme built into the HTTP protocol. The client sends HTTP requests with the Authorization header that contains the word Basic followed by a space and a Base64-encoded string username:password.
Use your API Key as the username and your Access Token as the password. This information can be found on the Project Page in the Analytics web application. Please treat your Access Token as you would a password, as it is meant to only be known to you.
An example curl:
curl -v -u "apiKey:accessToken" https://query.indicative-prod.mparticle.com
curl’s -u parameter automatically encodes the username and password and inserts them into the Authorization header. Depending on your client implementation you may need to do this manually.
The resulting HTTP Response should have a 200 OK status.
All API responses are in JSON format.
Status Code | Description |
---|---|
200 | Success: Your request was successful. |
401 | Unauthorized: Your request was rejected because we could not validate your credentials. Please check that your API key and access token are correct. |
403 | Forbidden: Your request was rejected because the specified project does not have access to the Export API. Please upgrade your account or contact Analytics support to gain access. |
429 | Too Many Requests: Too many requests have been attempted in a given amount of time. |
500 | Internal Error: An error occurred while processing your API request. This will automatically raise a ticket with the Analytics team. Please try your request at a later time. |
This endpoint lists all User Segments in a project.
User Segment Object Response
Field | Type | Nullable? | Description |
---|---|---|---|
segmentId | String | No | The unique ID of the User Segment. |
name | String | No | The human-readable name of the User Segments. |
description | String | Yes | The human-readable description of the User Segments. |
category | String | Yes | The human-readable category of the User Segments. |
projectId | String | No | The project ID associated to the segment ID. |
type | Enum | No | The type of the user segment, either Static (One-time in the UI) or Dynamic (Daily in the UI). Static segments never change while Dynamic segments may be refreshed. |
lastRun | DateTime | Yes | The timestamp of the last refresh of the User Segments. |
Example: List User Segments
$ curl -s -u "5a6646c4-ae5a-4de4-9d47-eb6f228405b2:nux06hkn870v0ni4fhtd81kf" https://query.indicative-prod.mparticle.com/service/v1/segments/list
[
{
"segmentId": "82200474-c131-4f7b-a35e-381469af31a7",
"name": "My Segment",
"description": "This is my segment",
"category": null,
"projectId": "5a6646c4-ae5a-4de4-9d47-eb6f228405b2",
"type": "Static",
"lastRun": "2019-04-09T12:25:06.000Z"
}
]
This endpoint invokes a new export request for the specified User Segments.
POST https://query.indicative-prod.mparticle.com/service/v1/segments/export/
Request Parameters: POST body, containing the following fields:
Request Headers:
Field | Type | Nullable? | Description |
---|---|---|---|
exportId | String | No | The unique ID of the User Segment export request. |
segment | Object | No | An object encapsulating information about the target User Segment for this export. |
status | Enum | No | The status of the User Segment export. Values are either PENDING, COMPLETE, or FAILED. |
projectId | String | No | The project ID of the User Segment export. |
startTime | DateTime | No | The time at which the User Segment export started. |
endTime | DateTime | Yes | The time at which the User Segment export completed. This field will remain null until the export is completed. |
filename | String | No | The fully qualified location of the file to download. |
Example: Request User Segments Export
$ curl -s -u "5a6646c4-ae5a-4de4-9d47-eb6f228405b2:nux06hkn870v0ni4fhtd81kf" -H 'Content-Type: application/json' https://query.indicative-prod.mparticle.com/service/v1/segments/export/ -d'{
"segmentId": "82200474-c131-4f7b-a35e-381469af31a7",
"outputFormat": "csv"
}'
{
"exportId": "8f9fdd71-204c-41e1-a2ab-de7f85002f65",
"segment": {
"segmentId": "82200474-c131-4f7b-a35e-381469af31a7",
"name": "My Segment",
"description": "This is my segment",
"category": null,
"projectId": "5a6646c4-ae5a-4de4-9d47-eb6f228405b2",
"type": "Static",
"lastRun": "2019-04-09T12:25:06.000Z"
},
"status": "PENDING",
"startTime": "2019-04-09T14:45:07.000Z",
"endTime": null,
"filename": null
}
This endpoint checks the status of a previously submitted export request. Once the request has finished processing, it will include a URL to download the results.
Once the request has been completed, the file will remain in Amazon for no more than 48 hours. Otherwise, a new request must be submitted.
GET https://query.indicative-prod.mparticle.com/service/v1/segments/export/{exportId}
Request Parameters:
Example: Check User Segment Export Status
$ curl -s -u "5a6646c4-ae5a-4de4-9d47-eb6f228405b2:nux06hkn870v0ni4fhtd81kf" https://query.indicative-prod.mparticle.com/service/v1/segments/export/8f9fdd71-204c-41e1-a2ab-de7f85002f65
{
"exportId": "8f9fdd71-204c-41e1-a2ab-de7f85002f65",
"segment": {
"segmentId": "82200474-c131-4f7b-a35e-381469af31a7",
"name": "My Segment",
"description": "This is my segment",
"category": null,
"projectId": "5a6646c4-ae5a-4de4-9d47-eb6f228405b2",
"type": "Static",
"lastRun": "2019-04-09T12:25:06.000Z"
},
"status": "COMPLETE",
"startTime": "2019-04-09T14:45:07.000Z",
"endTime": "2019-04-09T14:45:42.000Z",
"filename": "s3://upload-bucket/path/to/8f9fdd71-204c-41e1-a2ab-de7f85002f65.csv"
}
Was this page helpful?