Measure logo
REST API ReferenceDashboard APIProfiles

Fetch profiles

GET/apps/{id}/profiles

Returns the app's profiles, newest first. A profile is captured on Android 16 and above when a profiling trigger fires, such as an ANR or the app being fully drawn.

  • Each attachment's location is a signed URL for the profile's trace or heap dump. The file uploads separately from the event, so it can be missing for a short while after the profile appears.
  • Filter by trigger with profile_trigger:in:<value>.

Authorization

bearerAuth
AuthorizationBearer <token>

User access token issued at sign-in. Sent as Authorization: Bearer <access-token> unless cookies are used to send tokens. The /auth/refresh and /auth/signout endpoints expect the session's refresh token in the same header format instead.

In: header

Path Parameters

id*string

App's UUID.

Formatuuid

Query Parameters

from?string

ISO 8601 UTC string in milliseconds precision. Example: 2023-11-01T18:30:00.000Z. Omitting both from and to returns the last seven days.

to?string

ISO 8601 UTC string in milliseconds precision. Example: 2023-11-01T18:30:00.000Z. Omitting both from and to returns the last seven days.

filter_expr?string

Conditions joined by AND or OR and grouped with parentheses, each reading key:operator:values with the names /apps/{id}/filters/keys publishes. AND binds tighter than OR.

version_name:in:[1.2.0,1.1.9] AND mapping_type:not_in:jsbundle(version_name:contains:SNAPSHOT AND mapping_type:in:proguard) OR patch_id:is_set

An operator taking no values ends its condition, as patch_id:is_set does. Double-quote a value holding a space, comma, bracket, colon or quote, with \" and \\ inside.

At most 4096 bytes, 32 conditions, 4 levels of nesting and 200 values in one condition.

limit?integer

Maximum profiles to return. The dashboard requests 10.

Range1 <= value <= 1000
Default10
offset?integer

Number of profiles to skip.

Range0 <= value
Default0

Response Body

application/json

curl -X GET "https://example.com/apps/497f6eca-6276-4993-bfeb-53cbbbba6f08/profiles"
{  "results": [    {      "id": "5f1c3b0e-8a7d-4f1e-9c2b-6d4e8a1f3c70",      "app_id": "2b7ddad4-40a6-42a7-9e21-a90577e08263",      "session_id": "8d5a6d39-4c76-43d3-aecd-650e2c36f9c2",      "timestamp": "2026-09-30T16:22:39Z",      "trigger": "anr",      "format": "perfetto_trace",      "attribute": {        "app_version": "1.2.3",        "app_build": "42",        "os_name": "android",        "os_version": "36",        "device_manufacturer": "Google",        "device_model": "Pixel 9"      },      "attachments": [        {          "id": "66b50d91-f120-4f2f-941c-6a7c33129ef0",          "name": "profile_trigger-type-2_2026-09-30-21-52-39-964_uid-10243.perfetto-trace",          "type": "perfetto_trace",          "key": "66b50d91-f120-4f2f-941c-6a7c33129ef0.perfetto-trace",          "location": "http://localhost:9111/msr-attachments-sandbox/66b50d91-f120-4f2f-941c-6a7c33129ef0.perfetto-trace"        }      ]    }  ],  "meta": {    "next": false,    "previous": false  }}

Think this page can be better?

Open an issue