United Natural Foods (UNFI) Products API
Product catalog and listing management
Product catalog and listing management
openapi: 3.1.0
info:
title: UNFI Supplier and Data Insights Products API
description: United Natural Foods, Inc. (UNFI) provides APIs for suppliers, retailers, and data partners to interact with UNFI's distribution network. The UNFI API suite includes the Harmony Core API for read-only access to supply chain data files, the Supplier Portal API for product catalog and order management, and EDI integration for automated procure-to-pay workflows.
version: 1.0.0
contact:
name: UNFI Supplier Support
url: https://unfinc.zendesk.com/hc/en-us
termsOfService: https://suppliers.unfi.com
servers:
- url: https://api.unfi.com/v1
description: UNFI Production API
tags:
- name: Products
description: Product catalog and listing management
paths:
/products:
get:
operationId: listProducts
summary: List Products
description: Retrieve a paginated list of products in the UNFI catalog. Supports filtering by category, brand, and certification type.
tags:
- Products
parameters:
- name: category
in: query
schema:
type: string
description: Product category filter
- name: brand
in: query
schema:
type: string
description: Brand name filter
- name: certification
in: query
schema:
type: string
enum:
- organic
- non-gmo
- kosher
- gluten-free
- vegan
description: Filter by product certification
- name: page
in: query
schema:
type: integer
default: 1
description: Page number for pagination
- name: pageSize
in: query
schema:
type: integer
default: 50
maximum: 200
description: Number of results per page
responses:
'200':
description: Product list returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ProductListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
security:
- ApiKeyAuth: []
post:
operationId: createProduct
summary: Create Product
description: Submit a new product listing to the UNFI catalog via the supplier portal.
tags:
- Products
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProductRequest'
responses:
'201':
description: Product created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
security:
- ApiKeyAuth: []
/products/{productId}:
get:
operationId: getProduct
summary: Get Product
description: Retrieve details for a specific product by its UNFI product ID.
tags:
- Products
parameters:
- name: productId
in: path
required: true
schema:
type: string
description: UNFI product identifier
responses:
'200':
description: Product details returned
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
'404':
$ref: '#/components/responses/NotFound'
'401':
$ref: '#/components/responses/Unauthorized'
security:
- ApiKeyAuth: []
put:
operationId: updateProduct
summary: Update Product
description: Update an existing product listing in the UNFI catalog.
tags:
- Products
parameters:
- name: productId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProductRequest'
responses:
'200':
description: Product updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
'404':
$ref: '#/components/responses/NotFound'
'401':
$ref: '#/components/responses/Unauthorized'
security:
- ApiKeyAuth: []
components:
schemas:
Product:
type: object
properties:
productId:
type: string
description: UNFI product identifier
upc:
type: string
description: Universal Product Code
gtin:
type: string
description: Global Trade Item Number (GS1 GDSN)
name:
type: string
brand:
type: string
description:
type: string
category:
type: string
subCategory:
type: string
certifications:
type: array
items:
type: string
enum:
- organic
- non-gmo
- kosher
- gluten-free
- vegan
- fair-trade
unitSize:
type: string
unitsPerCase:
type: integer
retailPrice:
type: number
format: double
status:
type: string
enum:
- active
- discontinued
- seasonal
Error:
type: object
properties:
code:
type: string
message:
type: string
ProductRequest:
type: object
required:
- upc
- name
- brand
- category
properties:
upc:
type: string
gtin:
type: string
name:
type: string
brand:
type: string
description:
type: string
category:
type: string
subCategory:
type: string
certifications:
type: array
items:
type: string
unitSize:
type: string
unitsPerCase:
type: integer
retailPrice:
type: number
format: double
ProductListResponse:
type: object
properties:
products:
type: array
items:
$ref: '#/components/schemas/Product'
total:
type: integer
page:
type: integer
pageSize:
type: integer
responses:
Unauthorized:
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: UNFI supplier API key