Retrieve access profiles for an identity

Is there a way to retrieve the access profiles assigned to a specific identity using a Search query or via APIs in SailPoint IdentityNow?
I am looking to understand if there is a direct method to fetch access profile assignments for an identity.

I think you’re looking for this:

GET v2026/historical-identities/:id/access-items?type=accessProfile&limit=250&offset=0

Page through as needed.

Matt

Hi Sowmya,

Yes, there are a few direct ways to retrieve access profiles assigned to a specific identity in SailPoint Identity Security Cloud (ISC / IdentityNow). Here are the main approaches:

1. Historical Identities API (cleanest direct approach)

Use the access-items endpoint on historical-identities, filtered by type:

GET /beta/historical-identities/{identityId}/access-items?type=accessProfile

You can swap type=accessProfile for type=role or type=entitlement to fetch the other access item types for the same identity. This is generally the most straightforward API for exactly what you’re asking.

2. Search API (POST /v3/search)

You can query the identities index and pull the nested access array, filtered to access profiles. Example body:

json

{
  "indices": ["identities"],
  "query": {
    "query": "id:\"<identityId>\""
  },
  "queryResultFilter": {
    "includes": ["name", "access"]
  }
}

Then filter the returned access array where type == "ACCESS_PROFILE". Keep in mind the search index is near real-time, so very recent assignment changes may take a few moments to reflect — which is why the historical-identities endpoint is often preferred for “live” accuracy.

3. Search UI (no code)

If you just need to view/export this rather than automate it, go to Search, run a query like id:<identityId> on the Identities tab, then use the download option and include access information. Each access item (including access profiles) comes on its own row in the exported file.

4. Nested search query

If you want to find identities by access profile name rather than by identity ID, you can use a nested query on the identities index, e.g.:

@access(type:ACCESS_PROFILE AND name:"Your Access Profile Name")

For most automation use cases, option 1 (/beta/historical-identities/{id}/access-items?type=accessProfile) is the cleanest. If you need historical state or richer metadata, the Search API is the more flexible option.

Hope this helps!

Yes, you can use the Search API with nested inclusion
The response includes an access array containing all access profiles, roles, and entitlements assigned to that identity. Filter by "type": "ACCESS_PROFILE" if you only need access profiles.

Check this out for more info. :backhand_index_pointing_down:

yes, you can use below search query to get access profiles of a identity

https://xxxx.api.identitynow.com/v3/search

body should be like

{

"includeNested": **false**,

"indices": \[

  "identities"

\],

"query": {

  "innerHit": {

    "query": "source.name.exact:\\"xxxx\\" AND type:\\"ACCESS_PROFILE\\" ",

    "type": "access"

  },

  "query": "id:{identityId}"

},

"queryResultFilter": {

  "includes": \[

    "access.id",

    "access.source.name"

  \]

}

}

Thank you @MattUribe @colsmith @punna0001 @BhanuK1

use the Search API to get this. Try this query:

@access(type:ACCESS_PROFILE) AND identityIds:<identity_id>