---
title: Manage scripts (REST)
description: AM provides the scripts endpoint to manage scripts using REST calls.
component: pingam
version: 7.3
page_id: pingam:scripting-guide:manage-scripts-rest
canonical_url: https://docs.pingidentity.com/pingam/8.1/am-scripting/manage-scripts-rest.html
llms_txt: https://docs.pingidentity.com/pingam/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["Scripts", "Rest", "JSON"]
---

# Manage scripts (REST)

AM provides the `scripts` endpoint to manage scripts using REST calls.

The following actions are available:

User-created scripts are realm-specific, hence the URI for the scripts' API can contain a realm component, such as `/json{/realm}/scripts`. If the realm is not specified in the URI, the top level realm is used.

|   |                                                                        |
| - | ---------------------------------------------------------------------- |
|   | AM includes some global example scripts that can be used in any realm. |

Scripts are represented in JSON and take the following form. Scripts are built from standard JSON objects and values (strings, numbers, objects, sets, arrays, `true`, `false`, and `null`). Each script has a system-generated *universally unique identifier* (UUID), which must be used when modifying existing scripts. Renaming a script will not affect the UUID:

```json
{
  "_id": "7e3d7067-d50f-4674-8c76-a3e13a810c33",
  "name": "Scripted Module - Server Side",
  "description": "Default global script for server side Scripted Authentication Module",
  "script": "dmFyIFNUQVJUX1RJ...",
  "language": "JAVASCRIPT",
  "context": "AUTHENTICATION_SERVER_SIDE",
  "createdBy": "id=dsameuser,ou=user,dc=openam,dc=forgerock,dc=org",
  "creationDate": 1433147666269,
  "lastModifiedBy": "id=dsameuser,ou=user,dc=openam,dc=forgerock,dc=org",
  "lastModifiedDate": 1433147666269
}
```

The values for the fields shown in the example are explained below:

* `_id`

  The UUID that AM generates for the script.

* `name`

  The name provided for the script.

* `description`

  An optional text string to help identify the script.

* `script`

  The source code of the script. The source code is in UTF-8 format and encoded into Base64.

  For example, a script such as the following:

  ```javascript
  var a = 123;
  var b = 456;
  ```

  When encoded into Base64 becomes:

  ```none
  dmFyIGEgPSAxMjM7IA0KdmFyIGIgPSA0NTY7
  ```

* `language`

  The language the script is written in - `JAVASCRIPT` or `GROOVY`.

  **Language Support per Context**

  | Script Context                      | Supported Languages    |
  | ----------------------------------- | ---------------------- |
  | `POLICY_CONDITION`                  | `JAVASCRIPT`, `GROOVY` |
  | `AUTHENTICATION_SERVER_SIDE`        | `JAVASCRIPT`, `GROOVY` |
  | `AUTHENTICATION_CLIENT_SIDE`        | `JAVASCRIPT`           |
  | `OIDC_CLAIMS`                       | `JAVASCRIPT`, `GROOVY` |
  | `AUTHENTICATION_TREE_DECISION_NODE` | `JAVASCRIPT`, `GROOVY` |

* `context`

  The context type of the script.

  Supported values are:

  * `POLICY_CONDITION`

    Policy Condition

  * `AUTHENTICATION_SERVER_SIDE`

    Server-side Authentication

  * `AUTHENTICATION_CLIENT_SIDE`

    Client-side Authentication

    |   |                                                    |
    | - | -------------------------------------------------- |
    |   | Client-side scripts must be written in JavaScript. |

  * `OIDC_CLAIMS`

    OIDC Claims

  * `AUTHENTICATION_TREE_DECISION_NODE`

    Authentication scripts used by Scripted Tree Decision authentication nodes.

* `createdBy`

  A string containing the universal identifier DN of the subject that created the script.

* `creationDate`

  An integer containing the creation date and time, in ISO 8601 format.

* `lastModifiedBy`

  A string containing the universal identifier DN of the subject that most recently updated the resource type.

  If the script has not been modified since it was created, this property will have the same value as `createdBy`.

* `lastModifiedDate`

  A string containing the last modified date and time, in ISO 8601 format.

  If the script has not been modified since it was created, this property will have the same value as `creationDate`.
