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

# BudgetGuardrailPolicyDetail

## Example Usage

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

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

## Fields

| Field | Type | Required | Description | Example |
| - | - | - | - | - |
| `apiKeyHashes` | *string*\[] | ✔️ | API key hashes | \[ "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93" ] |
| `config` | [models.GuardrailBudgetPolicyConfig](../models/guardrailbudgetpolicyconfig.mdx) | ✔️ | N/A | \{ "include\_byok\_in\_budgets": false, "limit\_usd": 200, "reset\_interval": "monthly" } |
| `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.BudgetGuardrailPolicyDetailPolicyType](../models/budgetguardrailpolicydetailpolicytype.mdx) | ✔️ | N/A | |
| `reference` | [models.BudgetGuardrailPolicyDetailReference](../models/budgetguardrailpolicydetailreference.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 | |
