Properties
| Name | Type | Description |
|---|---|---|
| id | string | The product ID. |
| title | string | The product's title. |
| description | string | The product's description. |
| price | string | The product's price, including currency ([ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)). |
| link | string | The product's URL. |
| image_link | string | The product's image URL. |
| item_group_id | stringnull | The product's item group ID. |
| sale_price | stringnull | The product's sale price, including currency ([ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)). |
| sale_price_effective_date | stringnull | 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 | stringnull | The merchant's product cost, including currency ([ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)). |
| mobile_link | stringnull | The product's mobile product landing page URL. |
| platform_specific_link | objectnull | Map of platform to platform-specific URL. |
| lifestyle_image_link | stringnull | The product's image URL. |
| additional_image_links | arraynull | The product's additional image URLs. |
| product_type | stringnull | The product's merchant-defined category. |
| product_detail | stringnull | The product's details. |
| product_highlight | stringnull | The product's highlight. |
| google_product_category | stringnull | 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 | stringnull | The manufacturer brand. |
| gtin | stringnull | The product's Global Trade Item Number (GTIN). |
| mpn | stringnull | The product's Manufacturer Part Number (MPN). |
| size | stringnull | The product size. |
| size_type | stringnull | The size measurement system. |
| condition | stringnull | The product's condition. |
| color | stringnull | The product's color. |
| gender | stringnull | The gender for which the product is intended. |
| material | stringnull | The product's dominant material. |
| pattern | stringnull | The product's visible pattern. |
| age_group | stringnull | The target age group. |
| adult | booleannull | Whether the product is intended for adults. |
| is_bundle | booleannull | Whether the product is a part of a bundle. |
| custom_label_0 | stringnull | Custom text assigned to a product. Enables filtering and selection of products. |
| custom_label_1 | stringnull | Custom text assigned to a product. Enables filtering and selection of products. |
| custom_label_2 | stringnull | Custom text assigned to a product. Enables filtering and selection of products. |
| custom_label_3 | stringnull | Custom text assigned to a product. Enables filtering and selection of products. |
| custom_label_4 | stringnull | Custom text assigned to a product. Enables filtering and selection of products. |
| custom_number_0 | integernull | Custom integer assigned to a product. Enables filtering and selection of products. |
| custom_number_1 | integernull | Custom integer assigned to a product. Enables filtering and selection of products. |
| custom_number_2 | integernull | Custom integer assigned to a product. Enables filtering and selection of products. |
| custom_number_3 | integernull | Custom integer assigned to a product. Enables filtering and selection of products. |
| custom_number_4 | integernull | Custom integer assigned to a product. Enables filtering and selection of products. |
| expiration_date | stringnull | The product's expiration date. |
| average_review_rating | stringnull | The average customer review rating. |
| number_of_ratings | integernull | The number of customer reviews. |
| availability | object | |
| object | ||
| created_at | object | |
| modified_at | object |
JSON Schema
{
"$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."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/reddit-components-schema-product"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.