{
  "title": "Chrome Web Store API",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "ownerName": "Google",
  "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"
        }
      }
    }
  },
  "resources": {
    "media": {
      "methods": {
        "upload": {
          "parameterOrder": [
            "name"
          ],
          "mediaUpload": {
            "maxSize": "2147483648",
            "protocols": {
              "simple": {
                "path": "/upload/v2/{+name}:upload",
                "multipart": true
              }
            },
            "accept": [
              "*/*"
            ]
          },
          "scopes": [
            "https://www.googleapis.com/auth/chromewebstore"
          ],
          "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:upload",
          "supportsMediaUpload": true,
          "httpMethod": "POST",
          "description": "Upload a new package to an existing item.",
          "id": "chromewebstore.media.upload",
          "response": {
            "$ref": "UploadItemPackageResponse"
          },
          "path": "v2/{+name}:upload",
          "request": {
            "$ref": "UploadItemPackageRequest"
          },
          "parameters": {
            "name": {
              "type": "string",
              "description": "Required. Name of the item to upload the new package to in the form `publishers/{publisherId}/items/{itemId}`",
              "pattern": "^publishers/[^/]+/items/[^/]+$",
              "location": "path",
              "required": true
            }
          }
        }
      }
    },
    "publishers": {
      "resources": {
        "items": {
          "methods": {
            "fetchStatus": {
              "httpMethod": "GET",
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:fetchStatus",
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore",
                "https://www.googleapis.com/auth/chromewebstore.readonly"
              ],
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "location": "path",
                  "description": "Required. Name of the item to retrieve the status of in the form `publishers/{publisherId}/items/{itemId}`",
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "path": "v2/{+name}:fetchStatus",
              "id": "chromewebstore.publishers.items.fetchStatus",
              "response": {
                "$ref": "FetchItemStatusResponse"
              },
              "description": "Fetch the status of an item."
            },
            "cancelSubmission": {
              "request": {
                "$ref": "CancelSubmissionRequest"
              },
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Required. Name of the item to cancel the submission of in the form `publishers/{publisherId}/items/{itemId}`",
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "location": "path",
                  "type": "string"
                }
              },
              "description": "Cancel the current active submission of an item if present. This can be used to cancel the review of a pending submission.",
              "path": "v2/{+name}:cancelSubmission",
              "id": "chromewebstore.publishers.items.cancelSubmission",
              "response": {
                "$ref": "CancelSubmissionResponse"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:cancelSubmission",
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore"
              ]
            },
            "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`.",
              "path": "v2/{+name}:publish",
              "id": "chromewebstore.publishers.items.publish",
              "response": {
                "$ref": "PublishItemResponse"
              },
              "request": {
                "$ref": "PublishItemRequest"
              },
              "parameters": {
                "name": {
                  "type": "string",
                  "location": "path",
                  "description": "Required. Name of the item in the form `publishers/{publisherId}/items/{itemId}`",
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "required": true
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:publish",
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore"
              ],
              "httpMethod": "POST"
            },
            "setPublishedDeployPercentage": {
              "httpMethod": "POST",
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v2/publishers/{publishersId}/items/{itemsId}:setPublishedDeployPercentage",
              "scopes": [
                "https://www.googleapis.com/auth/chromewebstore"
              ],
              "request": {
                "$ref": "SetPublishedDeployPercentageRequest"
              },
              "parameters": {
                "name": {
                  "required": true,
                  "description": "Required. Name of the item to update the published revision of in the form `publishers/{publisherId}/items/{itemId}`",
                  "pattern": "^publishers/[^/]+/items/[^/]+$",
                  "location": "path",
                  "type": "string"
                }
              },
              "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.",
              "path": "v2/{+name}:setPublishedDeployPercentage",
              "id": "chromewebstore.publishers.items.setPublishedDeployPercentage",
              "response": {
                "$ref": "SetPublishedDeployPercentageResponse"
              }
            }
          }
        }
      }
    }
  },
  "fullyEncodeReservedExpansion": true,
  "discoveryVersion": "v1",
  "batchPath": "batch",
  "revision": "20260414",
  "schemas": {
    "FetchItemStatusResponse": {
      "description": "Response message for `FetchItemStatus`.",
      "id": "FetchItemStatusResponse",
      "type": "object",
      "properties": {
        "takenDown": {
          "description": "If true, the item has been taken down for a policy violation. Check the developer dashboard for details.",
          "type": "boolean"
        },
        "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
        },
        "lastAsyncUploadState": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "UPLOAD_STATE_UNSPECIFIED",
            "SUCCEEDED",
            "IN_PROGRESS",
            "FAILED",
            "NOT_FOUND"
          ],
          "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.",
          "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."
          ]
        },
        "name": {
          "description": "The name of the requested item.",
          "type": "string"
        },
        "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"
        },
        "itemId": {
          "description": "Output only. The ID of the item.",
          "readOnly": true,
          "type": "string"
        },
        "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."
        },
        "publicKey": {
          "description": "The public key of the item, which may be generated by the store.",
          "type": "string"
        }
      }
    },
    "UploadItemPackageResponse": {
      "description": "Response message for `UploadItemPackage`.",
      "properties": {
        "name": {
          "description": "The name of the item the package was uploaded to.",
          "type": "string"
        },
        "itemId": {
          "description": "Output only. The ID of the item the package was uploaded to.",
          "readOnly": true,
          "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.",
          "type": "string",
          "readOnly": true,
          "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."
          ]
        },
        "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"
        }
      },
      "id": "UploadItemPackageResponse",
      "type": "object"
    },
    "ItemRevisionStatus": {
      "id": "ItemRevisionStatus",
      "type": "object",
      "properties": {
        "state": {
          "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."
          ],
          "description": "Output only. Current state of the item",
          "type": "string",
          "readOnly": true,
          "enum": [
            "ITEM_STATE_UNSPECIFIED",
            "PENDING_REVIEW",
            "STAGED",
            "PUBLISHED",
            "PUBLISHED_TO_TESTERS",
            "REJECTED",
            "CANCELLED"
          ]
        },
        "distributionChannels": {
          "items": {
            "$ref": "DistributionChannel"
          },
          "type": "array",
          "description": "Details on the package of the item"
        }
      },
      "description": "Details on the status of an item revision."
    },
    "SetPublishedDeployPercentageResponse": {
      "description": "Response message for `SetPublishedDeployPercentage`.",
      "id": "SetPublishedDeployPercentageResponse",
      "type": "object",
      "properties": {}
    },
    "UploadItemPackageRequest": {
      "description": "Request message for UploadItemPackage.",
      "properties": {},
      "id": "UploadItemPackageRequest",
      "type": "object"
    },
    "CancelSubmissionRequest": {
      "description": "Request message for CancelSubmission.",
      "properties": {},
      "id": "CancelSubmissionRequest",
      "type": "object"
    },
    "PublishItemResponse": {
      "properties": {
        "itemId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the item."
        },
        "state": {
          "type": "string",
          "readOnly": true,
          "enum": [
            "ITEM_STATE_UNSPECIFIED",
            "PENDING_REVIEW",
            "STAGED",
            "PUBLISHED",
            "PUBLISHED_TO_TESTERS",
            "REJECTED",
            "CANCELLED"
          ],
          "description": "Output only. The current state of the submission.",
          "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."
          ]
        },
        "name": {
          "description": "The name of the item that was submitted",
          "type": "string"
        }
      },
      "id": "PublishItemResponse",
      "type": "object",
      "description": "Response message for `PublishItem`."
    },
    "SetPublishedDeployPercentageRequest": {
      "description": "Request message for SetPublishedDeployPercentage.",
      "properties": {
        "deployPercentage": {
          "format": "int32",
          "type": "integer",
          "description": "Required. Unscaled percentage value for the publised revision (nonnegative number between 0 and 100). It must be larger than the existing target percentage."
        }
      },
      "id": "SetPublishedDeployPercentageRequest",
      "type": "object"
    },
    "PublishItemRequest": {
      "description": "Request message for PublishItem.",
      "properties": {
        "publishType": {
          "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."
          ],
          "enum": [
            "PUBLISH_TYPE_UNSPECIFIED",
            "DEFAULT_PUBLISH",
            "STAGED_PUBLISH"
          ],
          "type": "string",
          "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."
        },
        "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"
        },
        "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"
        }
      },
      "id": "PublishItemRequest",
      "type": "object"
    },
    "DeployInfo": {
      "description": "Deployment information for a specific release channel. Used in requests to update deployment parameters.",
      "properties": {
        "deployPercentage": {
          "description": "Required. The current deploy percentage for the release channel (nonnegative number between 0 and 100).",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "DeployInfo",
      "type": "object"
    },
    "DistributionChannel": {
      "id": "DistributionChannel",
      "type": "object",
      "properties": {
        "deployPercentage": {
          "description": "The current deploy percentage for the release channel (nonnegative number between 0 and 100).",
          "format": "int32",
          "type": "integer"
        },
        "crxVersion": {
          "description": "The extension version provided in the manifest of the uploaded package.",
          "type": "string"
        }
      },
      "description": "Deployment information for a specific release channel"
    },
    "CancelSubmissionResponse": {
      "properties": {},
      "id": "CancelSubmissionResponse",
      "type": "object",
      "description": "Response message for `CancelSubmission`."
    }
  },
  "canonicalName": "Chromewebstore",
  "rootUrl": "https://chromewebstore.googleapis.com/",
  "version_module": true,
  "name": "chromewebstore",
  "baseUrl": "https://chromewebstore.googleapis.com/",
  "mtlsRootUrl": "https://chromewebstore.mtls.googleapis.com/",
  "version": "v2",
  "servicePath": "",
  "kind": "discovery#restDescription",
  "parameters": {
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "oauth_token": {
      "location": "query",
      "description": "OAuth 2.0 token for the current user.",
      "type": "string"
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format.",
      "location": "query"
    },
    "alt": {
      "default": "json",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "description": "Data format for response.",
      "location": "query",
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ]
    },
    "key": {
      "location": "query",
      "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.",
      "type": "string"
    },
    "quotaUser": {
      "location": "query",
      "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.",
      "type": "string"
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    }
  },
  "description": "The Chrome Web Store API provides access to data about apps and extensions, as well as developer tools for managing them.",
  "id": "chromewebstore:v2",
  "basePath": "",
  "documentationLink": "https://developer.chrome.com/docs/webstore/api",
  "protocol": "rest",
  "ownerDomain": "google.com"
}
