---
title: Policy set application types over REST
description: Use the REST API to query and read application types that define how to compare resources and index policies in PingAM
component: pingam
version: 8
page_id: pingam:am-authorization:rest-api-authz-application-types
canonical_url: https://docs.pingidentity.com/pingam/8.1/am-authorization/rest-api-authz-application-types.html
llms_txt: https://docs.pingidentity.com/pingam/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: 2026-06-01T14:34:20Z
keywords: ["Authorization", "Policy", "Resource", "Configuration", "REST API"]
page_aliases: ["authorization-guide:rest-api-authz-application-types.adoc"]
superseded_by: https://docs.pingidentity.com/pingam/8.1/am-authorization/rest-api-authz-application-types.html
section_ids:
  rest-api-authz-application-types-query: Query application types
  rest-api-authz-application-types-read: Read a specific application type
---

# Policy set application types over REST

*Application types* define how to compare resources and index policies. The default application type, `iPlanetAMWebAgentService`, represents web resources. The policy set for web and Java agents (also called `iPlanetAMWebAgentService`) is based on this default application type.

The `applicationtypes` REST endpoint lets you do the following:

* [Query application types](#rest-api-authz-application-types-query)

* [Read a specific application type](#rest-api-authz-application-types-read)

Application types are configured per *server*, not per realm. Therefore, the URI for the application types API does not include a realm component, and is simply `/json/applicationtypes`.

Application types are represented in JSON format, for example:

```json
{
    "name": "iPlanetAMWebAgentService",
    "actions": {
        "POST": true,
        "PATCH": true,
        "GET": true,
        "DELETE": true,
        "OPTIONS": true,
        "PUT": true,
        "HEAD": true
    },
    "resourceComparator": "com.sun.identity.entitlement.URLResourceName",
    "saveIndex": "org.forgerock.openam.entitlement.indextree.TreeSaveIndex",
    "searchIndex": "org.forgerock.openam.entitlement.indextree.TreeSearchIndex",
    "applicationClassName": "com.sun.identity.entitlement.Application"
}
```

An application type object includes the following information:

* `name`

  Name of the application type.

* `actions`

  Set of actions for that application type, each with a boolean value indicating whether the action is allowed.

* `resourceComparator`

  The class name of the resource comparator implementation used in the context of this application type.

  The following implementations are available:

  `"com.sun.identity.entitlement.ExactMatchResourceName"`\
  `"com.sun.identity.entitlement.PrefixResourceName"`\
  `"com.sun.identity.entitlement.RegExResourceName"`\
  `"com.sun.identity.entitlement.URLResourceName"`

* `saveIndex`

  Class name of the implementation for creating indexes for resource names, such as `"com.sun.identity.entitlement.util.ResourceNameIndexGenerator"`, for URL resource names.

* `searchIndex`

  Class name of the implementation for searching indexes for resource names, such as `"com.sun.identity.entitlement.util.ResourceNameSplitter"`, for URL resource names.

* `applicationClassName`

  Class name of the application type implementation, such as `"com.sun.identity.entitlement.Application"`.

## Query application types

To list all application types, send an HTTP GET request to the `/json/applicationtypes` endpoint, with a `_queryFilter` parameter set to `true`.

The `iPlanetDirectoryPro` header is required and should contain the SSO token of an administrative user, such as `amAdmin`, who has access to perform the operation.

```bash
$ curl \
--header "iPlanetDirectoryPro: AQIC5…​" \
--header "Accept-API-Version: resource=1.0" \
"https://am.example.com:8443/am/json/applicationtypes?_queryFilter=true"
{
  "result": [
    {
      "_id": "umaApplicationType",
      "applicationClassName": "com.sun.identity.entitlement.Application",
      "saveIndex": "org.forgerock.openam.uma.UmaPolicySaveIndex",
      "searchIndex": "org.forgerock.openam.uma.UmaPolicySearchIndex",
      "resourceComparator": "org.forgerock.openam.uma.UmaPolicyResourceMatcher",
      "name": "umaApplicationType",
      "actions": {}
    },
    {
      "_id": "sunAMDelegationService",
      "applicationClassName": "com.sun.identity.entitlement.Application",
      "saveIndex": "com.sun.identity.entitlement.opensso.DelegationResourceNameIndexGenerator",
      "searchIndex": "com.sun.identity.entitlement.opensso.DelegationResourceNameSplitter",
      "resourceComparator": "com.sun.identity.entitlement.RegExResourceName",
      "name": "sunAMDelegationService",
      "actions": {
        "READ": true,
        "MODIFY": true,
        "DELEGATE": true
      }
    },
    {
      "_id": "iPlanetAMWebAgentService",
      "applicationClassName": "com.sun.identity.entitlement.Application",
      "saveIndex": "org.forgerock.openam.entitlement.indextree.TreeSaveIndex",
      "searchIndex": "org.forgerock.openam.entitlement.indextree.TreeSearchIndex",
      "resourceComparator": "com.sun.identity.entitlement.URLResourceName",
      "name": "iPlanetAMWebAgentService",
      "actions": {
        "HEAD": true,
        "DELETE": true,
        "POST": true,
        "GET": true,
        "OPTIONS": true,
        "PUT": true,
        "PATCH": true
      }
    }
  ],
  "resultCount": 3,
  "pagedResultsCookie": null,
  "totalPagedResultsPolicy": "NONE",
  "totalPagedResults": -1,
  "remainingPagedResults": 0
}
```

Use additional query strings to narrow down the results. For details, refer to [Query](../am-rest/rest-intro.html#about-crest-query).

## Read a specific application type

To read an specific application type, send an HTTP GET request to the `/json/applicationtypes` endpoint, specifying the application type name in the URL.

The `iPlanetDirectoryPro` header is required and should contain the SSO token of an administrative user, such as `amAdmin`, who has access to perform the operation.

```bash
$ curl \
--header "iPlanetDirectoryPro: AQIC5…​" \
--header "Accept-API-Version: resource=1.0" \
"https://am.example.com:8443/am/json/applicationtypes/iPlanetAMWebAgentService"
{
  "_id": "iPlanetAMWebAgentService",
  "_rev": "1664877005610",
  "applicationClassName": "com.sun.identity.entitlement.Application",
  "saveIndex": "org.forgerock.openam.entitlement.indextree.TreeSaveIndex",
  "searchIndex": "org.forgerock.openam.entitlement.indextree.TreeSearchIndex",
  "resourceComparator": "com.sun.identity.entitlement.URLResourceName",
  "name": "iPlanetAMWebAgentService",
  "actions": {
    "HEAD": true,
    "DELETE": true,
    "POST": true,
    "GET": true,
    "OPTIONS": true,
    "PUT": true,
    "PATCH": true
  }
}
```
