> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ModelAvailabilityGuardrailPolicyDetail

## Fields

| Field | Type | Required | Description | Example |
| - | - | - | - | - |
| `api_key_hashes` | List\[*str*] | ✔️ | API key hashes | \[ "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93" ] |
| `config` | [components.GuardrailModelAvailabilityPolicyConfig](../components/guardrailmodelavailabilitypolicyconfig.mdx) | ✔️ | N/A | \{ "allowed\_models": \[ "openai/gpt-4o", "anthropic/claude-sonnet-4" ], "allowed\_providers": \[ "openai", "anthropic" ], "enforce\_zdr\_anthropic": true, "enforce\_zdr\_openai": true } |
| `id` | *str* | ✔️ | Policy ID | 550e8400-e29b-41d4-a716-446655440000 |
| `is_workspace_default` | *Optional\[bool]* | ➖ | N/A | |
| `member_ids` | List\[*str*] | ✔️ | Organization member user IDs | \[ "user\_2abcDEFghiJKLmnoPQRstu" ] |
| `name` | *str* | ✔️ | Policy name | Engineering monthly budget |
| `opted_out_api_key_hashes` | List\[*str*] | ✔️ | API key hashes | \[ "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93" ] |
| `opted_out_member_ids` | List\[*str*] | ➖ | Organization member user IDs | \[ "user\_2abcDEFghiJKLmnoPQRstu" ] |
| `overridden_api_key_hashes` | List\[*str*] | ✔️ | API keys that have a different policy of this type assigned directly | \[ "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93" ] |
| `overridden_member_ids` | List\[*str*] | ➖ | Members that have a different policy of this type assigned directly | \[ "user\_2abcDEFghiJKLmnoPQRstu" ] |
| `policy_type` | [components.ModelAvailabilityGuardrailPolicyDetailPolicyType](../components/modelavailabilityguardrailpolicydetailpolicytype.mdx) | ✔️ | N/A | |
| `reference` | [OptionalNullable\[components.ModelAvailabilityGuardrailPolicyDetailReference\]](../components/modelavailabilityguardrailpolicydetailreference.mdx) | ➖ | `legacy_mapping` when the policy is synced from a v1 guardrail, `account_default` when it is an account-wide default, otherwise `null` | |
| `replaces_legacy_default` | *Optional\[bool]* | ➖ | Whether this workspace copy replaced a v1 workspace default guardrail that still exists; it cannot be deleted | |
| `updated_at` | *Nullable\[str]* | ✔️ | N/A | |
