{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/reddit/json-schema/reddit-components-schema-product-schema.json",
  "title": "Product",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/reddit-ads-api-openapi.yml#/components/schemas/components_schema_product",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The product ID.",
      "minLength": 1
    },
    "title": {
      "type": "string",
      "description": "The product's title.",
      "minLength": 1
    },
    "description": {
      "type": "string",
      "description": "The product's description.",
      "minLength": 1
    },
    "price": {
      "type": "string",
      "description": "The product's price, including currency ([ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)).",
      "minLength": 1
    },
    "link": {
      "type": "string",
      "description": "The product's URL."
    },
    "image_link": {
      "type": "string",
      "description": "The product's image URL."
    },
    "item_group_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's item group ID."
    },
    "sale_price": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's sale price, including currency ([ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)).",
      "minLength": 1
    },
    "sale_price_effective_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "The date range when `sale_price` is effective ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)). Provide 2 datetime values with time zone, separated by a forward slash (`/`)."
    },
    "cost_of_goods_sold": {
      "type": [
        "string",
        "null"
      ],
      "description": "The merchant's product cost, including currency ([ISO 4217](https://www.iso.org/iso-4217-currency-codes.html))."
    },
    "mobile_link": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's mobile product landing page URL."
    },
    "platform_specific_link": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": false,
      "properties": {
        "android": {
          "type": [
            "string",
            "null"
          ],
          "description": "The URL of the product for Android."
        },
        "ios": {
          "type": [
            "string",
            "null"
          ],
          "description": "The URL of the product for iOS."
        }
      },
      "description": "Map of platform to platform-specific URL."
    },
    "lifestyle_image_link": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's image URL."
    },
    "additional_image_links": {
      "type": [
        "array",
        "null"
      ],
      "description": "The product's additional image URLs.",
      "items": {
        "type": "string"
      }
    },
    "product_type": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's merchant-defined category."
    },
    "product_detail": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's details."
    },
    "product_highlight": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's highlight."
    },
    "google_product_category": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's Google product category. [See the full list of categories](https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt)."
    },
    "brand": {
      "type": [
        "string",
        "null"
      ],
      "description": "The manufacturer brand."
    },
    "gtin": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's Global Trade Item Number (GTIN)."
    },
    "mpn": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's Manufacturer Part Number (MPN)."
    },
    "size": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product size."
    },
    "size_type": {
      "type": [
        "string",
        "null"
      ],
      "description": "The size measurement system."
    },
    "condition": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's condition."
    },
    "color": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's color."
    },
    "gender": {
      "type": [
        "string",
        "null"
      ],
      "description": "The gender for which the product is intended."
    },
    "material": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's dominant material."
    },
    "pattern": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product's visible pattern."
    },
    "age_group": {
      "type": [
        "string",
        "null"
      ],
      "description": "The target age group."
    },
    "adult": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Whether the product is intended for adults."
    },
    "is_bundle": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Whether the product is a part of a bundle."
    },
    "custom_label_0": {
      "type": [
        "string",
        "null"
      ],
      "description": "Custom text assigned to a product. Enables filtering and selection of products."
    },
    "custom_label_1": {
      "type": [
        "string",
        "null"
      ],
      "description": "Custom text assigned to a product. Enables filtering and selection of products."
    },
    "custom_label_2": {
      "type": [
        "string",
        "null"
      ],
      "description": "Custom text assigned to a product. Enables filtering and selection of products."
    },
    "custom_label_3": {
      "type": [
        "string",
        "null"
      ],
      "description": "Custom text assigned to a product. Enables filtering and selection of products."
    },
    "custom_label_4": {
      "type": [
        "string",
        "null"
      ],
      "description": "Custom text assigned to a product. Enables filtering and selection of products."
    },
    "custom_number_0": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Custom integer assigned to a product. Enables filtering and selection of products."
    },
    "custom_number_1": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Custom integer assigned to a product. Enables filtering and selection of products."
    },
    "custom_number_2": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Custom integer assigned to a product. Enables filtering and selection of products."
    },
    "custom_number_3": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Custom integer assigned to a product. Enables filtering and selection of products."
    },
    "custom_number_4": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Custom integer assigned to a product. Enables filtering and selection of products."
    },
    "expiration_date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "The product's expiration date."
    },
    "average_review_rating": {
      "type": [
        "string",
        "null"
      ],
      "description": "The average customer review rating."
    },
    "number_of_ratings": {
      "type": [
        "integer",
        "null"
      ],
      "description": "The number of customer reviews."
    },
    "availability": {
      "$ref": "#/$defs/components_enums_product_availability_status"
    },
    "reddit": {
      "type": "object",
      "additionalProperties": false,
      "readOnly": true,
      "properties": {
        "id": {
          "type": "string",
          "description": "The Reddit-assigned product ID."
        },
        "catalog_id": {
          "type": "string",
          "description": "The product catalog ID."
        },
        "image_link": {
          "type": [
            "string",
            "null"
          ],
          "description": "The product's Reddit-hosted image URL."
        },
        "approval_decision": {
          "type": "string",
          "description": "The product's approval status.",
          "enum": [
            "PENDING",
            "APPROVED",
            "REJECTED"
          ]
        },
        "issues": {
          "type": [
            "array",
            "null"
          ],
          "description": "The product issues.",
          "items": {
            "$ref": "#/$defs/components_schema_product_issue"
          }
        }
      }
    },
    "created_at": {
      "$ref": "#/$defs/components_schema_created_at"
    },
    "modified_at": {
      "$ref": "#/$defs/components_schema_modified_at"
    }
  },
  "$defs": {
    "components_enums_catalog_product_issue_code": {
      "type": "string",
      "description": "The issue code encountered in the catalog product.",
      "enum": [
        "INVALID_ADDITIONAL_IMAGE_LINKS",
        "INVALID_SALE_PRICE",
        "INVALID_SALE_PRICE_EFFECTIVE_DATE",
        "INVALID_EXPIRATION_DATE",
        "IMAGE_PROCESSING_ERROR",
        "IMAGE_REJECTED",
        "LOW_IMAGE_QUALITY",
        "INVALID_CUSTOM_LABEL_0",
        "INVALID_CUSTOM_LABEL_1",
        "INVALID_CUSTOM_LABEL_2",
        "INVALID_CUSTOM_LABEL_3",
        "INVALID_CUSTOM_LABEL_4",
        "INVALID_GOOGLE_PRODUCT_CATEGORY",
        "INVALID_PRODUCT_TYPE",
        "INVALID_BRAND",
        "INVALID_GTIN",
        "INVALID_MPN",
        "INVALID_ITEM_GROUP_ID",
        "INVALID_COST_OF_GOODS_SOLD",
        "INVALID_AVAILABILITY",
        "INVALID_MOBILE_LINK",
        "INVALID_PLATFORM_SPECIFIC_LINK",
        "INVALID_AVERAGE_REVIEW_RATING",
        "INVALID_NUMBER_OF_RATINGS",
        "INVALID_CONDITION",
        "INVALID_AGE_GROUP",
        "INVALID_GENDER",
        "INVALID_COLOR",
        "INVALID_SIZE",
        "INVALID_SIZE_TYPE",
        "INVALID_MATERIAL",
        "INVALID_PATTERN",
        "INVALID_CUSTOM_NUMBER_0",
        "INVALID_CUSTOM_NUMBER_1",
        "INVALID_CUSTOM_NUMBER_2",
        "INVALID_CUSTOM_NUMBER_3",
        "INVALID_CUSTOM_NUMBER_4",
        "INVALID_PRODUCT_DETAIL",
        "INVALID_PRODUCT_HIGHLIGHT",
        "INVALID_LIFESTYLE_IMAGE_LINK",
        "INVALID_IS_BUNDLE",
        "INCOMPATIBLE_WITH_FUTURE_RELEASE"
      ]
    },
    "components_enums_product_availability_status": {
      "type": [
        "string",
        "null"
      ],
      "description": "The product availability.",
      "enum": [
        "BACKORDER",
        "IN_STOCK",
        "OUT_OF_STOCK",
        "PREORDER",
        null
      ]
    },
    "components_schema_created_at": {
      "description": "When this entity was created ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)).",
      "type": "string",
      "format": "date-time",
      "readOnly": true
    },
    "components_schema_modified_at": {
      "title": "Modified At",
      "description": "When this entity was last changed ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)).",
      "type": "string",
      "format": "date-time",
      "readOnly": true
    },
    "components_schema_product_issue": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "field": {
          "type": "string",
          "description": "The product field where the issue occurred.",
          "minLength": 2
        },
        "severity": {
          "type": "string",
          "description": "The issue severity.",
          "enum": [
            "WARNING",
            "CRITICAL"
          ]
        },
        "code": {
          "description": "The issue code.",
          "$ref": "#/$defs/components_enums_catalog_product_issue_code"
        },
        "message": {
          "type": "string",
          "description": "The human-readable message describing this issue."
        }
      }
    }
  }
}