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 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>


