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

# Add dynamic headers

> How to add headers with values that are not known until call time, using iapMetadata or adapter.js code changes.

A header is dynamic when its value is not known until the call is made. Static header configuration in `action.json` or the service instance configuration cannot accommodate this — the header value must be supplied at call time.

## Using iapMetadata (no code change required)

If the adapter method exposes an `iapMetadata` parameter, pass the headers inside an `addlHeaders` object on that parameter. You can construct the `iapMetadata` object usingItential Platform workflow capabilities such as `query` and `merge`.

Structure:

```json
{
  "addlHeaders": {
    "<header1_name>": "<value1>",
    "<header2_name>": "<value2>"
  }
}
```

Example:

```json
{
  "addlHeaders": {
    "x_custom_header": "63121931219fdd",
    "Session-id": "AB9637462349"
  }
}
```

If the adapter method does not have an `iapMetadata` parameter, you can request that the Adapter Team add it. Note that adding `iapMetadata` requires creating new methods — Itential does not modify existing method signatures to avoid breaking changes.

## Using adapter.js (code change required)

If the adapter does not support `iapMetadata`, you can expose the dynamic header value as a parameter in the adapter method and set it in `addlHeaders` on the `reqObj`. This approach also requires updating `pronghorn.json` to match the new method signature.

See [Call properties authentication](/adapters/configure/service-instance-configuration/properties/authentication-properties) for an example of this pattern applied to authentication, which follows the same approach.

## Static headers

If the header value does not change between calls, use the static header options instead. See [Headers overview](./overview) for guidance on when to use `action.json` versus the service instance configuration.