# List of products with attributes and they values in product stream

```graphql
query {
	productStream {
		pageInfo {
			hasNextPage
			endCursor
		}
		edges {
			node {
				sku
				attributeList {
					edges {
						node {
							...AttributeValue
						}
					}
				}
			}
		}
	}
}

fragment AttributeValue on AttributeValue {
	__typename
	attribute {
		code
		name {
			language
			value
		}
	}
	... on TextAttributeValue {
		textAttributeValueTranslations: translations {
			value
			language
		}
	}
	... on TextareaAttributeValue {
		textareaAttributeValueTranslations: translations {
			value
			language
		}
	}
	... on DateAttributeValue {
		dateAttributeValueTranslations: translations {
			value
			language
		}
	}
	... on UnitAttributeValue {
		unitAttribute: attribute {
			# unit might be useful in the value context
			unit {
				name
				symbol
			}
		}
		unitAttributeValueTranslations: translations {
			value
			language
		}
	}
	... on PriceAttributeValue {
		priceAttribute: attribute {
			# currency might be useful in the price context
			currency
		}
		priceAttributeValueTranslations: translations {
			value
			language
		}
	}
	... on NumberAttributeValue {
		numericAttributeValueTranslations: translations {
			value
			language
		}
	}
	... on ProductRelationAttributeValue {
		productRelationAttributeValueTranslations: translations {
			value {
				sku
			}
			language
		}
	}
	... on FileAttributeValue {
		fileAttributeValueTranslations: translations {
			value {
				...Multimedia
			}
			language
		}
	}
	... on GalleryAttributeValue {
		galleryAttributeValueTranslations: translations {
			value {
				...Multimedia
			}
			language
		}
	}
	... on ImageAttributeValue {
		imageAttributeValueTranslations: translations {
			value {
				...Multimedia
			}
			language
		}
	}
	... on MultiSelectAttributeValue {
		multiSelectAttributeValueTranslations: translations {
			translatedValue {
				...OptionTranslatedValue
			}
			language
		}
	}
	... on SelectAttributeValue {
		selectAttributeValueTranslations: translations {
			translatedValue {
				...OptionTranslatedValue
			}
			language
		}
	}
}
fragment Multimedia on Multimedia {
	path
	name
	extension
	mime
	size
	alt {
		value
		language
	}
	title {
		value
		language
	}
	url
}
fragment OptionTranslatedValue on OptionTranslatedValue {
	code
	name
	customFields {
		... on ImageCustomFieldTranslatedValue {
			customField {
				code
			}
			image: value {
				path
				name
				extension
				mime
				size
				alt {
					language
					value
				}
				title {
					language
					value
				}
				url
				folder {
					name
					path
				}
			}
		}
		... on TextCustomFieldTranslatedValue {
			customField {
				code
			}
			value
		}
		... on TextareaCustomFieldTranslatedValue {
			customField {
				code
			}
			value
		}
		... on TextareaRTECustomFieldTranslatedValue {
			customField {
				code
			}
			value
		}
	}
}

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ergonode.com/graphql/query-examples/list-of-products-with-attributes-and-they-values-in-product-stream.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
