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