You can use the [`productstatuses`](https://developers.google.com/shopping-content/reference/rest/v2.1/productstatuses) resource
to view the detailed status of your Shopping products.

See [product issues](https://developers.google.com/shopping-content/guides/product-issues)
for details of common issues.

Merchants are responsible for complying with the [Shopping
ads](https://support.google.com/merchants/answer/6149970) and [free
listings](https://support.google.com/merchants/answer/9261529) policies. Google
Shopping reserves the right to enforce these policies and respond appropriately
if we find content or behavior that violates these policies.

## Requirements

You must do the following to see product statuses:

- Enroll your account in a destination.
- Provide a valid country code in one of the following:
  - The `feedLabel` field.
  - The `shipping` field.
  - At the feed level.
  - Your account's shipping settings.

## Get a product's status

Use [`productstatuses.get`](https://developers.google.com/shopping-content/reference/rest/v2.1/productstatuses/get) to view the
status of a product.

You can use the [`destinations`](https://developers.google.com/shopping-content/guides/productstatuses#destinations) parameter in `get` and `list` requests to view issues for a specific destination. If you don't specify a
destination, issues from all eligible destinations are returned.

Here's a sample `get` request, with optional query parameters:

    GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantID}/productstatuses/{productId}?destinations=Shopping&fields=productId%2Ctitle

All responses from `productstatuses.get` include the following fields:

- `kind`: Value is always `content#productStatus`.
- `creationDate`: The date that the product was created.
- `lastUpdateDate`: The last time that the product was updated.
- `googleExpirationDate`: The date when the product expires.
- `productId`: The REST ID of the product.
- `title`: The title of the product.
- `link`: The URL link of the product.
- [`destinationStatuses`](https://developers.google.com/shopping-content/guides/productstatuses#destinations): The status of the product in each destination and country.

You'll only see the
[`itemLevelIssues`](https://developers.google.com/shopping-content/guides/productstatuses#item-level_issues)
field in the response if the product has item-level issues at the time of your
request.

Here's a sample JSON response:

> [!NOTE]
> **Note:** Some of the names for product destinations (Shopping Actions, Surfaces across Google, Local surfaces across Google) have been updated (now Buy on Google listings, Free listings, Free local listings). The `productstatuses.get` method only returns the old values.

    {
    "kind": "content#productStatus",
    "productId": "online:en:US:63",
    "title": "Third Product",
    "link": "http://examplemenc.com/",
    "destinationStatuses": [
     {
       "destination": "Shopping",
       "status": "disapproved",
       "disapprovedCountries": [
                "US", "UK"
       ]
     },
     {
       "destination": "ShoppingActions",
       "status": "disapproved",
       "disapprovedCountries": [
                "US"
       ]
     },
     {
       "destination": "SurfacesAcrossGoogle",
       "status": "disapproved",
       "disapprovedCountries": [
                "US"
       ]
     }
    ],
    "itemLevelIssues": [
     {
      "code": "strong_id_inaccurate",
      "servability": "disapproved",
      "resolution": "merchant_action",
      "attributeName": "mpn",
      "destination": "Shopping",
      "description": "Incorrect product identifier [mpn]",
      "detail": "Use the manufacturer's product identifiers (GTIN, brand, MPN)",
      "documentation": "https://support.google.com/merchants/answer/160161",
      "applicableCountries": [
                "US", "UK"
      ]
     },
     {
      "code": "image_link_internal_error",
      "servability": "disapproved",
      "resolution": "merchant_action",
      "attributeName": "image link",
      "destination": "Shopping",
      "description": "Processing failed [image link]",
      "detail": "Wait for the product image to be crawled again (up to 3 days)",
      "documentation": "https://support.google.com/merchants/answer/6240184",
      "applicableCountries": [
                "US, UK"
      ]
     },
     {
      "code": "landing_page_error",
      "servability": "disapproved",
      "resolution": "merchant_action",
      "attributeName": "link",
      "destination": "Shopping",
      "description": "Unavailable desktop landing page",
      "detail": "Update your website or landing page URL to enable access from desktop devices",
      "documentation": "https://support.google.com/merchants/answer/6098155",
      "applicableCountries": [
                "US", "UK"
      ]
     },
     {
      "code": "missing_condition_microdata",
      "servability": "unaffected",
      "resolution": "merchant_action",
      "destination": "Shopping",
      "description": "Missing or invalid data [condition]",
      "detail": "Add valid structured data markup to your landing page",
      "documentation": "https://support.google.com/merchants/answer/6183460",
      "applicableCountries": [
                "US", "UK"
      ]
     },
     {
      "code": "mobile_landing_page_error",
      "servability": "disapproved",
      "resolution": "merchant_action",
      "attributeName": "link",
      "destination": "Shopping",
      "description": "Unavailable mobile landing page",
      "detail": "Update your website or landing page URL to enable access from mobile devices",
      "documentation": "https://support.google.com/merchants/answer/6098296",
      "applicableCountries": [
                "US", "UK"
      ]
     }
    ],
    "creationDate": "2019-02-15T20:30:15Z",
    "lastUpdateDate": "2019-02-26T16:40:11Z",
    "googleExpirationDate": "2019-03-28T16:40:11Z"
    }

## List all product statuses

Use [`productstatuses.list`](https://developers.google.com/shopping-content/reference/rest/v2.1/productstatuses/list) to view all your products and their statuses.

You can use the following parameters to refine your query:

- `destinations`: The destination to view statuses for.
- `pageToken`: Used to get subsequent pages of results. Every page has a `nextPageToken` you can use to get the next page in the sequence.
- `maxResults`: The maximum number of results per page.

Here's a sample `list` request with optional query parameters:

    GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantID}/productstatuses?destinations=Shopping&maxResults=3&pageToken=5108b52782905aa9

Here's a sample JSON response:

    {
    "kind": "content#productstatusesListResponse",
    "nextPageToken": "632fd090c95712c6",
    "resources": [
     {
       "kind": "content#productStatus",
       "productId": "online:en:US:online-en-US-GGL614",
       "title": "Green Headphones",
       "link": "https://example.com/green-headphones/",
       "destinationStatuses": [
         {
           "destination": "Shopping",
           "status": "disapproved",
           "disapprovedCountries": [
                "US", "UK"
           ]
         },
         {
           "destination": "ShoppingActions",
           "status": "disapproved",
           "disapprovedCountries": [
                "US"
           ]
         },
         {
           "destination": "SurfacesAcrossGoogle",
           "status": "disapproved",
           "disapprovedCountries": [
                "US"
           ]
         }
       ],
       "itemLevelIssues": [
         {
           "code": "mobile_landing_page_crawling_not_allowed",
           "servability": "disapproved",
           "resolution": "merchant_action",
           "attributeName": "link",
           "destination": "Shopping",
           "description": "Mobile page not crawlable due to robots.txt",
           "detail": "Update your robots.txt file to allow user-agents \"Googlebot\" and \"Googlebot-Image\" to crawl your site",
           "documentation": "https://support.google.com/merchants/answer/6098296",
           "applicableCountries": [
                "US"
           ]
         },
         {
           "code": "pending_initial_policy_review",
           "servability": "disapproved",
           "resolution": "pending_processing",
           "destination": "Shopping",
           "description": "Pending initial review",
           "documentation": "https://support.google.com/merchants/answer/2948694",
           "applicableCountries": [
                "US, UK"
           ]
         },
         {
           "code": "ambiguous_gtin",
           "servability": "unaffected",
           "resolution": "merchant_action",
           "attributeName": "gtin",
           "destination": "Shopping",
           "description": "Ambiguous value [gtin]",
           "detail": "Use the full GTIN. Include leading zeroes, and use the full UPC, EAN, JAN, ISBN-13, or ITF-14.",
           "documentation": "https://support.google.com/merchants/answer/7000891",
           "applicableCountries": [
                "US", "UK"
           ]
         }
       ],
       "creationDate": "2020-01-09T15:36:39Z",
       "lastUpdateDate": "2020-01-14T19:17:02Z",
       "googleExpirationDate": "2020-02-13T19:17:02Z"
     },
     {
      "kind": "content#productStatus",
      "productId": "online:en:US:43",
      "title": "Green shirt",
      "link": "https://example.com/shirt-green/",
      "destinationStatuses": [
       {
        "destination": "ShoppingActions",
        "status": "approved",
        "approvedCountries": [
                "US"
        ]
       },
       {
        "destination": "SurfacesAcrossGoogle",
        "status": "approved",
        "approvedCountries": [
                "US"
        ]
       }
      ],
      "creationDate": "2019-01-29T21:14:36Z",
      "lastUpdateDate": "2019-02-21T18:47:44Z",
      "googleExpirationDate": "2019-03-23T18:47:44Z"
     },
     {
      "kind": "content#productStatus",
      "productId": "online:en:US:40",
      "title": "Black hat",
      "link": "https://example.com/hat-black/",
      "destinationStatuses": [
       {
        "destination": "SurfacesAcrossGoogle",
        "status": "approved",
        "approvedCountries": [
                "US"
        ]
       }
      ],
      "creationDate": "2019-01-29T21:14:36Z",
      "lastUpdateDate": "2019-02-21T18:47:44Z",
      "googleExpirationDate": "2019-03-23T18:47:44Z"
     }
    ]
    }

The `productstatuses.list` call is safe to test in production
because it does not make any changes to your data.

## Destinations

Here are the destinations you can use for Shopping products:

- `shopping ads`: Shopping Ads products.
- `ShoppingActions`: Buy on Google products.
- `surfaces across google`: Free listings products.
- `shopping`: Local Inventory Ads products.

## Item-level issues

Each item-level issue includes the following fields:

- `code`: The error code that is used to determine the problem.
- `servability`: Indicates whether the product is shown as:
  - `disapproved`: The problem prevents the product from being shown.
  - `unaffected`: The product is still shown.
- `resolution`: Informs if the merchant can solve the issue.
- `attributeName`: The attribute name that's affected.
- `destination`: The destination that's affected.
- `description`: The description of the product.
- `detail`: Gives more information about the problem.
- `documentation`: Indicates where to find the documentation about the problem.
- `applicableCountries`: Indicates in which countries the issue affects the product.