> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# action.json field definitions

> Reference for all fields available in an adapter action.json file.

Adapter Builder auto-populates `action.json` fields from the provided OpenAPI document. When the builder cannot derive a value, the field is set to its default.

## Fields

| Field                  | Required                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ---------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                 | Yes                          | The unique name of the action within the adapter, corresponding to the method name in `adapter.js`. Adapter Builder uses the `operationId` from the OpenAPI document if available; otherwise it generates a name from the HTTP method and path. When `adapter.js` calls `identifyRequest`, it passes the entity name as the first parameter and this `name` as the second.                                                                                                        |
| `protocol`             | Yes                          | The protocol for the action. `REST` is currently the only supported value. SOAP-based systems also use `REST` since SOAP calls are made as HTTP/HTTPS POST requests.                                                                                                                                                                                                                                                                                                              |
| `method`               | Yes                          | The HTTP method (verb) for the call. Common values are `GET`, `POST`, `PUT`, `PATCH`, and `DELETE`, but others are supported.                                                                                                                                                                                                                                                                                                                                                     |
| `entitypath`           | Yes                          | The path appended to the base API call: `https://host:port/entitypath`. Supports variables such as `{base_path}` that the adapter library replaces at runtime. Can be a string for a single path, or an object with version keys when multiple paths need to be supported for the same action. The active path is selected using the `choosepath` property in theItential Platform service instance configuration. If `choosepath` is not set, the first path is used by default. |
| `schema`               | Yes (if no specific schemas) | The default schema used for both the request and response when no action-specific schemas are defined.                                                                                                                                                                                                                                                                                                                                                                            |
| `requestSchema`        | Yes (if no general `schema`) | A schema specific to the request.                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `responseSchema`       | Yes (if no general `schema`) | A schema specific to the response.                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `timeout`              | No → `0`                     | An action-level timeout in milliseconds that overrides the global `request.attempt_timeout`. If not set or set to `0` or less, the global timeout applies.                                                                                                                                                                                                                                                                                                                        |
| `sendEmpty`            | No → `false`                 | When `true`, sends an empty object (`{}`) to the external system even when there is no data to send. Some systems require this to process a request.                                                                                                                                                                                                                                                                                                                              |
| `sendGetBody`          | No → `false`                 | When `true`, sends a body with GET requests. Most systems do not expect a body on GET requests, but some do.                                                                                                                                                                                                                                                                                                                                                                      |
| `datatype`             | No → `JSON`                  | The data format used for both request and response when no action-specific datatypes are defined. Supported values: `PLAIN`, `XML`, `XML2JSON`, `URLENCODE`, `FORM`, `JSON`. For token requests, `URLQUERY` is also accepted and passes token data in the URL instead of the request body. Unsupported values fall back to `PLAIN`.                                                                                                                                               |
| `requestDatatype`      | No → `JSON`                  | Datatype specific to the request.                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `responseDatatype`     | No → `JSON`                  | Datatype specific to the response.                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `headers`              | No → `{}`                    | Static headers to include on every call for this action. Action-level headers override global request headers set in the service instance configuration. Note that `Content-Type` and `Accept` are set automatically by the adapter library based on the datatype, but they can be overridden here.                                                                                                                                                                               |
| `responseObjects`      | Yes                          | Tells the adapter how to handle the response. Serves two purposes: locating the data within the response thatItential Platform cares about, and pointing to mock data files for standalone testing.                                                                                                                                                                                                                                                                               |
| `responseObjects.type` | Yes                          | Identifies which response object to use. The adapter library works through a hierarchy to find the best match. A `default` response object must always be present as a fallback.                                                                                                                                                                                                                                                                                                  |
| `key`                  | Yes (can be empty)           | A JSONQuery string that locates the relevant data within the response. Use this to strip metadata and return only the fieldsItential Platform needs. Leave empty to return the full response.                                                                                                                                                                                                                                                                                     |
| `mockFile`             | Yes (can be empty)           | The relative path to the mock data file returned when the adapter runs in stub mode. Leave empty if mock data is not needed.                                                                                                                                                                                                                                                                                                                                                      |

## Example

```json
{
  "name": "getIP",
  "protocol": "REST",
  "method": "GET",
  "entitypath": "{base_path}/{version}/addresses/{pathv1}",
  "requestSchema": "schema.json",
  "responseSchema": "schemaReturn.json",
  "timeout": 3000,
  "sendEmpty": true,
  "sendGetBody": false,
  "requestDatatype": "PLAIN",
  "responseDatatype": "XML2JSON",
  "headers": {
    "Content-Type": "application/text"
  },
  "responseObjects": [
    {
      "type": "default",
      "key": "",
      "mockFile": "mockdatafiles/getIP-default.xml"
    }
  ]
}
```