<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="content_v2.html">Content API for Shopping</a> . <a href="content_v2.accounts.html">accounts</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#authinfo">authinfo()</a></code></p>
<p class="firstline">Returns information about the authenticated user.</p>
<p class="toc_element">
  <code><a href="#claimwebsite">claimwebsite(merchantId, accountId, overwrite=None)</a></code></p>
<p class="firstline">Claims the website of a Merchant Center sub-account. This method can only be called for multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#custombatch">custombatch(body, dryRun=None)</a></code></p>
<p class="firstline">Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.</p>
<p class="toc_element">
  <code><a href="#delete">delete(merchantId, accountId, dryRun=None)</a></code></p>
<p class="firstline">Deletes a Merchant Center sub-account. This method can only be called for multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#get">get(merchantId, accountId)</a></code></p>
<p class="firstline">Retrieves a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.</p>
<p class="toc_element">
  <code><a href="#insert">insert(merchantId, body, dryRun=None)</a></code></p>
<p class="firstline">Creates a Merchant Center sub-account. This method can only be called for multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Lists the sub-accounts in your Merchant Center account. This method can only be called for multi-client accounts.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(merchantId, accountId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(merchantId, accountId, body, dryRun=None)</a></code></p>
<p class="firstline">Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="authinfo">authinfo()</code>
  <pre>Returns information about the authenticated user.

Args:

Returns:
  An object of the form:

    {
    "kind": "content#accountsAuthInfoResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsAuthInfoResponse".
    "accountIdentifiers": [ # The account identifiers corresponding to the authenticated user.
        # - For an individual account: only the merchant ID is defined
        # - For an aggregator: only the aggregator ID is defined
        # - For a subaccount of an MCA: both the merchant ID and the aggregator ID are defined.
      {
        "aggregatorId": "A String", # The aggregator ID, set for aggregators and subaccounts (in that case, it represents the aggregator of the subaccount).
        "merchantId": "A String", # The merchant account ID, set for individual accounts and subaccounts.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="claimwebsite">claimwebsite(merchantId, accountId, overwrite=None)</code>
  <pre>Claims the website of a Merchant Center sub-account. This method can only be called for multi-client accounts.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account whose website is claimed. (required)
  overwrite: boolean, Flag to remove any existing claim on the requested website by another account and replace it with a claim from this account.

Returns:
  An object of the form:

    {
    "kind": "content#accountsClaimWebsiteResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsClaimWebsiteResponse".
  }</pre>
</div>

<div class="method">
    <code class="details" id="custombatch">custombatch(body, dryRun=None)</code>
  <pre>Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{
    "entries": [ # The request entries to be processed in the batch.
      { # A batch entry encoding a single non-batch accounts request.
        "account": { # Account data. # The account to create or update. Only defined if the method is insert or update.
            "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
            "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
            "name": "A String", # Display name for the account.
            "adultContent": True or False, # Indicates whether the merchant sells adult content.
            "id": "A String", # Merchant Center account ID.
            "websiteUrl": "A String", # The merchant's website.
            "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
            "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
              {
                "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
                "adwordsId": "A String", # Customer ID of the AdWords account.
              },
            ],
            "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
              {
                "admin": True or False, # Whether user is an admin.
                "emailAddress": "A String", # User's email address.
              },
            ],
          },
        "merchantId": "A String", # The ID of the managing account.
        "batchId": 42, # An entry ID, unique within the batch request.
        "method": "A String",
        "overwrite": True or False, # Only applicable if the method is claimwebsite. Indicates whether or not to take the claim from another account in case there is a conflict.
        "accountId": "A String", # The ID of the targeted account. Only defined if the method is get, delete or claimwebsite.
      },
    ],
  }

  dryRun: boolean, Flag to run the request in dry-run mode.

Returns:
  An object of the form:

    {
    "kind": "content#accountsCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsCustomBatchResponse".
    "entries": [ # The result of the execution of the batch requests.
      { # A batch entry encoding a single non-batch accounts response.
        "batchId": 42, # The ID of the request entry this entry responds to.
        "account": { # Account data. # The retrieved, created, or updated account. Not defined if the method was delete or claimwebsite.
            "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
            "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
            "name": "A String", # Display name for the account.
            "adultContent": True or False, # Indicates whether the merchant sells adult content.
            "id": "A String", # Merchant Center account ID.
            "websiteUrl": "A String", # The merchant's website.
            "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
            "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
              {
                "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
                "adwordsId": "A String", # Customer ID of the AdWords account.
              },
            ],
            "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
              {
                "admin": True or False, # Whether user is an admin.
                "emailAddress": "A String", # User's email address.
              },
            ],
          },
        "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
          "message": "A String", # The message of the first error in errors.
          "code": 42, # The HTTP status of the first error in errors.
          "errors": [ # A list of errors.
            { # An error returned by the API.
              "reason": "A String", # The error code.
              "domain": "A String", # The domain of the error.
              "message": "A String", # A description of the error.
            },
          ],
        },
        "kind": "content#accountsCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#accountsCustomBatchResponseEntry".
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(merchantId, accountId, dryRun=None)</code>
  <pre>Deletes a Merchant Center sub-account. This method can only be called for multi-client accounts.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account. (required)
  dryRun: boolean, Flag to run the request in dry-run mode.
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(merchantId, accountId)</code>
  <pre>Retrieves a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account. (required)

Returns:
  An object of the form:

    { # Account data.
      "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
      "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
      "name": "A String", # Display name for the account.
      "adultContent": True or False, # Indicates whether the merchant sells adult content.
      "id": "A String", # Merchant Center account ID.
      "websiteUrl": "A String", # The merchant's website.
      "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
        {
          "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
          "adwordsId": "A String", # Customer ID of the AdWords account.
        },
      ],
      "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
        {
          "admin": True or False, # Whether user is an admin.
          "emailAddress": "A String", # User's email address.
        },
      ],
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(merchantId, body, dryRun=None)</code>
  <pre>Creates a Merchant Center sub-account. This method can only be called for multi-client accounts.

Args:
  merchantId: string, The ID of the managing account. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Account data.
    "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
    "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
    "name": "A String", # Display name for the account.
    "adultContent": True or False, # Indicates whether the merchant sells adult content.
    "id": "A String", # Merchant Center account ID.
    "websiteUrl": "A String", # The merchant's website.
    "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
    "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
      {
        "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
        "adwordsId": "A String", # Customer ID of the AdWords account.
      },
    ],
    "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
      {
        "admin": True or False, # Whether user is an admin.
        "emailAddress": "A String", # User's email address.
      },
    ],
  }

  dryRun: boolean, Flag to run the request in dry-run mode.

Returns:
  An object of the form:

    { # Account data.
      "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
      "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
      "name": "A String", # Display name for the account.
      "adultContent": True or False, # Indicates whether the merchant sells adult content.
      "id": "A String", # Merchant Center account ID.
      "websiteUrl": "A String", # The merchant's website.
      "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
        {
          "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
          "adwordsId": "A String", # Customer ID of the AdWords account.
        },
      ],
      "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
        {
          "admin": True or False, # Whether user is an admin.
          "emailAddress": "A String", # User's email address.
        },
      ],
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
  <pre>Lists the sub-accounts in your Merchant Center account. This method can only be called for multi-client accounts.

Args:
  merchantId: string, The ID of the managing account. (required)
  pageToken: string, The token returned by the previous request.
  maxResults: integer, The maximum number of accounts to return in the response, used for paging.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # The token for the retrieval of the next page of accounts.
    "kind": "content#accountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsListResponse".
    "resources": [
      { # Account data.
          "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
          "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
          "name": "A String", # Display name for the account.
          "adultContent": True or False, # Indicates whether the merchant sells adult content.
          "id": "A String", # Merchant Center account ID.
          "websiteUrl": "A String", # The merchant's website.
          "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
          "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
            {
              "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
              "adwordsId": "A String", # Customer ID of the AdWords account.
            },
          ],
          "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
            {
              "admin": True or False, # Whether user is an admin.
              "emailAddress": "A String", # User's email address.
            },
          ],
        },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(merchantId, accountId, body, dryRun=None)</code>
  <pre>Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Account data.
    "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
    "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
    "name": "A String", # Display name for the account.
    "adultContent": True or False, # Indicates whether the merchant sells adult content.
    "id": "A String", # Merchant Center account ID.
    "websiteUrl": "A String", # The merchant's website.
    "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
    "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
      {
        "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
        "adwordsId": "A String", # Customer ID of the AdWords account.
      },
    ],
    "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
      {
        "admin": True or False, # Whether user is an admin.
        "emailAddress": "A String", # User's email address.
      },
    ],
  }

  dryRun: boolean, Flag to run the request in dry-run mode.

Returns:
  An object of the form:

    { # Account data.
      "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
      "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
      "name": "A String", # Display name for the account.
      "adultContent": True or False, # Indicates whether the merchant sells adult content.
      "id": "A String", # Merchant Center account ID.
      "websiteUrl": "A String", # The merchant's website.
      "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
        {
          "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
          "adwordsId": "A String", # Customer ID of the AdWords account.
        },
      ],
      "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
        {
          "admin": True or False, # Whether user is an admin.
          "emailAddress": "A String", # User's email address.
        },
      ],
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(merchantId, accountId, body, dryRun=None)</code>
  <pre>Updates a Merchant Center account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.

Args:
  merchantId: string, The ID of the managing account. (required)
  accountId: string, The ID of the account. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Account data.
    "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
    "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
    "name": "A String", # Display name for the account.
    "adultContent": True or False, # Indicates whether the merchant sells adult content.
    "id": "A String", # Merchant Center account ID.
    "websiteUrl": "A String", # The merchant's website.
    "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
    "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
      {
        "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
        "adwordsId": "A String", # Customer ID of the AdWords account.
      },
    ],
    "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
      {
        "admin": True or False, # Whether user is an admin.
        "emailAddress": "A String", # User's email address.
      },
    ],
  }

  dryRun: boolean, Flag to run the request in dry-run mode.

Returns:
  An object of the form:

    { # Account data.
      "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
      "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
      "name": "A String", # Display name for the account.
      "adultContent": True or False, # Indicates whether the merchant sells adult content.
      "id": "A String", # Merchant Center account ID.
      "websiteUrl": "A String", # The merchant's website.
      "sellerId": "A String", # Client-specific, locally-unique, internal ID for the child account.
      "adwordsLinks": [ # List of linked AdWords accounts that are active or pending approval. To create a new link request, add a new link with status active to the list. It will remain in a pending state until approved or rejected either in the AdWords interface or through the  AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
        {
          "status": "A String", # Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either active if it was approved in Google AdWords or pending if it's pending approval. Upon insertion, it represents the intended status of the link. Re-uploading a link with status active when it's still pending or with status pending when it's already active will have no effect: the status will remain unchanged. Re-uploading a link with deprecated status inactive is equivalent to not submitting the link at all and will delete the link if it was active or cancel the link request if it was pending.
          "adwordsId": "A String", # Customer ID of the AdWords account.
        },
      ],
      "users": [ # Users with access to the account. Every account (except for subaccounts) must have at least one admin user.
        {
          "admin": True or False, # Whether user is an admin.
          "emailAddress": "A String", # User's email address.
        },
      ],
    }</pre>
</div>

</body></html>