--- sidebar_position: 1 --- # Content API The Content Integration API lets you create, update, and monitor product listings on noon programmatically. It covers the full product lifecycle — from submitting a SKU and its category attributes to tracking QC approval — and is designed for sellers and integrators managing catalogs at scale across noon's bilingual storefronts. This page is an overview. To make your first API call, see the [Content API Quickstart][content-quickstart]. ## What you can do - Discover valid category codes and the exact attributes required for each category before submitting any content - Create single-SKU products or multi-size product groups with a single call - Update existing listings without re-creating them — noon uses your `partner_sku` to determine create vs. update automatically - Submit bilingual content (English and Arabic) and track completeness and QC status independently per language - Identify exactly why a listing is not yet live: missing attributes, invalid values, image review failures, or QC rejections - Resubmit corrected content after a QC rejection to move a product from inactive to active ## Who should use this API Use this API if: - You manage a product catalog in an ERP, PIM, or similar system and need to sync listings to noon without manual portal work - You are onboarding a large number of SKUs and need to track each product's completeness and approval status programmatically - You need per-product visibility into content gaps, image review outcomes, and QC state in real time If you only need to list a small number of products occasionally, use the noon Partner Portal directly — see the [Product Listing Policy][product-listing-guide] for a portal walkthrough. ## Key concepts **`sku_parent`** — noon's internal identifier for a product, returned by `UpsertProduct`. All size variants of a product share one `sku_parent`. Use it as the handle for all subsequent calls to `GetContent`. **`partner_sku`** — your own identifier for a specific variant (e.g., a particular size). Must be globally unique across all your products. noon uses it to decide whether a call creates a new product or updates an existing one. **Category code** — a three-segment path in the format `family-product_type-product_subtype` (for example, `apparel-shoes-sneakers`). Required by both `ListCategoryAttributes` and `UpsertProduct`. Use `ListCategories` to discover valid codes. **Content completeness** — the percentage of a category's mandatory attributes that are present and valid for a product. A product cannot enter QC review until completeness reaches 100%. `GetContent` reports this as a percentage alongside lists of missing and invalid attributes. **QC (quality control)** — a noon review that starts only after content completeness reaches 100%. QC status progresses as follows: `QC_STATUS_NOT_ELIGIBLE` (completeness below 100%) → `QC_STATUS_PENDING` (under review) → `QC_STATUS_APPROVED` (listing goes live) or `QC_STATUS_REJECTED` (fix the reported reasons and resubmit). **Image review** — each submitted image is reviewed independently. Review status values: `REVIEW_STATUS_PENDING` (under review), `REVIEW_STATUS_VALID` (passed), `REVIEW_STATUS_INVALID` (failed — `issues` explains why). Visibility values: `VISIBILITY_STATUS_VISIBLE` (shown on the storefront), `VISIBILITY_STATUS_HIDDEN` (not shown). A product needs at least one image that is both `REVIEW_STATUS_VALID` and `VISIBILITY_STATUS_VISIBLE` before it can go live. ## Key operations | Operation | What it does | Guide | Reference | |---|---|---|---| | `ListCategories` | Returns all valid category codes in the catalog | [Quickstart][content-quickstart] | [Reference][content-list-categories-api] | | `ListCategoryAttributes` | Returns required and optional attributes for a category, with validation rules per attribute type | [Guide][content-discover-attributes] | [Reference][content-list-category-attributes-api] | | `UpsertProduct` | Creates or updates a product and its size variants; returns `sku_parent` | [Guide][content-submit-product] | [Reference][content-upsert-product-api] | | `GetContent` | Returns current content, image review status, and per-language completeness and QC status for a product | [Guide][content-track-and-fix] | [Reference][content-get-content-api] | ## Next steps - [Content API Quickstart][content-quickstart] — make your first API call in minutes - [Go Live: Full Product Onboarding][content-go-live] — end-to-end walkthrough from discovery to active listing - [Product Listing Policy][product-listing-guide] — noon's content requirements and listing rules for products - [ListCategories Reference][content-list-categories-api] — full request and response schema