---
title: "Attach rule set to binding"
method: PUT
path: "/credentials/{credential_id}/agents/{agent_id}/rule-set"
tags: ["Credentials"]
---

# Attach rule set to binding

`PUT /credentials/{credential_id}/agents/{agent_id}/rule-set`

Point the binding at a shared rule set (idempotent PUT).

While attached, the set's ordered list is the binding's effective policy
and its inline rules are dormant — `permissions:test` evaluates the set.
The set must exist (404 `rule_set_not_found`).

## Path parameters

- `credential_id` string, required
- `agent_id` string, required

## Request body

- RuleSetAttachRequest — Point a direct agent↔credential binding at a shared rule set.
  - `rule_set_id` string, required — Id (`prs_…`) of the rule set to attach.

## Response `204`

Successful Response

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Internal Server Error
- `503` — Service Unavailable

## Changes

- **2026-09-14** `d56864df177c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/jentic/apis/jentic-control-plane-api/changes/credentials/:credential_id/agents/:agent_id/rule-set/put.md)

---

[API](https://skmtc.dev/jentic/apis/jentic-control-plane-api.md) · [All operations](https://skmtc.dev/jentic/apis/jentic-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/jentic/apis/jentic-control-plane-api/revisions/e4688b93dfc7?raw)
