# Update a Product using identifier

Make changes to a product, always use ?identifier= in url param to identify the product uniquely
Any blank parameter deletes an old value, any unspecified parameter does nothing

Endpoint: PATCH /products
Version: 20260701
Security: X-API-KEY, Authorization

## Request fields (application/json):

  - `title` (string, required)
    The name of the product: e.g. Strong Coffee

  - `description` (string)
    Description of the product: e.g. 'The strongest coffee in the world'

  - `identifier` (string)
    Unique Identifier for the Product

  - `listName` (string)

  - `id` (integer)
    The uberall unique id for the product

  - `price` (integer)
    Price of the product in cents: e.g. '1500' for 15 €

  - `currency` (object)
    Currency used for prices in ISO-4217: e.g. EUR, USD, CHF

  - `category` (string)
    A category the product belongs to: e.g. 'Coffee'
    Example: Coffee

  - `video` (object)
    A video about the product

  - `video.id` (integer)
    Identifier of the video in our system

  - `video.url` (string)
    Url of the video

  - `video.description` (string)
    Text description of the Video

  - `video.type` (string)
    Video Platform. Values: [YOUTUBE, VIMEO]
    Enum: "YOUTUBE", "VIMEO", "UBERALL"

  - `unit` (string)
    A unit of measure, e.g. 'per kg'
    Example: per kg

  - `url` (string)
    A valid page url with more details about the product

  - `priceMax` (integer)
    Maximum price if you want to use a price range for the product

  - `image` (object)
    Image of the product (use the Image object format)

  - `image.id` (integer)
    The uberall unique id for the image

  - `image.url` (string, required)
    Image url

  - `image.type` (string, required)
    The image type, one of [LOGO, MAIN, IMAGE]
    Enum: "LOGO", "MAIN", "IMAGE"

  - `image.description` (string)
    Description of the image

  - `image.uid` (string, required)
    user identifier of the image

## Response 200 fields (*/*):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `warnings` (array)
    (optional) Holds further warnings

  - `response` (object, required)
    The actual response object of the response

## Response 400 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 401 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 403 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 404 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

## Response 409 fields (application/json):

  - `status` (string, required)
    Enum: "SUCCESS", "PENDING", "QUOTA_LIMIT_EXCEED", "NOT_AUTHORIZED", "FORBIDDEN", "BAD_ACCESS_TOKEN", "BAD_PRIVATE_KEY", "BAD_PUBLIC_KEY", "MISSING_PARAMETER", "INVALID_PARAMETER", "WRONG_PARAMETER_TYPE", "CONFLICT", "RESOURCE_LOCKED", "SERVER_ERROR", "ERROR", "NOT_FOUND", "BAD_REQUEST", "USER_ERROR", "PARTIAL_ERROR", "SERVICE_TEMPORARILY_UNAVAILABLE"

  - `message` (string)
    (optional) Holds further information about the response

  - `errorCode` (string)
    Enum: "NORMALIZATION_FAILED", "DATA_CORRUPTED", "INVALID_INPUT", "NOT_SYNCABLE", "PAYMENT_FAILED", "FREE_TIER_REACHED", "LIMIT_REACHED", "INACTIVE", "UNKNOWN", "IDENTIFIER_NOT_UNIQUE", "ACCOUNT_WAITING_FOR_AUTO_PAGE_SELECT", "NO_ACCOUNT_CONNECTED", "NO_PAGE_SELECTED", "PAGE_NOT_CREATED", "PAGE_IN_REVIEW", "PAGE_CLAIMED_BY_OTHERS", "OVERLAPPING_SOCIALPOST", "TOO_MANY_REPLIES", "REPLY_TOO_LONG", "DEPRECATED"

  - `response` (object)
    (optional) The actual response object of the response

