Google Workspace Policies API

The Policies API from Google Workspace — 2 operation(s) for policies.

GitHub OpenAPI

Operations 5

GET /v1/policies/{policiesId} Get policies #
DELETE /v1/policies/{policiesId} Delete policies #
PATCH /v1/policies/{policiesId} Patch policies #
GET /v1/policies List policies #
POST /v1/policies Create policies #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/google-workspace:google-workspace-policies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

google-workspace-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cloud Identity Policies API
  version: v1
  description: Generated from Google's published Discovery document for Cloud Identity API (cloudidentity v1, revision 20261108). 5 operation(s).
  contact:
    name: Google
    url: https://developers.google.com/
  termsOfService: https://developers.google.com/terms
servers:
- url: https://cloudidentity.googleapis.com
tags:
- name: Policies
paths:
  /v1/policies/{policiesId}:
    get:
      operationId: cloudidentity.policies.get
      summary: Get policies
      description: Get a policy.
      parameters:
      - name: policiesId
        in: path
        required: true
        description: Resource name segment (policiesId).
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-identity.policies
        - https://www.googleapis.com/auth/cloud-identity.policies.readonly
      - apiKey: []
      tags:
      - Policies
    delete:
      operationId: cloudidentity.policies.delete
      summary: Delete policies
      description: Delete a policy.
      parameters:
      - name: policiesId
        in: path
        required: true
        description: Resource name segment (policiesId).
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-identity.policies
      - apiKey: []
      tags:
      - Policies
    patch:
      operationId: cloudidentity.policies.patch
      summary: Patch policies
      description: Update a policy.
      parameters:
      - name: policiesId
        in: path
        required: true
        description: Resource name segment (policiesId).
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Policy'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-identity.policies
      - apiKey: []
      tags:
      - Policies
  /v1/policies:
    get:
      operationId: cloudidentity.policies.list
      summary: List policies
      description: List policies.
      parameters:
      - name: filter
        in: query
        required: false
        description: 'Optional. A CEL expression for filtering the results. Policies can be filtered using the expression in the following ways: - Filter by application: `setting.type.matches(''^settings/gmail\\..*$'')` - Filter by setting type: `setting.type.matches(''^.*\\.service_status$'')` - Filter by customer: `customer == "customers/{customer}"` Where `customer` is the `id` from the [Admin SDK `Customer` resource](https://developers.google.com/admin-sdk/directory/reference/rest/v1/customers). You may use `customers/my_customer` to specify your own organization. When no `customer` is mentioned it will be default to `customers/my_customer`. You may only filter on policies for a single customer at a time. The above clauses can be combined together in a single filter expression with the `&&` and `||` operators, like in the following example: `customer == "customers/my_customer" && ( setting.type.matches(''^settings/gmail\\..*$'') || setting.type.matches(''^.*\\.service_status$'') )`.'
        schema:
          type: string
      - name: pageSize
        in: query
        required: false
        description: Optional. The maximum number of results to return. The service can return fewer than this number. If omitted or set to `0`, the default is `50` results per page. The maximum allowed value is `100`. `page_size` values greater than `100` default to `100`.
        schema:
          format: int32
          type: integer
      - name: pageToken
        in: query
        required: false
        description: Optional. The pagination token received from a prior call to PoliciesService.ListPolicies to retrieve the next page of results. When paginating, all other parameters provided to `ListPoliciesRequest` must match the call that provided the page token.
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPoliciesResponse'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-identity.policies
        - https://www.googleapis.com/auth/cloud-identity.policies.readonly
      - apiKey: []
      tags:
      - Policies
    post:
      operationId: cloudidentity.policies.create
      summary: Create policies
      description: Create a policy.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Policy'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-identity.policies
      - apiKey: []
      tags:
      - Policies
components:
  schemas:
    GoogleRpcError:
      type: object
      description: The error envelope every Google API returns.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
            status:
              type: string
            details:
              type: array
              items:
                type: object
    PolicyQuery:
      description: PolicyQuery
      type: object
      properties:
        query:
          description: 'Immutable. The CEL query that defines which entities the Policy applies to (ex. a User entity). For details about CEL see https://opensource.google.com/projects/cel. The OrgUnits the Policy applies to are represented by a clause like so: entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId(''{orgUnitId}'')) The Group the Policy applies to are represented by a clause like so: entity.groups.exists(group, group.group_id == groupId(''{groupId}'')) The Licenses the Policy applies to are represented by a clause like so: entity.licenses.exists(license, license in [''/product/{productId}/sku/{skuId}'']) **Note:** The licenses clause is not supported in mutate endpoints. The above clauses can be present in any combination, and used in conjunction with the &&, || and ! operators. The org_unit and group fields below are helper fields that contain the corresponding value(s) as the query to make the query easier to use.'
          type: string
        group:
          type: string
          description: Immutable. The group that the query applies to. This field is only set if there is a single value for group that satisfies all clauses of the query. If no group applies, this will be the empty string.
        orgUnit:
          type: string
          description: Required. Immutable. Non-empty default. The OrgUnit the query applies to. This field is only set if there is a single value for org_unit that satisfies all clauses of the query.
        sortOrder:
          readOnly: true
          description: Output only. The decimal sort order of this PolicyQuery. The value is relative to all other policies with the same setting type for the customer. (There are no duplicates within this set).
          type: number
          format: double
    Status:
      properties:
        message:
          description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
          type: string
        details:
          description: A list of messages that carry the error details. There is a common set of message types for APIs to use.
          type: array
          items:
            type: object
            additionalProperties:
              description: Properties of the object. Contains field @type with type URL.
        code:
          description: The status code, which should be an enum value of google.rpc.Code.
          format: int32
          type: integer
      description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
      type: object
    ListPoliciesResponse:
      type: object
      properties:
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy'
          description: The results
        nextPageToken:
          description: The pagination token to retrieve the next page of results. If this field is empty, there are no subsequent pages.
          type: string
      description: The response message for PoliciesService.ListPolicies.
    Policy:
      type: object
      description: A Policy resource binds an instance of a single Setting with the scope of a PolicyQuery. The Setting instance will be applied to all entities that satisfy the query.
      properties:
        name:
          type: string
          readOnly: true
          description: 'Output only. Identifier. The [resource name](https://cloud.google.com/apis/design/resource_names) of the Policy. Format: policies/{policy}.'
        customer:
          description: Immutable. Customer that the Policy belongs to. The value is in the format 'customers/{customerId}'. The `customerId` must begin with "C" To find your customer ID in Admin Console see https://support.google.com/a/answer/10070793.
          type: string
        setting:
          $ref: '#/components/schemas/Setting'
          description: Required. The Setting configured by this Policy.
        type:
          type: string
          description: Output only. The type of the policy.
          readOnly: true
          enum:
          - POLICY_TYPE_UNSPECIFIED
          - SYSTEM
          - ADMIN
        policyQuery:
          $ref: '#/components/schemas/PolicyQuery'
          description: Required. The PolicyQuery the Setting applies to.
    Setting:
      type: object
      properties:
        value:
          additionalProperties:
            description: Properties of the object.
          type: object
          description: Required. The value of the Setting.
        type:
          description: Required. Immutable. The type of the Setting.
          type: string
      description: Setting
    Operation:
      properties:
        metadata:
          description: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
          additionalProperties:
            description: Properties of the object. Contains field @type with type URL.
          type: object
        error:
          $ref: '#/components/schemas/Status'
          description: The error result of the operation in case of failure or cancellation.
        name:
          description: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
          type: string
        done:
          description: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
          type: boolean
        response:
          additionalProperties:
            description: Properties of the object. Contains field @type with type URL.
          type: object
          description: The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
      description: This resource represents a long-running operation that is the result of a network API call.
      type: object
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: key
      description: API key; accepted by methods that do not need user data.
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/cloud-identity.policies: See and edit policies in your Cloud Identity Organization.
            https://www.googleapis.com/auth/cloud-identity.inboundsso: See and edit all of the Inbound SSO profiles and their assignments to any Org Units or Google Groups in your Cloud Identity Organization.
            https://www.googleapis.com/auth/cloud-identity.devices.readonly: 'Private Service: https://www.googleapis.com/auth/cloud-identity.devices.readonly'
            https://www.googleapis.com/auth/cloud-identity.groups.readonly: See any Cloud Identity Groups that you can access, including group members and their emails
            https://www.googleapis.com/auth/cloud-identity.devices: 'Private Service: https://www.googleapis.com/auth/cloud-identity.devices'
            https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
            https://www.googleapis.com/auth/cloud-identity.allowlisteddomains: See and edit allowlisted domains in your Cloud Identity Organization
            https://www.googleapis.com/auth/cloud-identity.allowlisteddomains.readonly: See allowlisted domains in your Cloud Identity Organization
            https://www.googleapis.com/auth/cloud-identity.policies.readonly: See policies in your Cloud Identity Organization.
            https://www.googleapis.com/auth/cloud-identity.devices.lookup: See your device details
            https://www.googleapis.com/auth/cloud-identity.inboundsso.readonly: See all of the Inbound SSO profiles and their assignments to any Org Units or Google Groups in your Cloud Identity Organization.
            https://www.googleapis.com/auth/cloud-identity.groups: See, change, create, and delete any of the Cloud Identity Groups that you can access, including the members of each group
externalDocs:
  url: https://cloud.google.com/identity/
x-provenance:
  method: harvested
  publisher: Google
  source: https://cloudidentity.googleapis.com/$discovery/rest?version=v1
  note: converted by discovery-to-openapi.py from Google's Discovery document (revision 20261108)