In the mathematical field of category theory, the **product** of two categories *C* and *D*, denoted *C* × *D* and called a **product category**, is an extension of the concept of the Cartesian product of two sets. Product categories are used to define bifunctors and multifunctors.^{[1]}

The product category *C* × *D* has:

- as objects:
- pairs of objects (
*A*,*B*), where*A*is an object of*C*and*B*of*D*;

- pairs of objects (
- as arrows from (
*A*_{1},*B*_{1}) to (*A*_{2},*B*_{2}):- pairs of arrows (
*f*,*g*), where*f*:*A*_{1}→*A*_{2}is an arrow of*C*and*g*:*B*_{1}→*B*_{2}is an arrow of*D*;

- pairs of arrows (
- as composition, component-wise composition from the contributing categories:
- (
*f*_{2},*g*_{2}) o (*f*_{1},*g*_{1}) = (*f*_{2}o*f*_{1},*g*_{2}o*g*_{1});

- (
- as identities, pairs of identities from the contributing categories:
- 1
_{(A, B)}= (1_{A}, 1_{B}).

- 1

For small categories, this is the same as the action on objects of the categorical product in the category **Cat**. A functor whose domain is a product category is known as a bifunctor. An important example is the Hom functor, which has the product of the opposite of some category with the original category as domain:

- Hom :
*C*^{op}×*C*→**Set**.

Just as the binary Cartesian product is readily generalized to an *n*-ary Cartesian product, binary product of two categories can be generalized, completely analogously, to a product of *n* categories. The product operation on categories is commutative and associative, up to isomorphism, and so this generalization brings nothing new from a theoretical point of view.