Joi.array().items() accepts another Joi schema to use against the array elements. So an array of strings is this easy: Joi.array().items(Joi.string()) Same for an array of objects; just pass an object schema to items(): Joi.array().items(Joi.object({ // Object schema }))