Creates a gateway policy for the calling organization.
policy_type is one of spend_cap, default_spend_cap, or
guard. The shape of config depends on policy_type:
spend_cap / default_spend_cap:
{"window": "hourly"|"daily"|"weekly"|"monthly", "limit_usd": <number>}guard:
{"version": 1, "detect": {"pii": <bool>, "secrets": <bool>}}subject_matchers is a list of {key, value} pairs.
key is one of organization_id, workspace_id, user_id,
api_key_id. Multiple matchers AND together. A
default_spend_cap uses {key, value: ""} so the runtime
materializes a per-subject child for every distinct subject
of that kind it sees in request metadata.
action is currently always block. Spend caps reject the
request with 402 when the limit is hit; guard policies redact
matched content in-place before forwarding upstream.
Upsert by matchers: if a policy with the same
subject_matchers already exists in this organization, the
existing policy is updated in place instead of a duplicate
being created. id is preserved. Returns 201 either way.
Documentation Index
Fetch the complete documentation index at: https://docs.langchain.com/llms.txt
Use this file to discover all available pages before exploring further.
Created
CurrentSpendUSD is the spend in the policy's current window. Set for any spend_cap policy regardless of enabled state — disabled policies still surface usage so users can see what would have been counted. Nil for non-spend_cap policies or when the spend lookup failed.
ParentPolicyID is set on materialized children of a default_spend_cap to the default's id, and cleared (NULL) only when an admin Create with the same matchers takes over the materialized row. Update on a child preserves the link; Delete on the parent cascade-soft-deletes every child rather than detaching them.