# Product IDs

Here are the different kinds of product IDs in the Content API for Shopping:

Offer ID
:   An `offerId` is a string assigned to a product by a merchant. This ID
    represents an individual product.
:   `offerId` is unique to the set of offers in the Merchant Center database, and
    is usually a numeric sequential number.
:   `offerId` can be an internal SKU number that a merchant assigns to the product.

REST ID
:   A REST ID is the unique identifier for a product assigned by Google.
:   REST ID is the `productId` for REST API calls.

:   REST IDs are aggregates with the format `online:en:label:1111111111`. The
    REST ID consists of the following 4 parts, separated by colons:

    1. Channel ("online" or "local")
    2. Content Language (using the 2-letter designation, for example `en` or `fr`)
    3. Feed label (might be the two-letter code for the feed's target country, for example `US` or `FR`)
    4. Offer ID

:   You put this together as `channel:contentLanguage:feedLabel:offerId`, for
    example, `online:en:US:1111111111`.

External Seller ID (Marketplaces)

:   [Marketplaces](https://support.google.com/merchants/answer/6363319)
    must assign an `external_seller_id` to offers uploaded to a multi-seller
    account. This field represents an individual seller.

    `external_seller_id` values are case-sensitive, and must meet the following
    criteria:

    - 1-50 characters in length
    - Only alphanumeric ASCII characters, and underscore (_), hyphen (-), period (.), and tilde (\~)

    This isn't the same as the internal
    [`seller_id`](https://developers.google.com/shopping-content/reference/rest/v2.1/accounts) field.

The following table summarizes some of the IDs that can be associated with a
product:

| Attribute | Description | Example | Notes |
|---|---|---|---|
| `offerId` | An ID assigned to a product by a merchant. | `1111111111` | String data type, unique identifier for a product's offer. |
| REST ID | An ID assigned to a product by Google. In the format `channel:contentLanguage:feedLabel:offerId`. | `online:en:label:1111111111` | Full ID including `offerId`. |
| `productId` | Used to refer to the REST ID in API calls. | `online:en:label:1111111111` | This is the REST ID of a product. |
| `id` | Same value as REST ID and `productId`. | `online:en:label:1111111111` | Used inside JSON body of a product to refer to its `productId`. |
| `external_seller_id` | A seller ID chosen by the Marketplace. | `example-Seller1` | Required for multi-seller accounts. Must be 1-50 characters. Case-sensitive. Digits, and special characters _, -, ., and \~ are accepted. |