{
  "protocol": "rest",
  "description": "Programmatically manage your Merchant Center Accounts.",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/content": {
          "description": "Manage your product listings and accounts for Google Shopping"
        }
      }
    }
  },
  "id": "merchantapi:quota_v1beta",
  "revision": "20260415",
  "title": "Merchant API",
  "resources": {
    "accounts": {
      "resources": {
        "quotas": {
          "methods": {
            "list": {
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListQuotaGroupsResponse"
              },
              "parameters": {
                "parent": {
                  "description": "Required. The merchant account who owns the collection of method quotas Format: accounts/{account}",
                  "pattern": "^accounts/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "type": "integer",
                  "description": "Optional. The maximum number of quotas to return in the response, used for paging. Defaults to 500; values above 1000 will be coerced to 1000.",
                  "location": "query",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "Optional. Token (if provided) to retrieve the subsequent page. All other parameters must match the original call that provided the page token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "id": "merchantapi.accounts.quotas.list",
              "description": "Lists the daily call quota and usage per group for your Merchant Center account.",
              "flatPath": "quota/v1beta/accounts/{accountsId}/quotas",
              "scopes": [
                "https://www.googleapis.com/auth/content"
              ],
              "httpMethod": "GET",
              "path": "quota/v1beta/{+parent}/quotas"
            }
          }
        }
      }
    }
  },
  "ownerDomain": "google.com",
  "discoveryVersion": "v1",
  "documentationLink": "https://developers.google.com/merchant/api",
  "basePath": "",
  "kind": "discovery#restDescription",
  "rootUrl": "https://merchantapi.googleapis.com/",
  "servicePath": "",
  "batchPath": "batch",
  "schemas": {
    "ProductChange": {
      "type": "object",
      "properties": {
        "newValue": {
          "description": "The new value of the changed resource or attribute. If empty, it means that the product was deleted. Will have one of these values : (`approved`, `pending`, `disapproved`, ``)",
          "type": "string"
        },
        "reportingContext": {
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "description": "Reporting contexts that have the change (if applicable). Currently this field supports only (`SHOPPING_ADS`, `LOCAL_INVENTORY_ADS`, `YOUTUBE_SHOPPING`, `YOUTUBE_CHECKOUT`, `YOUTUBE_AFFILIATE`) from the enum value [ReportingContextEnum](/merchant/api/reference/rest/Shared.Types/ReportingContextEnum)",
          "enumDescriptions": [
            "Not specified.",
            "[Shopping ads](https://support.google.com/merchants/answer/6149970).",
            "Deprecated: Use `DEMAND_GEN_ADS` instead. [Discovery and Demand Gen ads](https://support.google.com/merchants/answer/13389785).",
            "[Demand Gen ads](https://support.google.com/merchants/answer/13389785).",
            "[Demand Gen ads on Discover surface](https://support.google.com/merchants/answer/13389785).",
            "[Video ads](https://support.google.com/google-ads/answer/6340491).",
            "[Display ads](https://support.google.com/merchants/answer/6069387).",
            "[Local inventory ads](https://support.google.com/merchants/answer/3271956).",
            "[Vehicle inventory ads](https://support.google.com/merchants/answer/11544533).",
            "[Free product listings](https://support.google.com/merchants/answer/9199328).",
            "[Free product listings on UCP checkout](https://developers.google.com/merchant/ucp).",
            "[Free local product listings](https://support.google.com/merchants/answer/9825611).",
            "[Free local vehicle listings](https://support.google.com/merchants/answer/11544533).",
            "[Youtube Affiliate](https://support.google.com/youtube/answer/13376398).",
            "[YouTube Shopping](https://support.google.com/merchants/answer/13478370).",
            "[Cloud retail](https://cloud.google.com/solutions/retail).",
            "[Local cloud retail](https://cloud.google.com/solutions/retail).",
            "[Product Reviews](https://support.google.com/merchants/answer/14620732).",
            "[Merchant Reviews](https://developers.google.com/merchant-review-feeds).",
            "YouTube Checkout ."
          ],
          "enum": [
            "REPORTING_CONTEXT_ENUM_UNSPECIFIED",
            "SHOPPING_ADS",
            "DISCOVERY_ADS",
            "DEMAND_GEN_ADS",
            "DEMAND_GEN_ADS_DISCOVER_SURFACE",
            "VIDEO_ADS",
            "DISPLAY_ADS",
            "LOCAL_INVENTORY_ADS",
            "VEHICLE_INVENTORY_ADS",
            "FREE_LISTINGS",
            "FREE_LISTINGS_UCP_CHECKOUT",
            "FREE_LOCAL_LISTINGS",
            "FREE_LOCAL_VEHICLE_LISTINGS",
            "YOUTUBE_AFFILIATE",
            "YOUTUBE_SHOPPING",
            "CLOUD_RETAIL",
            "LOCAL_CLOUD_RETAIL",
            "PRODUCT_REVIEWS",
            "MERCHANT_REVIEWS",
            "YOUTUBE_CHECKOUT"
          ]
        },
        "oldValue": {
          "type": "string",
          "description": "The old value of the changed resource or attribute. If empty, it means that the product was created. Will have one of these values : (`approved`, `pending`, `disapproved`, ``)"
        },
        "regionCode": {
          "type": "string",
          "description": "Countries that have the change (if applicable). Represented in the ISO 3166 format."
        }
      },
      "id": "ProductChange",
      "description": "The change that happened to the product including old value, new value, country code as the region code and reporting context."
    },
    "QuotaGroup": {
      "id": "QuotaGroup",
      "type": "object",
      "properties": {
        "quotaUsage": {
          "description": "Output only. The current quota usage, meaning the number of calls already made on a given day to the methods in the group. The daily quota limits reset at at 12:00 PM midday UTC.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "quotaLimit": {
          "type": "string",
          "description": "Output only. The maximum number of calls allowed per day for the group.",
          "readOnly": true,
          "format": "int64"
        },
        "name": {
          "type": "string",
          "description": "Identifier. The resource name of the quota group. Format: accounts/{account}/quotas/{group} Note: There is no guarantee on the format of {group}"
        },
        "quotaMinuteLimit": {
          "description": "Output only. The maximum number of calls allowed per minute for the group.",
          "readOnly": true,
          "format": "int64",
          "type": "string"
        },
        "methodDetails": {
          "type": "array",
          "description": "Output only. List of all methods group quota applies to.",
          "readOnly": true,
          "items": {
            "$ref": "MethodDetails"
          }
        }
      },
      "description": "The group information for methods in the Merchant API. The quota is shared between all methods in the group. Even if none of the methods within the group have usage the information for the group is returned."
    },
    "MethodDetails": {
      "description": "The method details per method in the Merchant API.",
      "type": "object",
      "properties": {
        "method": {
          "description": "Output only. The name of the method for example `products.list`.",
          "readOnly": true,
          "type": "string"
        },
        "version": {
          "description": "Output only. The API version that the method belongs to.",
          "readOnly": true,
          "type": "string"
        },
        "subapi": {
          "type": "string",
          "description": "Output only. The sub-API that the method belongs to.",
          "readOnly": true
        },
        "path": {
          "description": "Output only. The path for the method such as `products/v1/productInputs.insert`",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "MethodDetails"
    },
    "ProductStatusChangeMessage": {
      "description": "The message that the merchant will receive to notify about product status change event",
      "type": "object",
      "properties": {
        "resourceType": {
          "description": "The resource that changed, in this case it will always be `Product`.",
          "type": "string",
          "enum": [
            "RESOURCE_UNSPECIFIED",
            "PRODUCT"
          ],
          "enumDescriptions": [
            "Unspecified resource",
            "Resource type : product"
          ]
        },
        "expirationTime": {
          "description": "Optional. The product expiration time. This field will not be set if the notification is sent for a product deletion event.",
          "format": "google-datetime",
          "type": "string"
        },
        "resource": {
          "description": "The product name. Format: `accounts/{account}/products/{product}`",
          "type": "string"
        },
        "resourceId": {
          "description": "The product id.",
          "type": "string"
        },
        "account": {
          "description": "The target account that owns the entity that changed. Format : `accounts/{merchant_id}`",
          "type": "string"
        },
        "attribute": {
          "enumDescriptions": [
            "Unspecified attribute",
            "Status of the changed entity"
          ],
          "type": "string",
          "enum": [
            "ATTRIBUTE_UNSPECIFIED",
            "STATUS"
          ],
          "description": "The attribute in the resource that changed, in this case it will be always `Status`."
        },
        "changes": {
          "description": "A message to describe the change that happened to the product",
          "items": {
            "$ref": "ProductChange"
          },
          "type": "array"
        },
        "eventTime": {
          "description": "The time at which the event was generated. If you want to order the notification messages you receive you should rely on this field not on the order of receiving the notifications.",
          "format": "google-datetime",
          "type": "string"
        },
        "managingAccount": {
          "description": "The account that manages the merchant's account. can be the same as merchant id if it is standalone account. Format : `accounts/{service_provider_id}`",
          "type": "string"
        }
      },
      "id": "ProductStatusChangeMessage"
    },
    "ListQuotaGroupsResponse": {
      "description": "Response message for the ListMethodGroups method.",
      "id": "ListQuotaGroupsResponse",
      "type": "object",
      "properties": {
        "quotaGroups": {
          "type": "array",
          "description": "The methods, current quota usage and limits per each group. The quota is shared between all methods in the group. The groups are sorted in descending order based on quota_usage.",
          "items": {
            "$ref": "QuotaGroup"
          }
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      }
    }
  },
  "parameters": {
    "alt": {
      "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"
      ],
      "description": "Data format for response.",
      "type": "string",
      "default": "json",
      "location": "query"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "$.xgafv": {
      "location": "query",
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "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"
    },
    "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"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean",
      "default": "true"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    }
  },
  "ownerName": "Google",
  "version_module": true,
  "canonicalName": "Merchant",
  "mtlsRootUrl": "https://merchantapi.mtls.googleapis.com/",
  "baseUrl": "https://merchantapi.googleapis.com/",
  "fullyEncodeReservedExpansion": true,
  "version": "quota_v1beta",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "name": "merchantapi"
}
