Files
openrouter-python-sdk-retry…/docs/sdks/guardrails/README.md
T
OpenRouter Team 1cad51abb6 Commits included in this export:
- 6ddaaa6989d725bbe966e45f7aed0c1bd72f9153
  - 4779741b6ba710b1299612b82e8544516bd9dd6a
  - 22083fcc8f58884d8212d6f3314b231c4ddd21cd
  - a925a620f97196d509e073a163caac053bd82316
  - 5c05d8829784601ffd151acef1a6978c266f913d
  - 6f4fff535fbf4274255c255ae23620b8e00e614f
  - ef358e96cb01e469b77d44683603a602b0813116
  - e6299b4ebfe5c2eed6c598771f0fd99f84555401
  - 24d3f0ee1c2aa19a62f7902836034080b9246813
  - 68922847c2969b773887310eb7aa9a814e199c5a
  - 729ee2338c39df22461526153e7f4ba868fd498e
  - e1074ff86fccf5e48406b7595298873106d3cc5a
  - 123bbdaf841d299162a82ee2573adfbb70a45b8f
  - ac457b8a8dad98fdf5ddcae8dd4711361cea3084
  - ea825199f4c59dd68fec01cf8d18a582963c9f25
  - 4d48e4f6bb936e785787314a965298da6b78fea0
  - 718729a573ee98893a4408d5a52ab4686661fe54
  - b867adcde6b64f3f2a11c4626254b39098e4b0b4
  - 21912c097b4066d109766c6b4492826595cd57c5
  - bc1ed85adc976a4634ca8a41b82e4fc2c39a864f
  - d145c89c941937a312ed1357590d2bfda9a3603d
  - 12f05b5dee397ead47cfcd545a7a2e3c7ff57524
  - dd28f75a19a015809797c7abf3f8758f7c37262e
  - c96e569781e07ab44172d9c69940ec17bafd81f4
  - c9d5a90e3c2b5077a2bdd49773f1a46d1a5a79c7
  - 58b08f87116ceab9076de2fdc0a4c74c919b44c4

GitOrigin-RevId: 6ddaaa6989d725bbe966e45f7aed0c1bd72f9153
2026-02-05 23:15:21 +00:00

94 KiB
Raw Blame History

Guardrails

(guardrails)

Overview

Guardrails endpoints

Available Operations

list

List all guardrails for the authenticated user. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.list()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
offset Optional[str] Number of records to skip for pagination 0
limit Optional[str] Maximum number of records to return (max 100) 50
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.ListGuardrailsResponse

Errors

Error Type Status Code Content Type
errors.UnauthorizedResponseError 401 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

create

Create a new guardrail for the authenticated user. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.create(name="My New Guardrail")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
name str ✔️ Name for the new guardrail My New Guardrail
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
description OptionalNullable[str] Description of the guardrail A guardrail for limiting API usage
limit_usd OptionalNullable[float] Spending limit in USD 50
reset_interval OptionalNullable[operations.CreateGuardrailResetIntervalRequest] Interval at which the limit resets (daily, weekly, monthly) monthly
allowed_providers List[str] List of allowed provider IDs [
"openai",
"anthropic",
"deepseek"
]
allowed_models List[str] Array of model identifiers (slug or canonical_slug accepted) [
"openai/gpt-5.2",
"anthropic/claude-4.5-opus-20251124",
"deepseek/deepseek-r1-0528:free"
]
enforce_zdr OptionalNullable[bool] Whether to enforce zero data retention false
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.CreateGuardrailResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

get

Get a single guardrail by ID. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.get(id="550e8400-e29b-41d4-a716-446655440000")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail to retrieve 550e8400-e29b-41d4-a716-446655440000
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.GetGuardrailResponse

Errors

Error Type Status Code Content Type
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

update

Update an existing guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.update(id="550e8400-e29b-41d4-a716-446655440000")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail to update 550e8400-e29b-41d4-a716-446655440000
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
name Optional[str] New name for the guardrail Updated Guardrail Name
description OptionalNullable[str] New description for the guardrail Updated description
limit_usd OptionalNullable[float] New spending limit in USD 75
reset_interval OptionalNullable[operations.UpdateGuardrailResetIntervalRequest] Interval at which the limit resets (daily, weekly, monthly) monthly
allowed_providers List[str] New list of allowed provider IDs [
"openai",
"anthropic",
"deepseek"
]
allowed_models List[str] Array of model identifiers (slug or canonical_slug accepted) [
"openai/gpt-5.2"
]
enforce_zdr OptionalNullable[bool] Whether to enforce zero data retention true
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.UpdateGuardrailResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

delete

Delete an existing guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.delete(id="550e8400-e29b-41d4-a716-446655440000")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail to delete 550e8400-e29b-41d4-a716-446655440000
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.DeleteGuardrailResponse

Errors

Error Type Status Code Content Type
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

list_key_assignments

List all API key guardrail assignments for the authenticated user. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.list_key_assignments()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
offset Optional[str] Number of records to skip for pagination 0
limit Optional[str] Maximum number of records to return (max 100) 50
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.ListKeyAssignmentsResponse

Errors

Error Type Status Code Content Type
errors.UnauthorizedResponseError 401 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

list_member_assignments

List all organization member guardrail assignments for the authenticated user. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.list_member_assignments()

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
offset Optional[str] Number of records to skip for pagination 0
limit Optional[str] Maximum number of records to return (max 100) 50
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.ListMemberAssignmentsResponse

Errors

Error Type Status Code Content Type
errors.UnauthorizedResponseError 401 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

list_guardrail_key_assignments

List all API key assignments for a specific guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.list_guardrail_key_assignments(id="550e8400-e29b-41d4-a716-446655440000")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail 550e8400-e29b-41d4-a716-446655440000
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
offset Optional[str] Number of records to skip for pagination 0
limit Optional[str] Maximum number of records to return (max 100) 50
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.ListGuardrailKeyAssignmentsResponse

Errors

Error Type Status Code Content Type
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

bulk_assign_keys

Assign multiple API keys to a specific guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.bulk_assign_keys(id="550e8400-e29b-41d4-a716-446655440000", key_hashes=[
        "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93",
    ])

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail 550e8400-e29b-41d4-a716-446655440000
key_hashes List[str] ✔️ Array of API key hashes to assign to the guardrail [
"c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93"
]
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.BulkAssignKeysToGuardrailResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

list_guardrail_member_assignments

List all organization member assignments for a specific guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.list_guardrail_member_assignments(id="550e8400-e29b-41d4-a716-446655440000")

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail 550e8400-e29b-41d4-a716-446655440000
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
offset Optional[str] Number of records to skip for pagination 0
limit Optional[str] Maximum number of records to return (max 100) 50
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.ListGuardrailMemberAssignmentsResponse

Errors

Error Type Status Code Content Type
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

bulk_assign_members

Assign multiple organization members to a specific guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.bulk_assign_members(id="550e8400-e29b-41d4-a716-446655440000", member_user_ids=[
        "user_abc123",
        "user_def456",
    ])

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail 550e8400-e29b-41d4-a716-446655440000
member_user_ids List[str] ✔️ Array of member user IDs to assign to the guardrail [
"user_abc123",
"user_def456"
]
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.BulkAssignMembersToGuardrailResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

bulk_unassign_keys

Unassign multiple API keys from a specific guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.bulk_unassign_keys(id="550e8400-e29b-41d4-a716-446655440000", key_hashes=[
        "c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93",
    ])

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail 550e8400-e29b-41d4-a716-446655440000
key_hashes List[str] ✔️ Array of API key hashes to unassign from the guardrail [
"c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93"
]
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.BulkUnassignKeysFromGuardrailResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*

bulk_unassign_members

Unassign multiple organization members from a specific guardrail. Management key required.

Example Usage

from openrouter import OpenRouter
import os


with OpenRouter(
    http_referer="<value>",
    x_title="<value>",
    api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:

    res = open_router.guardrails.bulk_unassign_members(id="550e8400-e29b-41d4-a716-446655440000", member_user_ids=[
        "user_abc123",
        "user_def456",
    ])

    # Handle response
    print(res)

Parameters

Parameter Type Required Description Example
id str ✔️ The unique identifier of the guardrail 550e8400-e29b-41d4-a716-446655440000
member_user_ids List[str] ✔️ Array of member user IDs to unassign from the guardrail [
"user_abc123",
"user_def456"
]
http_referer Optional[str] The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
x_title Optional[str] The app display name allows you to customize how your app appears in OpenRouter's dashboard.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.BulkUnassignMembersFromGuardrailResponse

Errors

Error Type Status Code Content Type
errors.BadRequestResponseError 400 application/json
errors.UnauthorizedResponseError 401 application/json
errors.NotFoundResponseError 404 application/json
errors.InternalServerResponseError 500 application/json
errors.OpenRouterDefaultError 4XX, 5XX */*