Skip to content
Start here

Add an Access application

client.zeroTrust.access.applications.create(ApplicationCreateParamsparams, RequestOptionsoptions?): ApplicationCreateResponse
POST/{accounts_or_zones}/{account_or_zone_id}/access/apps

Adds a new application to Access.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Access: Apps and Policies Write
ParametersExpand Collapse
ApplicationCreateParams = SelfHostedApplication | SaaSApplication | BrowserSSHApplication | 10 more
ApplicationCreateParamsBase
SelfHostedApplication extends ApplicationCreateParamsBase
SaaSApplication extends ApplicationCreateParamsBase
BrowserSSHApplication extends ApplicationCreateParamsBase
BrowserVNCApplication extends ApplicationCreateParamsBase
AppLauncherApplication extends ApplicationCreateParamsBase
DeviceEnrollmentPermissionsApplication extends ApplicationCreateParamsBase
BrowserIsolationPermissionsApplication extends ApplicationCreateParamsBase
GatewayIdentityProxyEndpointApplication extends ApplicationCreateParamsBase
BookmarkApplication extends ApplicationCreateParamsBase
InfrastructureApplication extends ApplicationCreateParamsBase
BrowserRDPApplication extends ApplicationCreateParamsBase
McpServerApplication extends ApplicationCreateParamsBase
McpServerPortalApplication extends ApplicationCreateParamsBase
ReturnsExpand Collapse
ApplicationCreateResponse = SelfHostedApplication { domain, type, id, 30 more } | SaaSApplication { id, allowed_idps, app_launcher_visible, 10 more } | BrowserSSHApplication { domain, type, id, 30 more } | 10 more
One of the following:
SelfHostedApplication { domain, type, id, 30 more }
domain: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allow_authenticate_via_warp?: boolean

When set to true, users can authenticate to this application using their WARP session. When set to false this application will always require direct IdP authentication. This setting always overrides the organization setting for WARP authentication.

allow_iframe?: boolean

Enables loading application content in an iFrame.

allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

app_launcher_visible?: boolean

Displays the application in the App Launcher.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

cors_headers?: CORSHeaders { allow_all_headers, allow_all_methods, allow_all_origins, 5 more }
allow_all_headers?: boolean

Allows all HTTP request headers.

allow_all_methods?: boolean

Allows all HTTP request methods.

allow_all_origins?: boolean

Allows all origins.

allow_credentials?: boolean

When set to true, includes credentials (cookies, authorization headers, or TLS client certificates) with requests.

allowed_headers?: Array<AllowedHeaders>

Allowed HTTP request headers.

allowed_methods?: Array<AllowedMethods>

Allowed HTTP request methods.

One of the following:
"GET"
"POST"
"HEAD"
"PUT"
"DELETE"
"CONNECT"
"OPTIONS"
"TRACE"
"PATCH"
allowed_origins?: Array<AllowedOrigins>

Allowed origins.

max_age?: number

The maximum number of seconds the results of a preflight request can be cached.

maximum86400
minimum-1
custom_deny_message?: string

The custom error message shown to a user when they are denied access to the application.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

destinations?: Array<PublicDestination { type, uri } | PrivateDestination { cidr, hostname, l4_protocol, 3 more } | ViaMcpServerPortalDestination { mcp_server_id, type } >

List of destinations secured by Access. This supersedes self_hosted_domains to allow for more flexibility in defining different types of domains. If destinations are provided, then self_hosted_domains will be ignored.

One of the following:
PublicDestination { type, uri }

A public hostname that Access will secure. Public destinations support sub-domain and path. Wildcard ’*’ can be used in the definition.

type?: "public"
uri?: string

The URI of the destination. Public destinations’ URIs can include a domain and path with wildcards.

PrivateDestination { cidr, hostname, l4_protocol, 3 more }
cidr?: string

The CIDR range of the destination. Single IPs will be computed as /32.

hostname?: string

The hostname of the destination. Matches a valid SNI served by an HTTPS origin.

l4_protocol?: "tcp" | "udp"

The L4 protocol of the destination. When omitted, both UDP and TCP traffic will match.

One of the following:
"tcp"
"udp"
port_range?: string

The port range of the destination. Can be a single port or a range of ports. When omitted, all ports will match.

type?: "private"
vnet_id?: string

The VNET ID to match the destination. When omitted, all VNETs will match.

ViaMcpServerPortalDestination { mcp_server_id, type }

A MCP server id configured in ai-controls. Access will secure the MCP server if accessed through a MCP portal.

mcp_server_id?: string

The MCP server id configured in ai-controls.

type?: "via_mcp_server_portal"
logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the application.

oauth_configuration?: OAuthConfiguration { dynamic_client_registration, enabled, grant }

Beta: Optional configuration for managing an OAuth authorization flow controlled by Access. When set, Access will act as the OAuth authorization server for this application. Only compatible with OAuth clients that support RFC 8707 (Resource Indicators for OAuth 2.0). This feature is currently in beta.

dynamic_client_registration?: DynamicClientRegistration { allow_any_on_localhost, allow_any_on_loopback, allowed_uris, enabled }

Settings for OAuth dynamic client registration.

allow_any_on_localhost?: boolean

Allows any client with redirect URIs on localhost.

allow_any_on_loopback?: boolean

Allows any client with redirect URIs on 127.0.0.1.

allowed_uris?: Array<string>

The URIs that are allowed as redirect URIs for dynamically registered clients. Must use the https protocol. Paths may end in /* to match all sub-paths.

enabled?: boolean

Whether dynamic client registration is enabled.

enabled?: boolean

Whether the OAuth configuration is enabled for this application. When set to false, Access will not handle OAuth for this application. Defaults to true if omitted.

grant?: Grant { access_token_lifetime, session_duration }

Settings for OAuth grant behavior.

access_token_lifetime?: string

The lifetime of the access token. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

session_duration?: string

The duration of the OAuth session. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

options_preflight_bypass?: boolean

Allows options preflight requests to bypass Access authentication and go directly to the origin. Cannot turn on if cors_headers is set.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
read_service_tokens_from_header?: string

Allows matching Access Service Tokens passed HTTP in a single header with this name. This works as an alternative to the (CF-Access-Client-Id, CF-Access-Client-Secret) pair of headers. The header value will be interpreted as a json object similar to: { “cf-access-client-id”: “88bf3b6d86161464f6509f7219099e57.access.example.com”, “cf-access-client-secret”: “bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5” }

scim_config?: SCIMConfig { idp_uid, remote_uri, authentication, 3 more }

Configuration for provisioning to this application via SCIM. This is currently in closed beta.

idp_uid: string

The UID of the IdP to use as the source for SCIM resources to provision to this application.

remote_uri: string

The base URI for the application’s SCIM-compatible API.

authentication?: SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | 2 more

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

Array<SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme } >
One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

deactivate_on_delete?: boolean

If false, propagates DELETE requests to the target application for SCIM resources. If true, sets ‘active’ to false on the SCIM resource. Note: Some targets do not support DELETE operations.

enabled?: boolean

Whether SCIM provisioning is turned on for this application.

mappings?: Array<SCIMConfigMapping { schema, enabled, filter, 3 more } >

A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.

schema: string

Which SCIM resource type this mapping applies to.

enabled?: boolean

Whether or not this mapping is enabled.

filter?: string

A SCIM filter expression that matches resources that should be provisioned to this application.

operations?: Operations { create, delete, update }

Whether or not this mapping applies to creates, updates, or deletes.

create?: boolean

Whether or not this mapping applies to create (POST) operations.

delete?: boolean

Whether or not this mapping applies to DELETE operations.

update?: boolean

Whether or not this mapping applies to update (PATCH/PUT) operations.

strictness?: "strict" | "passthrough"

The level of adherence to outbound resource schemas when provisioning to this mapping. ‘Strict’ removes unknown values, while ‘passthrough’ passes unknown values to the target.

One of the following:
"strict"
"passthrough"
transform_jsonata?: string

A JSONata expression that transforms the resource before provisioning it in the application.

Deprecatedself_hosted_domains?: Array<SelfHostedDomains>

List of public domains that Access will secure. This field is deprecated in favor of destinations and will be supported until November 21, 2025. If destinations are provided, then self_hosted_domains will be ignored.

service_auth_401_redirect?: boolean

Returns a 401 status code when the request is blocked by a Service Auth policy.

session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

skip_interstitial?: boolean

Enables automatic authentication through cloudflared.

tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

use_clientless_isolation_app_launcher_url?: boolean

Determines if users can access this application via a clientless browser isolation URL. This allows users to access private domains without connecting to Gateway. The option requires Clientless Browser Isolation to be set up with policies that allow users of this application.

SaaSApplication { id, allowed_idps, app_launcher_visible, 10 more }
id?: string

UUID.

maxLength36
allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

app_launcher_visible?: boolean

Displays the application in the App Launcher.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

name?: string

The name of the application.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
saas_app?: SAMLSaaSApp { auth_type, consumer_service_url, custom_attributes, 8 more } | OIDCSaaSApp { access_token_lifetime, allow_pkce_without_client_secret, app_launcher_url, 11 more }
One of the following:
SAMLSaaSApp { auth_type, consumer_service_url, custom_attributes, 8 more }
auth_type?: "saml" | "oidc"

Optional identifier indicating the authentication protocol used for the saas app. Required for OIDC. Default if unset is “saml”

One of the following:
"saml"
"oidc"
consumer_service_url?: string

The service provider’s endpoint that is responsible for receiving and parsing a SAML assertion.

custom_attributes?: Array<CustomAttribute>
friendly_name?: string

The SAML FriendlyName of the attribute.

name?: string

The name of the attribute.

name_format?: "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" | "urn:oasis:names:tc:SAML:2.0:attrname-format:basic" | "urn:oasis:names:tc:SAML:2.0:attrname-format:uri"

A globally unique name for an identity or service provider.

One of the following:
"urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
"urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
"urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
required?: boolean

If the attribute is required when building a SAML assertion.

source?: Source { name, name_by_idp }
name?: string

The name of the IdP attribute.

name_by_idp?: Array<NameByIdP>

A mapping from IdP ID to attribute name.

idp_id?: string

The UID of the IdP.

source_name?: string

The name of the IdP provided attribute.

default_relay_state?: string

The URL that the user will be redirected to after a successful login for IDP initiated logins.

idp_entity_id?: string

The unique identifier for your SaaS application.

name_id_format?: SaaSAppNameIDFormat

The format of the name identifier sent to the SaaS application.

One of the following:
"id"
"email"
name_id_transform_jsonata?: string

A JSONata expression that transforms an application’s user identities into a NameID value for its SAML assertion. This expression should evaluate to a singular string. The output of this expression can override the name_id_format setting.

public_key?: string

The Access public certificate that will be used to verify your identity.

saml_attribute_transform_jsonata?: string

A [JSONata] (https://jsonata.org/) expression that transforms an application’s user identities into attribute assertions in the SAML response. The expression can transform id, email, name, and groups values. It can also transform fields listed in the saml_attributes or oidc_fields of the identity provider used to authenticate. The output of this expression must be a JSON object.

sp_entity_id?: string

A globally unique name for an identity or service provider.

sso_endpoint?: string

The endpoint where your SaaS application will send login requests.

OIDCSaaSApp { access_token_lifetime, allow_pkce_without_client_secret, app_launcher_url, 11 more }
access_token_lifetime?: string

The lifetime of the OIDC Access Token after creation. Valid units are m,h. Must be greater than or equal to 1m and less than or equal to 24h.

allow_pkce_without_client_secret?: boolean

If client secret should be required on the token endpoint when authorization_code_with_pkce grant is used.

app_launcher_url?: string

The URL where this applications tile redirects users

auth_type?: "saml" | "oidc"

Identifier of the authentication protocol used for the saas app. Required for OIDC.

One of the following:
"saml"
"oidc"
client_id?: string

The application client id

client_secret?: string

The application client secret, only returned on POST request.

custom_claims?: Array<CustomClaim>
name?: string

The name of the claim.

required?: boolean

If the claim is required when building an OIDC token.

scope?: "groups" | "profile" | "email" | "openid"

The scope of the claim.

One of the following:
"groups"
"profile"
"email"
"openid"
source?: Source { name, name_by_idp }
name?: string

The name of the IdP claim.

name_by_idp?: Record<string, string>

A mapping from IdP ID to claim name.

grant_types?: Array<"authorization_code" | "authorization_code_with_pkce" | "refresh_tokens" | 2 more>

The OIDC flows supported by this application

One of the following:
"authorization_code"
"authorization_code_with_pkce"
"refresh_tokens"
"hybrid"
"implicit"
group_filter_regex?: string

A regex to filter Cloudflare groups returned in ID token and userinfo endpoint

hybrid_and_implicit_options?: HybridAndImplicitOptions { return_access_token_from_authorization_endpoint, return_id_token_from_authorization_endpoint }
return_access_token_from_authorization_endpoint?: boolean

If an Access Token should be returned from the OIDC Authorization endpoint

return_id_token_from_authorization_endpoint?: boolean

If an ID Token should be returned from the OIDC Authorization endpoint

public_key?: string

The Access public certificate that will be used to verify your identity.

redirect_uris?: Array<string>

The permitted URL’s for Cloudflare to return Authorization codes and Access/ID tokens

refresh_token_options?: RefreshTokenOptions { lifetime }
lifetime?: string

How long a refresh token will be valid for after creation. Valid units are m,h,d. Must be longer than 1m.

scopes?: Array<"openid" | "groups" | "email" | "profile">

Define the user information shared with access, “offline_access” scope will be automatically enabled if refresh tokens are enabled

One of the following:
"openid"
"groups"
"email"
"profile"
scim_config?: SCIMConfig { idp_uid, remote_uri, authentication, 3 more }

Configuration for provisioning to this application via SCIM. This is currently in closed beta.

idp_uid: string

The UID of the IdP to use as the source for SCIM resources to provision to this application.

remote_uri: string

The base URI for the application’s SCIM-compatible API.

authentication?: SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | 2 more

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

Array<SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme } >
One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

deactivate_on_delete?: boolean

If false, propagates DELETE requests to the target application for SCIM resources. If true, sets ‘active’ to false on the SCIM resource. Note: Some targets do not support DELETE operations.

enabled?: boolean

Whether SCIM provisioning is turned on for this application.

mappings?: Array<SCIMConfigMapping { schema, enabled, filter, 3 more } >

A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.

schema: string

Which SCIM resource type this mapping applies to.

enabled?: boolean

Whether or not this mapping is enabled.

filter?: string

A SCIM filter expression that matches resources that should be provisioned to this application.

operations?: Operations { create, delete, update }

Whether or not this mapping applies to creates, updates, or deletes.

create?: boolean

Whether or not this mapping applies to create (POST) operations.

delete?: boolean

Whether or not this mapping applies to DELETE operations.

update?: boolean

Whether or not this mapping applies to update (PATCH/PUT) operations.

strictness?: "strict" | "passthrough"

The level of adherence to outbound resource schemas when provisioning to this mapping. ‘Strict’ removes unknown values, while ‘passthrough’ passes unknown values to the target.

One of the following:
"strict"
"passthrough"
transform_jsonata?: string

A JSONata expression that transforms the resource before provisioning it in the application.

tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
BrowserSSHApplication { domain, type, id, 30 more }
domain: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

type: "self_hosted" | "saas" | "ssh" | 11 more

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allow_authenticate_via_warp?: boolean

When set to true, users can authenticate to this application using their WARP session. When set to false this application will always require direct IdP authentication. This setting always overrides the organization setting for WARP authentication.

allow_iframe?: boolean

Enables loading application content in an iFrame.

allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

app_launcher_visible?: boolean

Displays the application in the App Launcher.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

cors_headers?: CORSHeaders { allow_all_headers, allow_all_methods, allow_all_origins, 5 more }
allow_all_headers?: boolean

Allows all HTTP request headers.

allow_all_methods?: boolean

Allows all HTTP request methods.

allow_all_origins?: boolean

Allows all origins.

allow_credentials?: boolean

When set to true, includes credentials (cookies, authorization headers, or TLS client certificates) with requests.

allowed_headers?: Array<AllowedHeaders>

Allowed HTTP request headers.

allowed_methods?: Array<AllowedMethods>

Allowed HTTP request methods.

One of the following:
"GET"
"POST"
"HEAD"
"PUT"
"DELETE"
"CONNECT"
"OPTIONS"
"TRACE"
"PATCH"
allowed_origins?: Array<AllowedOrigins>

Allowed origins.

max_age?: number

The maximum number of seconds the results of a preflight request can be cached.

maximum86400
minimum-1
custom_deny_message?: string

The custom error message shown to a user when they are denied access to the application.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

destinations?: Array<PublicDestination { type, uri } | PrivateDestination { cidr, hostname, l4_protocol, 3 more } | ViaMcpServerPortalDestination { mcp_server_id, type } >

List of destinations secured by Access. This supersedes self_hosted_domains to allow for more flexibility in defining different types of domains. If destinations are provided, then self_hosted_domains will be ignored.

One of the following:
PublicDestination { type, uri }

A public hostname that Access will secure. Public destinations support sub-domain and path. Wildcard ’*’ can be used in the definition.

type?: "public"
uri?: string

The URI of the destination. Public destinations’ URIs can include a domain and path with wildcards.

PrivateDestination { cidr, hostname, l4_protocol, 3 more }
cidr?: string

The CIDR range of the destination. Single IPs will be computed as /32.

hostname?: string

The hostname of the destination. Matches a valid SNI served by an HTTPS origin.

l4_protocol?: "tcp" | "udp"

The L4 protocol of the destination. When omitted, both UDP and TCP traffic will match.

One of the following:
"tcp"
"udp"
port_range?: string

The port range of the destination. Can be a single port or a range of ports. When omitted, all ports will match.

type?: "private"
vnet_id?: string

The VNET ID to match the destination. When omitted, all VNETs will match.

ViaMcpServerPortalDestination { mcp_server_id, type }

A MCP server id configured in ai-controls. Access will secure the MCP server if accessed through a MCP portal.

mcp_server_id?: string

The MCP server id configured in ai-controls.

type?: "via_mcp_server_portal"
logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the application.

oauth_configuration?: OAuthConfiguration { dynamic_client_registration, enabled, grant }

Beta: Optional configuration for managing an OAuth authorization flow controlled by Access. When set, Access will act as the OAuth authorization server for this application. Only compatible with OAuth clients that support RFC 8707 (Resource Indicators for OAuth 2.0). This feature is currently in beta.

dynamic_client_registration?: DynamicClientRegistration { allow_any_on_localhost, allow_any_on_loopback, allowed_uris, enabled }

Settings for OAuth dynamic client registration.

allow_any_on_localhost?: boolean

Allows any client with redirect URIs on localhost.

allow_any_on_loopback?: boolean

Allows any client with redirect URIs on 127.0.0.1.

allowed_uris?: Array<string>

The URIs that are allowed as redirect URIs for dynamically registered clients. Must use the https protocol. Paths may end in /* to match all sub-paths.

enabled?: boolean

Whether dynamic client registration is enabled.

enabled?: boolean

Whether the OAuth configuration is enabled for this application. When set to false, Access will not handle OAuth for this application. Defaults to true if omitted.

grant?: Grant { access_token_lifetime, session_duration }

Settings for OAuth grant behavior.

access_token_lifetime?: string

The lifetime of the access token. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

session_duration?: string

The duration of the OAuth session. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

options_preflight_bypass?: boolean

Allows options preflight requests to bypass Access authentication and go directly to the origin. Cannot turn on if cors_headers is set.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
read_service_tokens_from_header?: string

Allows matching Access Service Tokens passed HTTP in a single header with this name. This works as an alternative to the (CF-Access-Client-Id, CF-Access-Client-Secret) pair of headers. The header value will be interpreted as a json object similar to: { “cf-access-client-id”: “88bf3b6d86161464f6509f7219099e57.access.example.com”, “cf-access-client-secret”: “bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5” }

scim_config?: SCIMConfig { idp_uid, remote_uri, authentication, 3 more }

Configuration for provisioning to this application via SCIM. This is currently in closed beta.

idp_uid: string

The UID of the IdP to use as the source for SCIM resources to provision to this application.

remote_uri: string

The base URI for the application’s SCIM-compatible API.

authentication?: SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | 2 more

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

Array<SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme } >
One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

deactivate_on_delete?: boolean

If false, propagates DELETE requests to the target application for SCIM resources. If true, sets ‘active’ to false on the SCIM resource. Note: Some targets do not support DELETE operations.

enabled?: boolean

Whether SCIM provisioning is turned on for this application.

mappings?: Array<SCIMConfigMapping { schema, enabled, filter, 3 more } >

A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.

schema: string

Which SCIM resource type this mapping applies to.

enabled?: boolean

Whether or not this mapping is enabled.

filter?: string

A SCIM filter expression that matches resources that should be provisioned to this application.

operations?: Operations { create, delete, update }

Whether or not this mapping applies to creates, updates, or deletes.

create?: boolean

Whether or not this mapping applies to create (POST) operations.

delete?: boolean

Whether or not this mapping applies to DELETE operations.

update?: boolean

Whether or not this mapping applies to update (PATCH/PUT) operations.

strictness?: "strict" | "passthrough"

The level of adherence to outbound resource schemas when provisioning to this mapping. ‘Strict’ removes unknown values, while ‘passthrough’ passes unknown values to the target.

One of the following:
"strict"
"passthrough"
transform_jsonata?: string

A JSONata expression that transforms the resource before provisioning it in the application.

Deprecatedself_hosted_domains?: Array<SelfHostedDomains>

List of public domains that Access will secure. This field is deprecated in favor of destinations and will be supported until November 21, 2025. If destinations are provided, then self_hosted_domains will be ignored.

service_auth_401_redirect?: boolean

Returns a 401 status code when the request is blocked by a Service Auth policy.

session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

skip_interstitial?: boolean

Enables automatic authentication through cloudflared.

tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

use_clientless_isolation_app_launcher_url?: boolean

Determines if users can access this application via a clientless browser isolation URL. This allows users to access private domains without connecting to Gateway. The option requires Clientless Browser Isolation to be set up with policies that allow users of this application.

BrowserVNCApplication { domain, type, id, 30 more }
domain: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

type: "self_hosted" | "saas" | "ssh" | 11 more

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allow_authenticate_via_warp?: boolean

When set to true, users can authenticate to this application using their WARP session. When set to false this application will always require direct IdP authentication. This setting always overrides the organization setting for WARP authentication.

allow_iframe?: boolean

Enables loading application content in an iFrame.

allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

app_launcher_visible?: boolean

Displays the application in the App Launcher.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

cors_headers?: CORSHeaders { allow_all_headers, allow_all_methods, allow_all_origins, 5 more }
allow_all_headers?: boolean

Allows all HTTP request headers.

allow_all_methods?: boolean

Allows all HTTP request methods.

allow_all_origins?: boolean

Allows all origins.

allow_credentials?: boolean

When set to true, includes credentials (cookies, authorization headers, or TLS client certificates) with requests.

allowed_headers?: Array<AllowedHeaders>

Allowed HTTP request headers.

allowed_methods?: Array<AllowedMethods>

Allowed HTTP request methods.

One of the following:
"GET"
"POST"
"HEAD"
"PUT"
"DELETE"
"CONNECT"
"OPTIONS"
"TRACE"
"PATCH"
allowed_origins?: Array<AllowedOrigins>

Allowed origins.

max_age?: number

The maximum number of seconds the results of a preflight request can be cached.

maximum86400
minimum-1
custom_deny_message?: string

The custom error message shown to a user when they are denied access to the application.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

destinations?: Array<PublicDestination { type, uri } | PrivateDestination { cidr, hostname, l4_protocol, 3 more } | ViaMcpServerPortalDestination { mcp_server_id, type } >

List of destinations secured by Access. This supersedes self_hosted_domains to allow for more flexibility in defining different types of domains. If destinations are provided, then self_hosted_domains will be ignored.

One of the following:
PublicDestination { type, uri }

A public hostname that Access will secure. Public destinations support sub-domain and path. Wildcard ’*’ can be used in the definition.

type?: "public"
uri?: string

The URI of the destination. Public destinations’ URIs can include a domain and path with wildcards.

PrivateDestination { cidr, hostname, l4_protocol, 3 more }
cidr?: string

The CIDR range of the destination. Single IPs will be computed as /32.

hostname?: string

The hostname of the destination. Matches a valid SNI served by an HTTPS origin.

l4_protocol?: "tcp" | "udp"

The L4 protocol of the destination. When omitted, both UDP and TCP traffic will match.

One of the following:
"tcp"
"udp"
port_range?: string

The port range of the destination. Can be a single port or a range of ports. When omitted, all ports will match.

type?: "private"
vnet_id?: string

The VNET ID to match the destination. When omitted, all VNETs will match.

ViaMcpServerPortalDestination { mcp_server_id, type }

A MCP server id configured in ai-controls. Access will secure the MCP server if accessed through a MCP portal.

mcp_server_id?: string

The MCP server id configured in ai-controls.

type?: "via_mcp_server_portal"
logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the application.

oauth_configuration?: OAuthConfiguration { dynamic_client_registration, enabled, grant }

Beta: Optional configuration for managing an OAuth authorization flow controlled by Access. When set, Access will act as the OAuth authorization server for this application. Only compatible with OAuth clients that support RFC 8707 (Resource Indicators for OAuth 2.0). This feature is currently in beta.

dynamic_client_registration?: DynamicClientRegistration { allow_any_on_localhost, allow_any_on_loopback, allowed_uris, enabled }

Settings for OAuth dynamic client registration.

allow_any_on_localhost?: boolean

Allows any client with redirect URIs on localhost.

allow_any_on_loopback?: boolean

Allows any client with redirect URIs on 127.0.0.1.

allowed_uris?: Array<string>

The URIs that are allowed as redirect URIs for dynamically registered clients. Must use the https protocol. Paths may end in /* to match all sub-paths.

enabled?: boolean

Whether dynamic client registration is enabled.

enabled?: boolean

Whether the OAuth configuration is enabled for this application. When set to false, Access will not handle OAuth for this application. Defaults to true if omitted.

grant?: Grant { access_token_lifetime, session_duration }

Settings for OAuth grant behavior.

access_token_lifetime?: string

The lifetime of the access token. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

session_duration?: string

The duration of the OAuth session. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

options_preflight_bypass?: boolean

Allows options preflight requests to bypass Access authentication and go directly to the origin. Cannot turn on if cors_headers is set.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
read_service_tokens_from_header?: string

Allows matching Access Service Tokens passed HTTP in a single header with this name. This works as an alternative to the (CF-Access-Client-Id, CF-Access-Client-Secret) pair of headers. The header value will be interpreted as a json object similar to: { “cf-access-client-id”: “88bf3b6d86161464f6509f7219099e57.access.example.com”, “cf-access-client-secret”: “bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5” }

scim_config?: SCIMConfig { idp_uid, remote_uri, authentication, 3 more }

Configuration for provisioning to this application via SCIM. This is currently in closed beta.

idp_uid: string

The UID of the IdP to use as the source for SCIM resources to provision to this application.

remote_uri: string

The base URI for the application’s SCIM-compatible API.

authentication?: SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | 2 more

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

Array<SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme } >
One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

deactivate_on_delete?: boolean

If false, propagates DELETE requests to the target application for SCIM resources. If true, sets ‘active’ to false on the SCIM resource. Note: Some targets do not support DELETE operations.

enabled?: boolean

Whether SCIM provisioning is turned on for this application.

mappings?: Array<SCIMConfigMapping { schema, enabled, filter, 3 more } >

A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.

schema: string

Which SCIM resource type this mapping applies to.

enabled?: boolean

Whether or not this mapping is enabled.

filter?: string

A SCIM filter expression that matches resources that should be provisioned to this application.

operations?: Operations { create, delete, update }

Whether or not this mapping applies to creates, updates, or deletes.

create?: boolean

Whether or not this mapping applies to create (POST) operations.

delete?: boolean

Whether or not this mapping applies to DELETE operations.

update?: boolean

Whether or not this mapping applies to update (PATCH/PUT) operations.

strictness?: "strict" | "passthrough"

The level of adherence to outbound resource schemas when provisioning to this mapping. ‘Strict’ removes unknown values, while ‘passthrough’ passes unknown values to the target.

One of the following:
"strict"
"passthrough"
transform_jsonata?: string

A JSONata expression that transforms the resource before provisioning it in the application.

Deprecatedself_hosted_domains?: Array<SelfHostedDomains>

List of public domains that Access will secure. This field is deprecated in favor of destinations and will be supported until November 21, 2025. If destinations are provided, then self_hosted_domains will be ignored.

service_auth_401_redirect?: boolean

Returns a 401 status code when the request is blocked by a Service Auth policy.

session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

skip_interstitial?: boolean

Enables automatic authentication through cloudflared.

tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

use_clientless_isolation_app_launcher_url?: boolean

Determines if users can access this application via a clientless browser isolation URL. This allows users to access private domains without connecting to Gateway. The option requires Clientless Browser Isolation to be set up with policies that allow users of this application.

AppLauncherApplication { type, id, allowed_idps, 15 more }
type: "self_hosted" | "saas" | "ssh" | 11 more

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

app_launcher_logo_url?: string

The image URL of the logo shown in the App Launcher header.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

bg_color?: string

The background color of the App Launcher page.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

domain?: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

header_bg_color?: string

The background color of the App Launcher header.

landing_page_design?: LandingPageDesign { button_color, button_text_color, image_url, 2 more }

The design of the App Launcher landing page shown to users when they log in.

button_color?: string

The background color of the log in button on the landing page.

button_text_color?: string

The color of the text in the log in button on the landing page.

image_url?: string

The URL of the image shown on the landing page.

message?: string

The message shown on the landing page.

title?: string

The title shown on the landing page.

name?: string

The name of the application.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

skip_app_launcher_login_page?: boolean

Determines when to skip the App Launcher landing page.

DeviceEnrollmentPermissionsApplication { type, id, allowed_idps, 9 more }

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

domain?: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

name?: string

The name of the application.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

BrowserIsolationPermissionsApplication { type, id, allowed_idps, 9 more }

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

domain?: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

name?: string

The name of the application.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

GatewayIdentityProxyEndpointApplication { type, id, allowed_idps, 9 more }

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

domain?: string

The proxy endpoint domain in the format: 10 alphanumeric characters followed by .proxy.cloudflare-gateway.com

name?: string

The name of the application.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

BookmarkApplication { id, app_launcher_visible, aud, 6 more }
id?: string

UUID.

maxLength36
app_launcher_visible?: boolean

Displays the application in the App Launcher.

aud?: string

Audience tag.

maxLength64
domain?: string

The URL or domain of the bookmark.

logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

name?: string

The name of the application.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
InfrastructureApplication { target_criteria, type, id, 3 more }
target_criteria: Array<TargetCriterion>
port: number

The port that the targets use for the chosen communication protocol. A port cannot be assigned to multiple protocols.

protocol: "SSH"

The communication protocol your application secures.

target_attributes: Record<string, Array<string>>

Contains a map of target attribute keys to target attribute values.

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
aud?: string

Audience tag.

maxLength64
name?: string

The name of the application.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
connection_rules?: ConnectionRules { ssh }

The rules that define how users may connect to the targets secured by your application.

ssh?: SSH { usernames, allow_email_alias }

The SSH-specific rules that define how users may connect to the targets secured by your application.

usernames: Array<string>

Contains the Unix usernames that may be used when connecting over SSH.

allow_email_alias?: boolean

Enables using Identity Provider email alias as SSH username.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings for infrastructure applications.

allowed_authenticators?: Array<"ssh_piv_key">

Lists the MFA methods that users can authenticate with. For infrastructure applications, only ssh_piv_key is supported.

mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples: 5m or 24h.

name?: string

The name of the Access policy.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
updated_at?: string
formatdate-time
BrowserRDPApplication { domain, target_criteria, type, 31 more }
domain: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

target_criteria: Array<TargetCriterion>
port: number

The port that the targets use for the chosen communication protocol. A port cannot be assigned to multiple protocols.

protocol: "RDP"

The communication protocol your application secures.

target_attributes: Record<string, Array<string>>

Contains a map of target attribute keys to target attribute values.

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allow_authenticate_via_warp?: boolean

When set to true, users can authenticate to this application using their WARP session. When set to false this application will always require direct IdP authentication. This setting always overrides the organization setting for WARP authentication.

allow_iframe?: boolean

Enables loading application content in an iFrame.

allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

app_launcher_visible?: boolean

Displays the application in the App Launcher.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

cors_headers?: CORSHeaders { allow_all_headers, allow_all_methods, allow_all_origins, 5 more }
allow_all_headers?: boolean

Allows all HTTP request headers.

allow_all_methods?: boolean

Allows all HTTP request methods.

allow_all_origins?: boolean

Allows all origins.

allow_credentials?: boolean

When set to true, includes credentials (cookies, authorization headers, or TLS client certificates) with requests.

allowed_headers?: Array<AllowedHeaders>

Allowed HTTP request headers.

allowed_methods?: Array<AllowedMethods>

Allowed HTTP request methods.

One of the following:
"GET"
"POST"
"HEAD"
"PUT"
"DELETE"
"CONNECT"
"OPTIONS"
"TRACE"
"PATCH"
allowed_origins?: Array<AllowedOrigins>

Allowed origins.

max_age?: number

The maximum number of seconds the results of a preflight request can be cached.

maximum86400
minimum-1
custom_deny_message?: string

The custom error message shown to a user when they are denied access to the application.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

destinations?: Array<PublicDestination { type, uri } | PrivateDestination { cidr, hostname, l4_protocol, 3 more } | ViaMcpServerPortalDestination { mcp_server_id, type } >

List of destinations secured by Access. This supersedes self_hosted_domains to allow for more flexibility in defining different types of domains. If destinations are provided, then self_hosted_domains will be ignored.

One of the following:
PublicDestination { type, uri }

A public hostname that Access will secure. Public destinations support sub-domain and path. Wildcard ’*’ can be used in the definition.

type?: "public"
uri?: string

The URI of the destination. Public destinations’ URIs can include a domain and path with wildcards.

PrivateDestination { cidr, hostname, l4_protocol, 3 more }
cidr?: string

The CIDR range of the destination. Single IPs will be computed as /32.

hostname?: string

The hostname of the destination. Matches a valid SNI served by an HTTPS origin.

l4_protocol?: "tcp" | "udp"

The L4 protocol of the destination. When omitted, both UDP and TCP traffic will match.

One of the following:
"tcp"
"udp"
port_range?: string

The port range of the destination. Can be a single port or a range of ports. When omitted, all ports will match.

type?: "private"
vnet_id?: string

The VNET ID to match the destination. When omitted, all VNETs will match.

ViaMcpServerPortalDestination { mcp_server_id, type }

A MCP server id configured in ai-controls. Access will secure the MCP server if accessed through a MCP portal.

mcp_server_id?: string

The MCP server id configured in ai-controls.

type?: "via_mcp_server_portal"
logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the application.

oauth_configuration?: OAuthConfiguration { dynamic_client_registration, enabled, grant }

Beta: Optional configuration for managing an OAuth authorization flow controlled by Access. When set, Access will act as the OAuth authorization server for this application. Only compatible with OAuth clients that support RFC 8707 (Resource Indicators for OAuth 2.0). This feature is currently in beta.

dynamic_client_registration?: DynamicClientRegistration { allow_any_on_localhost, allow_any_on_loopback, allowed_uris, enabled }

Settings for OAuth dynamic client registration.

allow_any_on_localhost?: boolean

Allows any client with redirect URIs on localhost.

allow_any_on_loopback?: boolean

Allows any client with redirect URIs on 127.0.0.1.

allowed_uris?: Array<string>

The URIs that are allowed as redirect URIs for dynamically registered clients. Must use the https protocol. Paths may end in /* to match all sub-paths.

enabled?: boolean

Whether dynamic client registration is enabled.

enabled?: boolean

Whether the OAuth configuration is enabled for this application. When set to false, Access will not handle OAuth for this application. Defaults to true if omitted.

grant?: Grant { access_token_lifetime, session_duration }

Settings for OAuth grant behavior.

access_token_lifetime?: string

The lifetime of the access token. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

session_duration?: string

The duration of the OAuth session. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

options_preflight_bypass?: boolean

Allows options preflight requests to bypass Access authentication and go directly to the origin. Cannot turn on if cors_headers is set.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
read_service_tokens_from_header?: string

Allows matching Access Service Tokens passed HTTP in a single header with this name. This works as an alternative to the (CF-Access-Client-Id, CF-Access-Client-Secret) pair of headers. The header value will be interpreted as a json object similar to: { “cf-access-client-id”: “88bf3b6d86161464f6509f7219099e57.access.example.com”, “cf-access-client-secret”: “bdd31cbc4dec990953e39163fbbb194c93313ca9f0a6e420346af9d326b1d2a5” }

scim_config?: SCIMConfig { idp_uid, remote_uri, authentication, 3 more }

Configuration for provisioning to this application via SCIM. This is currently in closed beta.

idp_uid: string

The UID of the IdP to use as the source for SCIM resources to provision to this application.

remote_uri: string

The base URI for the application’s SCIM-compatible API.

authentication?: SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | 2 more

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

Array<SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme } >
One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

deactivate_on_delete?: boolean

If false, propagates DELETE requests to the target application for SCIM resources. If true, sets ‘active’ to false on the SCIM resource. Note: Some targets do not support DELETE operations.

enabled?: boolean

Whether SCIM provisioning is turned on for this application.

mappings?: Array<SCIMConfigMapping { schema, enabled, filter, 3 more } >

A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.

schema: string

Which SCIM resource type this mapping applies to.

enabled?: boolean

Whether or not this mapping is enabled.

filter?: string

A SCIM filter expression that matches resources that should be provisioned to this application.

operations?: Operations { create, delete, update }

Whether or not this mapping applies to creates, updates, or deletes.

create?: boolean

Whether or not this mapping applies to create (POST) operations.

delete?: boolean

Whether or not this mapping applies to DELETE operations.

update?: boolean

Whether or not this mapping applies to update (PATCH/PUT) operations.

strictness?: "strict" | "passthrough"

The level of adherence to outbound resource schemas when provisioning to this mapping. ‘Strict’ removes unknown values, while ‘passthrough’ passes unknown values to the target.

One of the following:
"strict"
"passthrough"
transform_jsonata?: string

A JSONata expression that transforms the resource before provisioning it in the application.

Deprecatedself_hosted_domains?: Array<SelfHostedDomains>

List of public domains that Access will secure. This field is deprecated in favor of destinations and will be supported until November 21, 2025. If destinations are provided, then self_hosted_domains will be ignored.

service_auth_401_redirect?: boolean

Returns a 401 status code when the request is blocked by a Service Auth policy.

session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

skip_interstitial?: boolean

Enables automatic authentication through cloudflared.

tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

use_clientless_isolation_app_launcher_url?: boolean

Determines if users can access this application via a clientless browser isolation URL. This allows users to access private domains without connecting to Gateway. The option requires Clientless Browser Isolation to be set up with policies that allow users of this application.

McpServerApplication { type, id, allow_authenticate_via_warp, 18 more }

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allow_authenticate_via_warp?: boolean

When set to true, users can authenticate to this application using their WARP session. When set to false this application will always require direct IdP authentication. This setting always overrides the organization setting for WARP authentication.

allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

custom_deny_message?: string

The custom error message shown to a user when they are denied access to the application.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

destinations?: Array<PublicDestination { type, uri } | PrivateDestination { cidr, hostname, l4_protocol, 3 more } | ViaMcpServerPortalDestination { mcp_server_id, type } >

List of destinations secured by Access. This supersedes self_hosted_domains to allow for more flexibility in defining different types of domains. If destinations are provided, then self_hosted_domains will be ignored.

One of the following:
PublicDestination { type, uri }

A public hostname that Access will secure. Public destinations support sub-domain and path. Wildcard ’*’ can be used in the definition.

type?: "public"
uri?: string

The URI of the destination. Public destinations’ URIs can include a domain and path with wildcards.

PrivateDestination { cidr, hostname, l4_protocol, 3 more }
cidr?: string

The CIDR range of the destination. Single IPs will be computed as /32.

hostname?: string

The hostname of the destination. Matches a valid SNI served by an HTTPS origin.

l4_protocol?: "tcp" | "udp"

The L4 protocol of the destination. When omitted, both UDP and TCP traffic will match.

One of the following:
"tcp"
"udp"
port_range?: string

The port range of the destination. Can be a single port or a range of ports. When omitted, all ports will match.

type?: "private"
vnet_id?: string

The VNET ID to match the destination. When omitted, all VNETs will match.

ViaMcpServerPortalDestination { mcp_server_id, type }

A MCP server id configured in ai-controls. Access will secure the MCP server if accessed through a MCP portal.

mcp_server_id?: string

The MCP server id configured in ai-controls.

type?: "via_mcp_server_portal"
logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

name?: string

The name of the application.

oauth_configuration?: OAuthConfiguration { dynamic_client_registration, enabled, grant }

Beta: Optional configuration for managing an OAuth authorization flow controlled by Access. When set, Access will act as the OAuth authorization server for this application. Only compatible with OAuth clients that support RFC 8707 (Resource Indicators for OAuth 2.0). This feature is currently in beta.

dynamic_client_registration?: DynamicClientRegistration { allow_any_on_localhost, allow_any_on_loopback, allowed_uris, enabled }

Settings for OAuth dynamic client registration.

allow_any_on_localhost?: boolean

Allows any client with redirect URIs on localhost.

allow_any_on_loopback?: boolean

Allows any client with redirect URIs on 127.0.0.1.

allowed_uris?: Array<string>

The URIs that are allowed as redirect URIs for dynamically registered clients. Must use the https protocol. Paths may end in /* to match all sub-paths.

enabled?: boolean

Whether dynamic client registration is enabled.

enabled?: boolean

Whether the OAuth configuration is enabled for this application. When set to false, Access will not handle OAuth for this application. Defaults to true if omitted.

grant?: Grant { access_token_lifetime, session_duration }

Settings for OAuth grant behavior.

access_token_lifetime?: string

The lifetime of the access token. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

session_duration?: string

The duration of the OAuth session. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

options_preflight_bypass?: boolean

Allows options preflight requests to bypass Access authentication and go directly to the origin. Cannot turn on if cors_headers is set.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
scim_config?: SCIMConfig { idp_uid, remote_uri, authentication, 3 more }

Configuration for provisioning to this application via SCIM. This is currently in closed beta.

idp_uid: string

The UID of the IdP to use as the source for SCIM resources to provision to this application.

remote_uri: string

The base URI for the application’s SCIM-compatible API.

authentication?: SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | 2 more

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

Array<SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme } >
One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

deactivate_on_delete?: boolean

If false, propagates DELETE requests to the target application for SCIM resources. If true, sets ‘active’ to false on the SCIM resource. Note: Some targets do not support DELETE operations.

enabled?: boolean

Whether SCIM provisioning is turned on for this application.

mappings?: Array<SCIMConfigMapping { schema, enabled, filter, 3 more } >

A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.

schema: string

Which SCIM resource type this mapping applies to.

enabled?: boolean

Whether or not this mapping is enabled.

filter?: string

A SCIM filter expression that matches resources that should be provisioned to this application.

operations?: Operations { create, delete, update }

Whether or not this mapping applies to creates, updates, or deletes.

create?: boolean

Whether or not this mapping applies to create (POST) operations.

delete?: boolean

Whether or not this mapping applies to DELETE operations.

update?: boolean

Whether or not this mapping applies to update (PATCH/PUT) operations.

strictness?: "strict" | "passthrough"

The level of adherence to outbound resource schemas when provisioning to this mapping. ‘Strict’ removes unknown values, while ‘passthrough’ passes unknown values to the target.

One of the following:
"strict"
"passthrough"
transform_jsonata?: string

A JSONata expression that transforms the resource before provisioning it in the application.

session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

McpServerPortalApplication { type, id, allow_authenticate_via_warp, 19 more }

The application type.

One of the following:
"self_hosted"
"saas"
"ssh"
"vnc"
"app_launcher"
"warp"
"biso"
"bookmark"
"dash_sso"
"infrastructure"
"rdp"
"mcp"
"mcp_portal"
"proxy_endpoint"
id?: string

UUID.

maxLength36
allow_authenticate_via_warp?: boolean

When set to true, users can authenticate to this application using their WARP session. When set to false this application will always require direct IdP authentication. This setting always overrides the organization setting for WARP authentication.

allowed_idps?: Array<AllowedIdPs>

The identity providers your users can select when connecting to this application. Defaults to all IdPs configured in your account.

aud?: string

Audience tag.

maxLength64
auto_redirect_to_identity?: boolean

When set to true, users skip the identity provider selection step during login. You must specify only one identity provider in allowed_idps.

custom_deny_message?: string

The custom error message shown to a user when they are denied access to the application.

custom_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing identity-based rules.

custom_non_identity_deny_url?: string

The custom URL a user is redirected to when they are denied access to the application when failing non-identity rules.

custom_pages?: Array<string>

The custom pages that will be displayed when applicable for this application

destinations?: Array<PublicDestination { type, uri } | PrivateDestination { cidr, hostname, l4_protocol, 3 more } | ViaMcpServerPortalDestination { mcp_server_id, type } >

List of destinations secured by Access. This supersedes self_hosted_domains to allow for more flexibility in defining different types of domains. If destinations are provided, then self_hosted_domains will be ignored.

One of the following:
PublicDestination { type, uri }

A public hostname that Access will secure. Public destinations support sub-domain and path. Wildcard ’*’ can be used in the definition.

type?: "public"
uri?: string

The URI of the destination. Public destinations’ URIs can include a domain and path with wildcards.

PrivateDestination { cidr, hostname, l4_protocol, 3 more }
cidr?: string

The CIDR range of the destination. Single IPs will be computed as /32.

hostname?: string

The hostname of the destination. Matches a valid SNI served by an HTTPS origin.

l4_protocol?: "tcp" | "udp"

The L4 protocol of the destination. When omitted, both UDP and TCP traffic will match.

One of the following:
"tcp"
"udp"
port_range?: string

The port range of the destination. Can be a single port or a range of ports. When omitted, all ports will match.

type?: "private"
vnet_id?: string

The VNET ID to match the destination. When omitted, all VNETs will match.

ViaMcpServerPortalDestination { mcp_server_id, type }

A MCP server id configured in ai-controls. Access will secure the MCP server if accessed through a MCP portal.

mcp_server_id?: string

The MCP server id configured in ai-controls.

type?: "via_mcp_server_portal"
domain?: string

The primary hostname and path secured by Access. This domain will be displayed if the app is visible in the App Launcher.

logo_url?: string

The image URL for the logo shown in the App Launcher dashboard.

name?: string

The name of the application.

oauth_configuration?: OAuthConfiguration { dynamic_client_registration, enabled, grant }

Beta: Optional configuration for managing an OAuth authorization flow controlled by Access. When set, Access will act as the OAuth authorization server for this application. Only compatible with OAuth clients that support RFC 8707 (Resource Indicators for OAuth 2.0). This feature is currently in beta.

dynamic_client_registration?: DynamicClientRegistration { allow_any_on_localhost, allow_any_on_loopback, allowed_uris, enabled }

Settings for OAuth dynamic client registration.

allow_any_on_localhost?: boolean

Allows any client with redirect URIs on localhost.

allow_any_on_loopback?: boolean

Allows any client with redirect URIs on 127.0.0.1.

allowed_uris?: Array<string>

The URIs that are allowed as redirect URIs for dynamically registered clients. Must use the https protocol. Paths may end in /* to match all sub-paths.

enabled?: boolean

Whether dynamic client registration is enabled.

enabled?: boolean

Whether the OAuth configuration is enabled for this application. When set to false, Access will not handle OAuth for this application. Defaults to true if omitted.

grant?: Grant { access_token_lifetime, session_duration }

Settings for OAuth grant behavior.

access_token_lifetime?: string

The lifetime of the access token. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

session_duration?: string

The duration of the OAuth session. Must be in the format 300ms or 2h45m. Valid time units are ns, us (or µs), ms, s, m, h.

options_preflight_bypass?: boolean

Allows options preflight requests to bypass Access authentication and go directly to the origin. Cannot turn on if cors_headers is set.

policies?: Array<Policy>
id?: string

The UUID of the policy

maxLength36
approval_groups?: Array<ApprovalGroup { approvals_needed, email_addresses, email_list_uuid } >

Administrators who can approve a temporary authentication request.

approvals_needed: number

The number of approvals needed to obtain access.

minimum0
email_addresses?: Array<string>

A list of emails that can approve the access request.

email_list_uuid?: string

The UUID of an re-usable email list.

approval_required?: boolean

Requires the user to request access from an administrator at the start of each session.

connection_rules?: ConnectionRules { rdp }

The rules that define how users may connect to targets secured by your application.

rdp?: RDP { allowed_clipboard_local_to_remote_formats, allowed_clipboard_remote_to_local_formats }

The RDP-specific rules that define clipboard behavior for RDP connections.

allowed_clipboard_local_to_remote_formats?: Array<"text">

Clipboard formats allowed when copying from local machine to remote RDP session.

allowed_clipboard_remote_to_local_formats?: Array<"text">

Clipboard formats allowed when copying from remote RDP session to local machine.

created_at?: string
formatdate-time
decision?: Decision

The action Access will take if a user matches this policy. Infrastructure application policies can only use the Allow action.

One of the following:
"allow"
"deny"
"non_identity"
"bypass"
exclude?: Array<AccessRule>

Rules evaluated with a NOT logical operator. To match the policy, a user cannot meet any of the Exclude rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
include?: Array<AccessRule>

Rules evaluated with an OR logical operator. A user needs to meet only one of the Include rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
isolation_required?: boolean

Require this application to be served in an isolated browser for users matching this policy. ‘Client Web Isolation’ must be on for the account in order to use this feature.

mfa_config?: MfaConfig { allowed_authenticators, mfa_disabled, session_duration }

Configures multi-factor authentication (MFA) settings.

allowed_authenticators?: Array<"totp" | "biometrics" | "security_key">

Lists the MFA methods that users can authenticate with.

One of the following:
"totp"
"biometrics"
"security_key"
mfa_disabled?: boolean

Indicates whether to disable MFA for this resource. This option is available at the application and policy level.

session_duration?: string

Defines the duration of an MFA session. Must be in minutes (m) or hours (h). Minimum: 0m. Maximum: 720h (30 days). Examples:5m or 24h.

name?: string

The name of the Access policy.

precedence?: number

The order of execution for this policy. Must be unique for each policy within an app.

purpose_justification_prompt?: string

A custom message that will appear on the purpose justification screen.

purpose_justification_required?: boolean

Require users to enter a justification when they log in to the application.

require?: Array<AccessRule>

Rules evaluated with an AND logical operator. To match the policy, a user must meet all of the Require rules.

One of the following:
GroupRule { group }

Matches an Access group.

group: Group { id }
id: string

The ID of a previously created Access group.

AnyValidServiceTokenRule { any_valid_service_token }

Matches any valid Access Service Token

any_valid_service_token: AnyValidServiceToken

An empty object which matches on all service tokens.

AccessAuthContextRule { auth_context }

Matches an Azure Authentication Context. Requires an Azure identity provider.

auth_context: AuthContext { id, ac_id, identity_provider_id }
id: string

The ID of an Authentication context.

ac_id: string

The ACID of an Authentication context.

identity_provider_id: string

The ID of your Azure identity provider.

AuthenticationMethodRule { auth_method }

Enforce different MFA options

auth_method: AuthMethod { auth_method }
auth_method: string
AzureGroupRule { azureAD }

Matches an Azure group. Requires an Azure identity provider.

azureAD: AzureAD { id, identity_provider_id }
id: string

The ID of an Azure group.

identity_provider_id: string

The ID of your Azure identity provider.

CertificateRule { certificate }

Matches any valid client certificate.

certificate: Certificate
AccessCommonNameRule { common_name }

Matches a specific common name.

common_name: CommonName { common_name }
common_name: string

The common name to match.

CountryRule { geo }

Matches a specific country

geo: Geo { country_code }
country_code: string

The country code that should be matched.

AccessDevicePostureRule { device_posture }

Enforces a device posture rule has run successfully

device_posture: DevicePosture { integration_uid }
integration_uid: string

The ID of a device posture integration.

DomainRule { email_domain }

Match an entire email domain.

email_domain: EmailDomain { domain }
domain: string

The email domain to match.

EmailListRule { email_list }

Matches an email address from a list.

email_list: EmailList { id }
id: string

The ID of a previously created email list.

EmailRule { email }

Matches a specific email.

email: Email { email }
email: string

The email of the user.

formatemail
EveryoneRule { everyone }

Matches everyone.

everyone: Everyone

An empty object which matches on all users.

ExternalEvaluationRule { external_evaluation }

Create Allow or Block policies which evaluate the user based on custom criteria.

external_evaluation: ExternalEvaluation { evaluate_url, keys_url }
evaluate_url: string

The API endpoint containing your business logic.

keys_url: string

The API endpoint containing the key that Access uses to verify that the response came from your API.

GitHubOrganizationRule { github-organization }

Matches a Github organization. Requires a Github identity provider.

"github-organization": GitHubOrganization { identity_provider_id, name, team }
identity_provider_id: string

The ID of your Github identity provider.

name: string

The name of the organization.

team?: string

The name of the team

GSuiteGroupRule { gsuite }

Matches a group in Google Workspace. Requires a Google Workspace identity provider.

gsuite: GSuite { email, identity_provider_id }
email: string

The email of the Google Workspace group.

identity_provider_id: string

The ID of your Google Workspace identity provider.

AccessLoginMethodRule { login_method }

Matches a specific identity provider id.

login_method: LoginMethod { id }
id: string

The ID of an identity provider.

IPListRule { ip_list }

Matches an IP address from a list.

ip_list: IPList { id }
id: string

The ID of a previously created IP list.

IPRule { ip }

Matches an IP address block.

ip: IP { ip }
ip: string

An IPv4 or IPv6 CIDR block.

OktaGroupRule { okta }

Matches an Okta group. Requires an Okta identity provider.

okta: Okta { identity_provider_id, name }
identity_provider_id: string

The ID of your Okta identity provider.

name: string

The name of the Okta group.

SAMLGroupRule { saml }

Matches a SAML group. Requires a SAML identity provider.

saml: SAML { attribute_name, attribute_value, identity_provider_id }
attribute_name: string

The name of the SAML attribute.

attribute_value: string

The SAML attribute value to look for.

identity_provider_id: string

The ID of your SAML identity provider.

AccessOIDCClaimRule { oidc }

Matches an OIDC claim. Requires an OIDC identity provider.

oidc: OIDC { claim_name, claim_value, identity_provider_id }
claim_name: string

The name of the OIDC claim.

claim_value: string

The OIDC claim value to look for.

identity_provider_id: string

The ID of your OIDC identity provider.

ServiceTokenRule { service_token }

Matches a specific Access Service Token

service_token: ServiceToken { token_id }
token_id: string

The ID of a Service Token.

AccessLinkedAppTokenRule { linked_app_token }

Matches OAuth 2.0 access tokens issued by the specified Access OIDC SaaS application. Only compatible with non_identity and bypass decisions.

linked_app_token: LinkedAppToken { app_uid }
app_uid: string

The ID of an Access OIDC SaaS application

AccessUserRiskScoreRule { user_risk_score }

Matches a user’s risk score.

user_risk_score: UserRiskScore { user_risk_score }
user_risk_score: Array<"low" | "medium" | "high" | "unscored">

A list of risk score levels to match. Values can be low, medium, high, or unscored.

One of the following:
"low"
"medium"
"high"
"unscored"
session_duration?: string

The amount of time that tokens issued for the application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h.

updated_at?: string
formatdate-time
scim_config?: SCIMConfig { idp_uid, remote_uri, authentication, 3 more }

Configuration for provisioning to this application via SCIM. This is currently in closed beta.

idp_uid: string

The UID of the IdP to use as the source for SCIM resources to provision to this application.

remote_uri: string

The base URI for the application’s SCIM-compatible API.

authentication?: SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | 2 more

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

Array<SCIMConfigAuthenticationHTTPBasic { password, scheme, user } | SCIMConfigAuthenticationOAuthBearerToken { token, scheme } | SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more } | AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme } >
One of the following:
SCIMConfigAuthenticationHTTPBasic { password, scheme, user }

Attributes for configuring HTTP Basic authentication scheme for SCIM provisioning to an application.

password: string

Password used to authenticate with the remote SCIM service.

scheme: "httpbasic"

The authentication scheme to use when making SCIM requests to this application.

user: string

User name used to authenticate with the remote SCIM service.

SCIMConfigAuthenticationOAuthBearerToken { token, scheme }

Attributes for configuring OAuth Bearer Token authentication scheme for SCIM provisioning to an application.

token: string

Token used to authenticate with the remote SCIM service.

scheme: "oauthbearertoken"

The authentication scheme to use when making SCIM requests to this application.

SCIMConfigAuthenticationOauth2 { authorization_url, client_id, client_secret, 3 more }

Attributes for configuring OAuth 2 authentication scheme for SCIM provisioning to an application.

authorization_url: string

URL used to generate the auth code used during token generation.

client_id: string

Client ID used to authenticate when generating a token for authenticating with the remote SCIM service.

client_secret: string

Secret used to authenticate when generating a token for authenticating with the remove SCIM service.

scheme: "oauth2"

The authentication scheme to use when making SCIM requests to this application.

token_url: string

URL used to generate the token used to authenticate with the remote SCIM service.

scopes?: Array<string>

The authorization scopes to request when generating the token used to authenticate with the remove SCIM service.

AccessSCIMConfigAuthenticationAccessServiceToken { client_id, client_secret, scheme }

Attributes for configuring Access Service Token authentication scheme for SCIM provisioning to an application.

client_id: string

Client ID of the Access service token used to authenticate with the remote service.

client_secret: string

Client secret of the Access service token used to authenticate with the remote service.

scheme: "access_service_token"

The authentication scheme to use when making SCIM requests to this application.

deactivate_on_delete?: boolean

If false, propagates DELETE requests to the target application for SCIM resources. If true, sets ‘active’ to false on the SCIM resource. Note: Some targets do not support DELETE operations.

enabled?: boolean

Whether SCIM provisioning is turned on for this application.

mappings?: Array<SCIMConfigMapping { schema, enabled, filter, 3 more } >

A list of mappings to apply to SCIM resources before provisioning them in this application. These can transform or filter the resources to be provisioned.

schema: string

Which SCIM resource type this mapping applies to.

enabled?: boolean

Whether or not this mapping is enabled.

filter?: string

A SCIM filter expression that matches resources that should be provisioned to this application.

operations?: Operations { create, delete, update }

Whether or not this mapping applies to creates, updates, or deletes.

create?: boolean

Whether or not this mapping applies to create (POST) operations.

delete?: boolean

Whether or not this mapping applies to DELETE operations.

update?: boolean

Whether or not this mapping applies to update (PATCH/PUT) operations.

strictness?: "strict" | "passthrough"

The level of adherence to outbound resource schemas when provisioning to this mapping. ‘Strict’ removes unknown values, while ‘passthrough’ passes unknown values to the target.

One of the following:
"strict"
"passthrough"
transform_jsonata?: string

A JSONata expression that transforms the resource before provisioning it in the application.

session_duration?: string

The amount of time that tokens issued for this application will be valid. Must be in the format 300ms or 2h45m. Valid time units are: ns, us (or µs), ms, s, m, h. Note: unsupported for infrastructure type applications.

tags?: Array<string>

The tags you want assigned to an application. Tags are used to filter applications in the App Launcher dashboard.

Add an Access application

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const application = await client.zeroTrust.access.applications.create({
  domain: 'test.example.com/admin',
  type: 'self_hosted',
  account_id: 'account_id',
});

console.log(application);
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "domain": "test.example.com/admin",
    "type": "self_hosted",
    "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    "allow_authenticate_via_warp": true,
    "allow_iframe": true,
    "allowed_idps": [
      "699d98642c564d2e855e9661899b7252"
    ],
    "app_launcher_visible": true,
    "aud": "737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe3893",
    "auto_redirect_to_identity": true,
    "cors_headers": {
      "allow_all_headers": true,
      "allow_all_methods": true,
      "allow_all_origins": true,
      "allow_credentials": true,
      "allowed_headers": [
        "string"
      ],
      "allowed_methods": [
        "GET"
      ],
      "allowed_origins": [
        "https://example.com"
      ],
      "max_age": -1
    },
    "created_at": "2014-01-01T05:20:00.12345Z",
    "custom_deny_message": "custom_deny_message",
    "custom_deny_url": "custom_deny_url",
    "custom_non_identity_deny_url": "custom_non_identity_deny_url",
    "custom_pages": [
      "699d98642c564d2e855e9661899b7252"
    ],
    "destinations": [
      {
        "type": "public",
        "uri": "test.example.com/admin"
      },
      {
        "type": "public",
        "uri": "test.anotherexample.com/staff"
      },
      {
        "cidr": "10.5.0.0/24",
        "hostname": "hostname",
        "l4_protocol": "tcp",
        "port_range": "80-90",
        "type": "private",
        "vnet_id": "vnet_id"
      },
      {
        "cidr": "10.5.0.3/32",
        "hostname": "hostname",
        "l4_protocol": "tcp",
        "port_range": "80",
        "type": "private",
        "vnet_id": "vnet_id"
      },
      {
        "cidr": "cidr",
        "hostname": "private-sni.example.com",
        "l4_protocol": "tcp",
        "port_range": "port_range",
        "type": "private",
        "vnet_id": "vnet_id"
      },
      {
        "mcp_server_id": "mcp-server-1",
        "type": "via_mcp_server_portal"
      }
    ],
    "enable_binding_cookie": true,
    "http_only_cookie_attribute": true,
    "logo_url": "https://www.cloudflare.com/img/logo-web-badges/cf-logo-on-white-bg.svg",
    "mfa_config": {
      "allowed_authenticators": [
        "totp",
        "biometrics",
        "security_key"
      ],
      "mfa_disabled": false,
      "session_duration": "24h"
    },
    "name": "Admin Site",
    "oauth_configuration": {
      "dynamic_client_registration": {
        "allow_any_on_localhost": true,
        "allow_any_on_loopback": true,
        "allowed_uris": [
          "https://example.com/callback"
        ],
        "enabled": true
      },
      "enabled": true,
      "grant": {
        "access_token_lifetime": "5m",
        "session_duration": "24h"
      }
    },
    "options_preflight_bypass": true,
    "path_cookie_attribute": true,
    "policies": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "approval_groups": [
          {
            "approvals_needed": 1,
            "email_addresses": [
              "test1@cloudflare.com",
              "test2@cloudflare.com"
            ],
            "email_list_uuid": "email_list_uuid"
          },
          {
            "approvals_needed": 3,
            "email_addresses": [
              "test@cloudflare.com",
              "test2@cloudflare.com"
            ],
            "email_list_uuid": "597147a1-976b-4ef2-9af0-81d5d007fc34"
          }
        ],
        "approval_required": true,
        "connection_rules": {
          "rdp": {
            "allowed_clipboard_local_to_remote_formats": [
              "text"
            ],
            "allowed_clipboard_remote_to_local_formats": [
              "text"
            ]
          }
        },
        "created_at": "2014-01-01T05:20:00.12345Z",
        "decision": "allow",
        "exclude": [
          {
            "certificate": {}
          }
        ],
        "include": [
          {
            "certificate": {}
          }
        ],
        "isolation_required": false,
        "mfa_config": {
          "allowed_authenticators": [
            "totp",
            "biometrics",
            "security_key"
          ],
          "mfa_disabled": false,
          "session_duration": "24h"
        },
        "name": "Allow devs",
        "precedence": 0,
        "purpose_justification_prompt": "Please enter a justification for entering this protected domain.",
        "purpose_justification_required": true,
        "require": [
          {
            "certificate": {}
          }
        ],
        "session_duration": "24h",
        "updated_at": "2014-01-01T05:20:00.12345Z"
      }
    ],
    "read_service_tokens_from_header": "Authorization",
    "same_site_cookie_attribute": "strict",
    "scim_config": {
      "idp_uid": "idp_uid",
      "remote_uri": "remote_uri",
      "authentication": {
        "password": "password",
        "scheme": "httpbasic",
        "user": "user"
      },
      "deactivate_on_delete": true,
      "enabled": true,
      "mappings": [
        {
          "schema": "urn:ietf:params:scim:schemas:core:2.0:User",
          "enabled": true,
          "filter": "title pr or userType eq \"Intern\"",
          "operations": {
            "create": true,
            "delete": true,
            "update": true
          },
          "strictness": "strict",
          "transform_jsonata": "$merge([$, {'userName': $substringBefore($.userName, '@') & '+test@' & $substringAfter($.userName, '@')}])"
        }
      ]
    },
    "self_hosted_domains": [
      "test.example.com/admin",
      "test.anotherexample.com/staff"
    ],
    "service_auth_401_redirect": true,
    "session_duration": "24h",
    "skip_interstitial": true,
    "tags": [
      "engineers"
    ],
    "updated_at": "2014-01-01T05:20:00.12345Z",
    "use_clientless_isolation_app_launcher_url": false
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "domain": "test.example.com/admin",
    "type": "self_hosted",
    "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    "allow_authenticate_via_warp": true,
    "allow_iframe": true,
    "allowed_idps": [
      "699d98642c564d2e855e9661899b7252"
    ],
    "app_launcher_visible": true,
    "aud": "737646a56ab1df6ec9bddc7e5ca84eaf3b0768850f3ffb5d74f1534911fe3893",
    "auto_redirect_to_identity": true,
    "cors_headers": {
      "allow_all_headers": true,
      "allow_all_methods": true,
      "allow_all_origins": true,
      "allow_credentials": true,
      "allowed_headers": [
        "string"
      ],
      "allowed_methods": [
        "GET"
      ],
      "allowed_origins": [
        "https://example.com"
      ],
      "max_age": -1
    },
    "created_at": "2014-01-01T05:20:00.12345Z",
    "custom_deny_message": "custom_deny_message",
    "custom_deny_url": "custom_deny_url",
    "custom_non_identity_deny_url": "custom_non_identity_deny_url",
    "custom_pages": [
      "699d98642c564d2e855e9661899b7252"
    ],
    "destinations": [
      {
        "type": "public",
        "uri": "test.example.com/admin"
      },
      {
        "type": "public",
        "uri": "test.anotherexample.com/staff"
      },
      {
        "cidr": "10.5.0.0/24",
        "hostname": "hostname",
        "l4_protocol": "tcp",
        "port_range": "80-90",
        "type": "private",
        "vnet_id": "vnet_id"
      },
      {
        "cidr": "10.5.0.3/32",
        "hostname": "hostname",
        "l4_protocol": "tcp",
        "port_range": "80",
        "type": "private",
        "vnet_id": "vnet_id"
      },
      {
        "cidr": "cidr",
        "hostname": "private-sni.example.com",
        "l4_protocol": "tcp",
        "port_range": "port_range",
        "type": "private",
        "vnet_id": "vnet_id"
      },
      {
        "mcp_server_id": "mcp-server-1",
        "type": "via_mcp_server_portal"
      }
    ],
    "enable_binding_cookie": true,
    "http_only_cookie_attribute": true,
    "logo_url": "https://www.cloudflare.com/img/logo-web-badges/cf-logo-on-white-bg.svg",
    "mfa_config": {
      "allowed_authenticators": [
        "totp",
        "biometrics",
        "security_key"
      ],
      "mfa_disabled": false,
      "session_duration": "24h"
    },
    "name": "Admin Site",
    "oauth_configuration": {
      "dynamic_client_registration": {
        "allow_any_on_localhost": true,
        "allow_any_on_loopback": true,
        "allowed_uris": [
          "https://example.com/callback"
        ],
        "enabled": true
      },
      "enabled": true,
      "grant": {
        "access_token_lifetime": "5m",
        "session_duration": "24h"
      }
    },
    "options_preflight_bypass": true,
    "path_cookie_attribute": true,
    "policies": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "approval_groups": [
          {
            "approvals_needed": 1,
            "email_addresses": [
              "test1@cloudflare.com",
              "test2@cloudflare.com"
            ],
            "email_list_uuid": "email_list_uuid"
          },
          {
            "approvals_needed": 3,
            "email_addresses": [
              "test@cloudflare.com",
              "test2@cloudflare.com"
            ],
            "email_list_uuid": "597147a1-976b-4ef2-9af0-81d5d007fc34"
          }
        ],
        "approval_required": true,
        "connection_rules": {
          "rdp": {
            "allowed_clipboard_local_to_remote_formats": [
              "text"
            ],
            "allowed_clipboard_remote_to_local_formats": [
              "text"
            ]
          }
        },
        "created_at": "2014-01-01T05:20:00.12345Z",
        "decision": "allow",
        "exclude": [
          {
            "certificate": {}
          }
        ],
        "include": [
          {
            "certificate": {}
          }
        ],
        "isolation_required": false,
        "mfa_config": {
          "allowed_authenticators": [
            "totp",
            "biometrics",
            "security_key"
          ],
          "mfa_disabled": false,
          "session_duration": "24h"
        },
        "name": "Allow devs",
        "precedence": 0,
        "purpose_justification_prompt": "Please enter a justification for entering this protected domain.",
        "purpose_justification_required": true,
        "require": [
          {
            "certificate": {}
          }
        ],
        "session_duration": "24h",
        "updated_at": "2014-01-01T05:20:00.12345Z"
      }
    ],
    "read_service_tokens_from_header": "Authorization",
    "same_site_cookie_attribute": "strict",
    "scim_config": {
      "idp_uid": "idp_uid",
      "remote_uri": "remote_uri",
      "authentication": {
        "password": "password",
        "scheme": "httpbasic",
        "user": "user"
      },
      "deactivate_on_delete": true,
      "enabled": true,
      "mappings": [
        {
          "schema": "urn:ietf:params:scim:schemas:core:2.0:User",
          "enabled": true,
          "filter": "title pr or userType eq \"Intern\"",
          "operations": {
            "create": true,
            "delete": true,
            "update": true
          },
          "strictness": "strict",
          "transform_jsonata": "$merge([$, {'userName': $substringBefore($.userName, '@') & '+test@' & $substringAfter($.userName, '@')}])"
        }
      ]
    },
    "self_hosted_domains": [
      "test.example.com/admin",
      "test.anotherexample.com/staff"
    ],
    "service_auth_401_redirect": true,
    "session_duration": "24h",
    "skip_interstitial": true,
    "tags": [
      "engineers"
    ],
    "updated_at": "2014-01-01T05:20:00.12345Z",
    "use_clientless_isolation_app_launcher_url": false
  }
}