{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/chromewebstore": {
"description": "See, edit, update, or publish your Chrome Web Store extensions, themes, apps, and licences you have access to"
},
"https://www.googleapis.com/auth/chromewebstore.readonly": {
"description": "See and download your Chrome Web Store extensions and apps, and see licenses you have access to"
}
}
}
},
"basePath": "",
"baseUrl": "https://chromewebstore.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Chromewebstore",
"description": "The Chrome Web Store API provides access to data about apps and extensions, as well as developer tools for managing them.",
"discoveryVersion": "v1",
"documentationLink": "https://developer.chrome.com/docs/webstore/api",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "chromewebstore:v2",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://chromewebstore.mtls.googleapis.com/",
"name": "chromewebstore",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"media": {
"methods": {
"upload": {
"description": "Upload a new package to an existing item.",
"flatPath": "v2/publishers/{publishersId}/items/{itemsId}:upload",
"httpMethod": "POST",
"id": "chromewebstore.media.upload",
"mediaUpload": {
"accept": [
"*/*"
],
"maxSize": "2147483648",
"protocols": {
"simple": {
"multipart": true,
"path": "/upload/v2/{+name}:upload"
}
}
},
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the item to upload the new package to in the form `publishers/{publisherId}/items/{itemId}`",
"location": "path",
"pattern": "^publishers/[^/]+/items/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}:upload",
"request": {
"$ref": "UploadItemPackageRequest"
},
"response": {
"$ref": "UploadItemPackageResponse"
},
"scopes": [
"https://www.googleapis.com/auth/chromewebstore"
],
"supportsMediaUpload": true
}
}
},
"publishers": {
"resources": {
"items": {
"methods": {
"cancelSubmission": {
"description": "Cancel the current active submission of an item if present. This can be used to cancel the review of a pending submission.",
"flatPath": "v2/publishers/{publishersId}/items/{itemsId}:cancelSubmission",
"httpMethod": "POST",
"id": "chromewebstore.publishers.items.cancelSubmission",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the item to cancel the submission of in the form `publishers/{publisherId}/items/{itemId}`",
"location": "path",
"pattern": "^publishers/[^/]+/items/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}:cancelSubmission",
"request": {
"$ref": "CancelSubmissionRequest"
},
"response": {
"$ref": "CancelSubmissionResponse"
},
"scopes": [
"https://www.googleapis.com/auth/chromewebstore"
]
},
"fetchStatus": {
"description": "Fetch the status of an item.",
"flatPath": "v2/publishers/{publishersId}/items/{itemsId}:fetchStatus",
"httpMethod": "GET",
"id": "chromewebstore.publishers.items.fetchStatus",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the item to retrieve the status of in the form `publishers/{publisherId}/items/{itemId}`",
"location": "path",
"pattern": "^publishers/[^/]+/items/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}:fetchStatus",
"response": {
"$ref": "FetchItemStatusResponse"
},
"scopes": [
"https://www.googleapis.com/auth/chromewebstore",
"https://www.googleapis.com/auth/chromewebstore.readonly"
]
},
"publish": {
"description": "Submit the item to be published in the store. The item will be submitted for review unless `skip_review` is set to true, or the item is staged from a previous submission with `publish_type` set to `STAGED_PUBLISH`.",
"flatPath": "v2/publishers/{publishersId}/items/{itemsId}:publish",
"httpMethod": "POST",
"id": "chromewebstore.publishers.items.publish",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the item in the form `publishers/{publisherId}/items/{itemId}`",
"location": "path",
"pattern": "^publishers/[^/]+/items/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}:publish",
"request": {
"$ref": "PublishItemRequest"
},
"response": {
"$ref": "PublishItemResponse"
},
"scopes": [
"https://www.googleapis.com/auth/chromewebstore"
]
},
"setPublishedDeployPercentage": {
"description": "Set a higher target deploy percentage for the item's published revision. This will be updated without the item being submitted for review. This is only available to items with over 10,000 seven-day active users.",
"flatPath": "v2/publishers/{publishersId}/items/{itemsId}:setPublishedDeployPercentage",
"httpMethod": "POST",
"id": "chromewebstore.publishers.items.setPublishedDeployPercentage",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the item to update the published revision of in the form `publishers/{publisherId}/items/{itemId}`",
"location": "path",
"pattern": "^publishers/[^/]+/items/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}:setPublishedDeployPercentage",
"request": {
"$ref": "SetPublishedDeployPercentageRequest"
},
"response": {
"$ref": "SetPublishedDeployPercentageResponse"
},
"scopes": [
"https://www.googleapis.com/auth/chromewebstore"
]
}
}
}
}
}
},
"revision": "20251026",
"rootUrl": "https://chromewebstore.googleapis.com/",
"schemas": {
"CancelSubmissionRequest": {
"description": "Request message for CancelSubmission.",
"id": "CancelSubmissionRequest",
"properties": {},
"type": "object"
},
"CancelSubmissionResponse": {
"description": "Response message for `CancelSubmission`.",
"id": "CancelSubmissionResponse",
"properties": {},
"type": "object"
},
"DeployInfo": {
"description": "Deployment information for a specific release channel. Used in requests to update deployment parameters.",
"id": "DeployInfo",
"properties": {
"deployPercentage": {
"description": "Required. The current deploy percentage for the release channel (nonnegative number between 0 and 100).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"DistributionChannel": {
"description": "Deployment information for a specific release channel",
"id": "DistributionChannel",
"properties": {
"crxVersion": {
"description": "The extension version provided in the manifest of the uploaded package.",
"type": "string"
},
"deployPercentage": {
"description": "The current deploy percentage for the release channel (nonnegative number between 0 and 100).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"FetchItemStatusResponse": {
"description": "Response message for `FetchItemStatus`.",
"id": "FetchItemStatusResponse",
"properties": {
"itemId": {
"description": "Output only. The ID of the item.",
"readOnly": true,
"type": "string"
},
"lastAsyncUploadState": {
"description": "Output only. The state of the last async upload for an item. Only set when there has been an async upload for the item in the past 24 hours.",
"enum": [
"UPLOAD_STATE_UNSPECIFIED",
"SUCCEEDED",
"IN_PROGRESS",
"FAILED",
"NOT_FOUND"
],
"enumDescriptions": [
"The default value.",
"The upload succeeded.",
"The upload is currently being processed.",
"The upload failed.",
"Used as the value of `lastAsyncUploadState` in a `fetchStatus` response indicating that an upload attempt was not found."
],
"readOnly": true,
"type": "string"
},
"name": {
"description": "The name of the requested item.",
"type": "string"
},
"publicKey": {
"description": "The public key of the item, which may be generated by the store.",
"type": "string"
},
"publishedItemRevisionStatus": {
"$ref": "ItemRevisionStatus",
"description": "Output only. Status of the current published revision of the item. Will be unset if the item is not published.",
"readOnly": true
},
"submittedItemRevisionStatus": {
"$ref": "ItemRevisionStatus",
"description": "Status of the item revision submitted to be published. Will be unset if the item has not been submitted for publishing since the last successful publish."
},
"takenDown": {
"description": "If true, the item has been taken down for a policy violation. Check the developer dashboard for details.",
"type": "boolean"
},
"warned": {
"description": "If true, the item has been warned for a policy violation and will be taken down if not resolved. Check the developer dashboard for details.",
"type": "boolean"
}
},
"type": "object"
},
"ItemRevisionStatus": {
"description": "Details on the status of an item revision.",
"id": "ItemRevisionStatus",
"properties": {
"distributionChannels": {
"description": "Details on the package of the item",
"items": {
"$ref": "DistributionChannel"
},
"type": "array"
},
"state": {
"description": "Output only. Current state of the item",
"enum": [
"ITEM_STATE_UNSPECIFIED",
"PENDING_REVIEW",
"STAGED",
"PUBLISHED",
"PUBLISHED_TO_TESTERS",
"REJECTED",
"CANCELLED"
],
"enumDescriptions": [
"Default value. This value is unused.",
"The item is pending review.",
"The item has been approved and is ready to be published.",
"The item is published publicly.",
"The item is published to trusted testers.",
"The item has been rejected for publishing.",
"The item submission has been cancelled."
],
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"PublishItemRequest": {
"description": "Request message for PublishItem.",
"id": "PublishItemRequest",
"properties": {
"deployInfos": {
"description": "Optional. Additional deploy information including the desired initial percentage rollout. Defaults to the current value saved in the developer dashboard if unset.",
"items": {
"$ref": "DeployInfo"
},
"type": "array"
},
"publishType": {
"description": "Optional. Use this to control if the item is published immediately on approval or staged for publishing in the future. Defaults to `DEFAULT_PUBLISH` if unset.",
"enum": [
"PUBLISH_TYPE_UNSPECIFIED",
"DEFAULT_PUBLISH",
"STAGED_PUBLISH"
],
"enumDescriptions": [
"Default value. This is the same as DEFAULT_PUBLISH.",
"The submission will be published immediately after being approved.",
"After approval the submission will be staged and can then be published by the developer."
],
"type": "string"
},
"skipReview": {
"description": "Optional. Whether to attempt to skip item review. The API will validate if the item qualifies and return a validation error if the item requires review. Defaults to `false` if unset.",
"type": "boolean"
}
},
"type": "object"
},
"PublishItemResponse": {
"description": "Response message for `PublishItem`.",
"id": "PublishItemResponse",
"properties": {
"itemId": {
"description": "Output only. The ID of the item.",
"readOnly": true,
"type": "string"
},
"name": {
"description": "The name of the item that was submitted",
"type": "string"
},
"state": {
"description": "Output only. The current state of the submission.",
"enum": [
"ITEM_STATE_UNSPECIFIED",
"PENDING_REVIEW",
"STAGED",
"PUBLISHED",
"PUBLISHED_TO_TESTERS",
"REJECTED",
"CANCELLED"
],
"enumDescriptions": [
"Default value. This value is unused.",
"The item is pending review.",
"The item has been approved and is ready to be published.",
"The item is published publicly.",
"The item is published to trusted testers.",
"The item has been rejected for publishing.",
"The item submission has been cancelled."
],
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"SetPublishedDeployPercentageRequest": {
"description": "Request message for SetPublishedDeployPercentage.",
"id": "SetPublishedDeployPercentageRequest",
"properties": {
"deployPercentage": {
"description": "Required. Unscaled percentage value for the publised revision (nonnegative number between 0 and 100). It must be larger than the existing target percentage.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"SetPublishedDeployPercentageResponse": {
"description": "Response message for `SetPublishedDeployPercentage`.",
"id": "SetPublishedDeployPercentageResponse",
"properties": {},
"type": "object"
},
"UploadItemPackageRequest": {
"description": "Request message for UploadItemPackage.",
"id": "UploadItemPackageRequest",
"properties": {},
"type": "object"
},
"UploadItemPackageResponse": {
"description": "Response message for `UploadItemPackage`.",
"id": "UploadItemPackageResponse",
"properties": {
"crxVersion": {
"description": "The extension version provided in the manifest of the uploaded package. This will not be set if the upload is still in progress (`upload_state` is `UPLOAD_IN_PROGRESS`).",
"type": "string"
},
"itemId": {
"description": "Output only. The ID of the item the package was uploaded to.",
"readOnly": true,
"type": "string"
},
"name": {
"description": "The name of the item the package was uploaded to.",
"type": "string"
},
"uploadState": {
"description": "Output only. The state of the upload. If `upload_state` is `UPLOAD_IN_PROGRESS`, you can poll for updates using the fetchStatus method.",
"enum": [
"UPLOAD_STATE_UNSPECIFIED",
"SUCCEEDED",
"IN_PROGRESS",
"FAILED",
"NOT_FOUND"
],
"enumDescriptions": [
"The default value.",
"The upload succeeded.",
"The upload is currently being processed.",
"The upload failed.",
"Used as the value of `lastAsyncUploadState` in a `fetchStatus` response indicating that an upload attempt was not found."
],
"readOnly": true,
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Chrome Web Store API",
"version": "v2",
"version_module": true
}