Skip to main content
Identities

Get effective config

Get the compiled runtime config for an Identity and Template.

GET /api/v1/forward/identities/{identity_id}/templates/{template_id}/effective Returns the effective configuration after applying Identity Config overrides to the Template baseline. The response is designed for runtime execution and does not include Forward DSL fields such as enabled or op.

Headers

HeaderRequiredDescription
AuthorizationYesBearer <PAT or SAT>

Path parameters

ParameterTypeRequiredDescription
identity_idstringYesForward Identity ID.
template_idstringYesForward Template ID.

Example request

curl -s -X GET 'https://api.qoder.com/api/v1/forward/identities/idn_019eabc123/templates/tmpl_support/effective' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN"

Example response

HTTP 200 OK
{
  "type": "effective_spec",
  "id": "config_123",
  "identity_id": "idn_019eabc123",
  "template_id": "tmpl_support",
  "agent_effective_hash": "sha256:...",
  "session_effective_hash": "sha256:...",
  "effective_hash": "sha256:...",
  "agent": {
    "model": "ultimate",
    "system": "You are a support assistant.\nPrefer CRM data when answering.",
    "tools": [
      {
        "type": "agent_toolset_20260401",
        "configs": [
          {
            "name": "Read",
            "enabled": true
          },
          {
            "name": "Grep",
            "enabled": true
          },
          {
            "name": "WebSearch",
            "enabled": false
          }
        ]
      }
    ],
    "mcp_servers": [],
    "skills": []
  },
  "session": {
    "environment_id": "env_support",
    "environment_variables": {
      "BASE_MODE": "identity",
      "USER_MODE": "enabled"
    },
    "vault_ids": [
      "vault_019f18f2761b"
    ],
    "resources": [
      {
        "type": "file",
        "file_id": "file_019eXXXX"
      },
      {
        "type": "github_repository",
        "url": "https://github.com/acme/support-agent",
        "mount_path": "/data/workspace/support-agent"
      }
    ]
  }
}

Response fields

FieldTypeDescription
typestringAlways effective_spec.
agent_effective_hashstringHash of the compiled agent section.
session_effective_hashstringHash of the compiled session section.
effective_hashstringHash of the full effective config.
agentobjectCompiled Agent configuration. See Agent object and the field descriptions below.
sessionobjectCompiled session defaults.
session.environment_variablesobject | stringFinal environment variables after merging the Template and Identity Config.

Agent configuration structure

FieldTypeDescription
name / descriptionstringName and description when present; may be omitted.
modelstring | objectModel ID string, or an object containing id and optional effort, speed, and context_window. See Model.
max_tool_roundsintegerMaximum tool-call rounds per Turn inherited from the Template.
systemstringFinal prompt compiled using replace / append; no mode or content object remains.
toolsarrayAgent tool, including Tool config and Permission policy. Identity tools and toolsets overrides are merged into this array.
mcp_serversarrayItems contain name, type, and url. See Template MCP servers.
skillsarraySkill binding: type, skill_id, and optional version.
metadataobjectTemplate Agent metadata merged with identity_config.agent_metadata.
multiagentobject | nullMultiagent configuration. May include {"type":"advisor","model":"ultimate"}; the Advisor model is a string. See Multiagent.
For raw overrides, see Identity config object. Fields such as system, tools, mcp_servers, and skills have different shapes from this compiled response.

Errors

HTTPTypeCodeTrigger
400invalid_request_error-The Effective Config cannot be compiled.
401authentication_errorauthentication_requiredThe PAT or SAT is invalid or expired.
404not_found_error-The Identity or Template does not exist.
422invalid_request_error-Runtime configuration validation failed.

Notes

  • Identity Config overrides Template fields by field-specific merge rules.
  • Missing Identity Config is treated as an empty override layer.
  • The response does not include Forward override DSL fields such as managed_tool_config; do not use it directly as the request body for Upsert Identity Config.
  • Default memory store injection is handled by the Session creation flow.