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

## Example Usage

```typescript theme={null}
import { ModelAvailabilityGuardrailPolicyDetail } from "@openrouter/sdk/models";

let value: ModelAvailabilityGuardrailPolicyDetail = {
  apiKeyHashes: [
    "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93",
  ],
  config: {},
  id: "550e8400-e29b-41d4-a716-446655440000",
  memberIds: [
    "user_2abcDEFghiJKLmnoPQRstu",
  ],
  name: "Engineering monthly budget",
  optedOutApiKeyHashes: [
    "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93",
  ],
  overriddenApiKeyHashes: [
    "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93",
  ],
  policyType: "model_availability",
  updatedAt: "1735623145970",
};
```

## Fields

| Field | Type | Required | Description | Example |
| - | - | - | - | - |
| `apiKeyHashes` | *string*\[] | ✔️ | API key hashes | \[ "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93" ] |
| `config` | [models.GuardrailModelAvailabilityPolicyConfig](../models/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` | *string* | ✔️ | Policy ID | 550e8400-e29b-41d4-a716-446655440000 |
| `isWorkspaceDefault` | *boolean* | ➖ | N/A | |
| `memberIds` | *string*\[] | ✔️ | Organization member user IDs | \[ "user\_2abcDEFghiJKLmnoPQRstu" ] |
| `name` | *string* | ✔️ | Policy name | Engineering monthly budget |
| `optedOutApiKeyHashes` | *string*\[] | ✔️ | API key hashes | \[ "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93" ] |
| `optedOutMemberIds` | *string*\[] | ➖ | Organization member user IDs | \[ "user\_2abcDEFghiJKLmnoPQRstu" ] |
| `overriddenApiKeyHashes` | *string*\[] | ✔️ | API keys that have a different policy of this type assigned directly | \[ "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93" ] |
| `overriddenMemberIds` | *string*\[] | ➖ | Members that have a different policy of this type assigned directly | \[ "user\_2abcDEFghiJKLmnoPQRstu" ] |
| `policyType` | [models.ModelAvailabilityGuardrailPolicyDetailPolicyType](../models/modelavailabilityguardrailpolicydetailpolicytype.mdx) | ✔️ | N/A | |
| `reference` | [models.ModelAvailabilityGuardrailPolicyDetailReference](../models/modelavailabilityguardrailpolicydetailreference.mdx) | ➖ | `legacy_mapping` when the policy is synced from a v1 guardrail, `account_default` when it is an account-wide default, otherwise `null` | |
| `replacesLegacyDefault` | *boolean* | ➖ | Whether this workspace copy replaced a v1 workspace default guardrail that still exists; it cannot be deleted | |
| `updatedAt` | *string* | ✔️ | N/A | |
