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