Permission
A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive.
Properties
| Name | Type | Description |
|---|---|---|
| allowFileDiscovery | boolean | Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type `domain` or `anyone`. |
| deleted | boolean | Output only. Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions. |
| displayName | string | Output only. The "pretty" name of the value of the permission. The following is a list of examples for each type of permission: * `user` - User's full name, as defined for their Google account, such a |
| domain | string | The domain to which this permission refers. |
| emailAddress | string | The email address of the user or group to which this permission refers. |
| expirationTime | string | The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: - They can only be set on user and group permissions - The time must be in the fut |
| id | string | Output only. The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as `permissionId`. IDs should be treated as opaque values. |
| kind | string | Output only. Identifies what kind of resource this is. Value: the fixed string `"drive#permission"`. |
| pendingOwner | boolean | Whether the account associated with this permission is a pending owner. Only populated for `user` type permissions for files that are not in a shared drive. |
| permissionDetails | array | Output only. Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items. |
| photoLink | string | Output only. A link to the user's profile photo, if available. |
| role | string | The role granted by this permission. While new values may be supported in the future, the following are currently allowed: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader` |
| teamDrivePermissionDetails | array | Output only. Deprecated: Output only. Use `permissionDetails` instead. |
| type | string | The type of the grantee. Valid values are: * `user` * `group` * `domain` * `anyone` When creating a permission, if `type` is `user` or `group`, you must provide an `emailAddress` for the user or group |
| view | string | Indicates the view for this permission. Only populated for permissions that belong to a view. 'published' is the only supported value. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/google/json-schema/google-permission-schema.json",
"title": "Permission",
"description": "A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive.",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-permissions-api-openapi.yml#/components/schemas/Permission",
"properties": {
"allowFileDiscovery": {
"description": "Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type `domain` or `anyone`.",
"type": "boolean"
},
"deleted": {
"description": "Output only. Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.",
"type": "boolean"
},
"displayName": {
"description": "Output only. The \"pretty\" name of the value of the permission. The following is a list of examples for each type of permission: * `user` - User's full name, as defined for their Google account, such as \"Joe Smith.\" * `group` - Name of the Google Group, such as \"The Company Administrators.\" * `domain` - String domain name, such as \"thecompany.com.\" * `anyone` - No `displayName` is present.",
"type": "string"
},
"domain": {
"description": "The domain to which this permission refers.",
"type": "string"
},
"emailAddress": {
"description": "The email address of the user or group to which this permission refers.",
"type": "string"
},
"expirationTime": {
"description": "The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: - They can only be set on user and group permissions - The time must be in the future - The time cannot be more than a year in the future",
"format": "date-time",
"type": "string"
},
"id": {
"description": "Output only. The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as `permissionId`. IDs should be treated as opaque values.",
"type": "string"
},
"kind": {
"default": "drive#permission",
"description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#permission\"`.",
"type": "string"
},
"pendingOwner": {
"description": "Whether the account associated with this permission is a pending owner. Only populated for `user` type permissions for files that are not in a shared drive.",
"type": "boolean"
},
"permissionDetails": {
"description": "Output only. Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.",
"items": {
"properties": {
"inherited": {
"description": "Output only. Whether this permission is inherited. This field is always populated. This is an output-only field.",
"type": "boolean"
},
"inheritedFrom": {
"description": "Output only. The ID of the item from which this permission is inherited. This is an output-only field.",
"type": "string"
},
"permissionType": {
"description": "Output only. The permission type for this user. While new values may be added in future, the following are currently possible: * `file` * `member`",
"type": "string"
},
"role": {
"description": "Output only. The primary role for this user. While new values may be added in the future, the following are currently possible: * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader`",
"type": "string"
}
},
"type": "object"
},
"readOnly": true,
"type": "array"
},
"photoLink": {
"description": "Output only. A link to the user's profile photo, if available.",
"type": "string"
},
"role": {
"description": "The role granted by this permission. While new values may be supported in the future, the following are currently allowed: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader`",
"type": "string"
},
"teamDrivePermissionDetails": {
"deprecated": true,
"description": "Output only. Deprecated: Output only. Use `permissionDetails` instead.",
"items": {
"properties": {
"inherited": {
"deprecated": true,
"description": "Deprecated: Output only. Use `permissionDetails/inherited` instead.",
"type": "boolean"
},
"inheritedFrom": {
"deprecated": true,
"description": "Deprecated: Output only. Use `permissionDetails/inheritedFrom` instead.",
"type": "string"
},
"role": {
"deprecated": true,
"description": "Deprecated: Output only. Use `permissionDetails/role` instead.",
"type": "string"
},
"teamDrivePermissionType": {
"deprecated": true,
"description": "Deprecated: Output only. Use `permissionDetails/permissionType` instead.",
"type": "string"
}
},
"type": "object"
},
"readOnly": true,
"type": "array"
},
"type": {
"description": "The type of the grantee. Valid values are: * `user` * `group` * `domain` * `anyone` When creating a permission, if `type` is `user` or `group`, you must provide an `emailAddress` for the user or group. When `type` is `domain`, you must provide a `domain`. There isn't extra information required for an `anyone` type.",
"type": "string"
},
"view": {
"description": "Indicates the view for this permission. Only populated for permissions that belong to a view. 'published' is the only supported value.",
"type": "string"
}
},
"type": "object"
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/google-permission"
curl "https://apis.io/api/v1/json-schemas?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.