Texas caviar is a contemporary and zesty mixture of beans and veggies. It’s good for events, picnics, and summer time cookouts, bringing vibrant taste to each gathering!
After I’m throwing a celebration, right here’s one appetizer I at all times look to: Texas caviar! I like that this recipe is each a enjoyable snack and an really nutritious meals. The black-eyed peas, crunchy veggies, and zingy French dressing make a dip filled with plant-based protein and fiber that additionally tastes completely scrumptious!
This dip was invented in Texas within the 1940’s (it’s additionally referred to as Cowboy caviar), after which unfold all around the US. My spin on this celebration dip at all times has pals gathered across the bowl at our home and for good cause: it’s simply that tasty!
Why You’ll Love This Recipe
- Prepared in 15 to twenty minutes: It simply depends upon how lengthy it takes you to cut veggies!
- Complete crowd-pleaser: Everybody gathers across the bowl after we serve it
- Naturally plant-based and gluten-free: Many celebration snacks function cheese or bread so I like that this one is so contemporary and colourful!
- Make-ahead pleasant: It really tastes higher after marinating in a single day
5-Star Reader Overview




“Cherished the Texas Caviar
Since I first tried the recipe, I’ve made it one other 4 instances and shared it with pals. My husband is an enormous fan of the flavors. Thanks” –Yvonne C.

Components Wanted
Similar to a very good potato salad, everybody has their very own solution to make elements in Texas caviar! The frequent denominator: black eyed peas are a should. From there, there are all types of variations on the greens and dressing. Listed below are the important contemporary elements you want:
- Black-eyed peas: The star ingredient! You need to use canned black-eyed peas for comfort or cook dinner dried black eyed peas from scratch
- Black beans: Provides protein, texture, and a shade distinction (some folks use just one kind of bean, however I like the mix)
- Candy corn: Contemporary corn, frozen corn, or canned corn all work, however canned is best.
- Purple bell pepper: Provides crunch and sweetness (inexperienced bell pepper works too, although crimson is sweeter)
- Cherry tomatoes: I want these to roma tomatoes as a result of they’re persistently flavorful year-round
- Purple onion: Provides sharp, contemporary chunk (you too can use inexperienced onions for a milder taste)
- Jalapeño pepper: Seed it to regulate the warmth degree, or omit completely for a light model
- Contemporary cilantro: That is in fact important for that genuine Tex-Mex taste
For the Cowboy caviar dressing, a typical solution to make it’s to make use of store-bought Italian dressing. Nevertheless it’s a lot tastier with home made! The dressing is easy to whip up utilizing just some elements: lime juice, apple cider vinegar, sugar, garlic powder, cumin, oregano and olive oil

Do you know? Black eyed peas are literally beans; they’re a part of the legume household with black beans and chickpeas. Whereas they’re typically eaten within the American South, they’re loved all around the world. Strive them in my black eyed pea salad or my straightforward black eyed peas.
Suggestions for Making Texas Caviar
Cube greens uniformly: Taking an additional minute to chop your bell pepper, tomatoes, and jalapeño into similar-sized items (concerning the dimension of the corn kernels) is price it.
Let it marinate: You possibly can serve this instantly, however I do suggest half-hour of refrigeration time. The flavors meld and the veggies launch their juices into the dressing.
Toss gently: When you add the dressing, fold all the things along with a big spoon relatively than stirring vigorously. This avoids mushing up the beans and tomatoes.
Style and regulate: Earlier than serving, style and add extra lime juice for brightness, a pinch of salt if wanted, or an additional drizzle of olive oil if it appears dry.
Management the warmth: The jalapeño seeds and membranes include a lot of the warmth. Take away them for delicate or go away some in for medium warmth.
Inventive Methods to Serve It
There are many methods to serve Texas caviar or Cowboy caviar: the preferred is with tortilla chips! Listed below are a couple of of my favourite concepts to get your wheels turning:
- Chips: It’s incredible with chips (and even home made tortilla chips). Plantain chips are one other good possibility.
- Fish: Serve it over baked or grilled fish like baked salmon or grilled tilapia.
- Shrimp: Function a aspect with grilled shrimp, sauteed shrimp, or garlic shrimp.
- Burgers: It’s a protein-packed aspect for veggie burgers like portobello burgers or black bean burgers.
- Tacos or fajitas: Serve it with crispy avocado tacos or alongside vegetarian fajitas or shrimp fajitas.
- Avocado toast: Pile this on prime of mashed avocado on entire grain toast for a satisfying lunch that’s filled with fiber and plant-based protein.

Storing Leftovers
Retailer Texas caviar in an hermetic container within the fridge for as much as 3 days. I really want it after it’s had time to sit back: the flavour deepens after marinading.
Earlier than serving, give all the things a very good stir because the dressing tends to settle on the backside. Style and if vital, freshen it up with a squeeze of lime juice and a small drizzle of olive oil.
A Style of Texas
Should you’re like us, you would possibly surprise: how did this dip get its identify? (We love a very good origin story.) Whereas many individuals name it Cowboy caviar, it’s a nickname for Texas caviar. Seems, the colourful dip was invented in Texas in 1940 by a girl named Helen Corbitt. She first served it on New 12 months’s Eve at a rustic membership, probably utilizing black eyed peas as a result of they’re often called fortunate New 12 months’s Eve meals.
It caught on and when she later served it at a Texas lodge, it was dubbed “Texas caviar” due to it’s similarity to the look of actual caviar, a flowery appetizer made with fish roe. The identify caught and it’s been used ever since!
Dietary Notes
This Texas caviar recipe is vegetarian, vegan, plant-based, dairy-free, and gluten-free.
Continuously Requested Questions
In 2020, a viral TikTok video sparked what turned often called the “Cowboy Caviar controversy.” A creator shared this bean salad recipe calling it “Cowboy Caviar,” and a few viewers identified that it was really only a bean salad or salsa, not a brand new invention. Texas caviar has been a beloved Southern recipe since 1940, lengthy earlier than social media. The controversy really helped extra folks uncover this scrumptious recipe!
Sure! This cowboy caviar dip is genuinely nutritious. The black beans and black-eyed peas have plant-based protein and fiber, which assist hold you full. The contemporary veggies contribute vitamin A, vitamin C, and different antioxidants. The olive oil within the dressing presents heart-healthy fat. It’s naturally low in saturated fats and comprises no ldl cholesterol.
Completely! You possibly can put together it as much as 1 day prematurely and retailer it lined within the fridge: it additionally lasts 3 to 4 days complete.
Texas Caviar (Cowboy Caviar)
This Texas caviar (Cowboy caviar) could have everybody crowded across the bowl! It’s full of massive, zesty taste and excellent for events and cookouts.
- Prep Time: quarter-hour
- Prepare dinner Time: 0 minutes
- Complete Time: quarter-hour
- Yield: 8
- Class: Appetizer
- Technique: Uncooked
- Delicacies: Tex Mex
- Eating regimen: Vegan
Components
For the greens
- 2 15-ounce cans black eyed peas (or 3 cups cooked)
- 15-ounce can black beans (or 1 ½ cups cooked)
- 1 15-ounce can corn (or 1 ½ cups frozen and thawed)
- 1 crimson bell pepper
- 1 cup cherry tomatoes
- 3 inexperienced onions
- 1 medium jalapeno, seeded (non-compulsory)
- ½ cup chopped cilantro
- 2 teaspoons kosher salt
For the dressing
- 2 tablespoons lime juice
- 4 tablespoons apple cider vinegar
- 2 tablespoons sugar
- ½ teaspoon garlic powder
- ½ teaspoon cumin
- 1 teaspoon oregano
- 4 tablespoons olive oil
Directions
- Drain and rinse the beans and corn.
- Cube the bell pepper. Chop the cherry tomatoes. Thinly slice the inexperienced onions. Seed and cube the jalapeno pepper. Chop the cilantro.
- Add all of the greens and beans to a bowl. Combine with the kosher salt.
- In a medium bowl, whisk collectively the vinegar, sugar, garlic powder, and cumin. Step by step whisk within the olive oil. Pour the dressing over the greens and blend to mix.
- Eat instantly, or refrigerate till serving (it tastes even higher after permitting to marinade half-hour or longer). Serve with chips for dipping. Shops refrigerated for as much as 3 to 4 days.
Notes
Beans: You possibly can cook dinner dried black-eyed peas from scratch should you want. Go to my Black Eyed Peas recipe.
Warmth degree: Take away all jalapeño seeds and ribs for delicate warmth or go away some in for medium spice.
Storage: Retains refrigerated in an hermetic container for 3 to 4 days. Taste intensifies over time.
Variations: Add chili powder or chipotle for smokiness or add diced avocado simply earlier than serving.
(perform(){
window.addEventListener( ‘message’, perform( occasion ){
if ( ( ‘https://nutrifox.com’ !== occasion.origin && ‘https://nutrifox.take a look at’ !== occasion.origin ) ||
typeof occasion.knowledge !== ‘string’ ) {
return;
}
var payload = JSON.parse( occasion.knowledge );
swap ( payload.occasion ) {
case ‘setHeight’:
var iframe = doc.getElementById( ‘nutrifox-label-‘ + payload.recipeId );
iframe.fashion.top = payload.top + ‘px’;
break;
}
} );
}());
window.trCommon={“minRating”:6,”ajaxurl”:”https://www.acouplecooks.com/wp-admin/admin-ajax.php”,”ratingNonce”:””,”postId”:71578};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
doc.addEventListener( ‘click on’, ( e ) => {
let anchor = e.goal;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}
if ( ! anchor || ! anchor.classList.comprises( ‘tasty-recipes-scrollto’ ) ) {
return;
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const ingredient = doc.querySelector( selector );
if ( ! ingredient ) {
return;
}
ingredient.scrollIntoView( { conduct: ‘easy’ } );
}
};
doc.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}
const cookModes = doc.querySelectorAll(this.cookModeSelector);
if (cookModes.size > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘enter[type=”checkbox”]’).addEventListener(“change”, occasion => {
this.checkboxChange(occasion.goal);
}, false);
} else {
cookMode.fashion.show = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = doc.querySelectorAll(this.cookModeSelector + ‘ enter[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
attempt {
this.wakeLock = await this.wakeLockApi.request(“display”);
this.wakeLock.addEventListener(“launch”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.launch();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(perform(callback) {
if (doc.readyState !== “loading”) {
callback();
} else {
doc.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
ingredient: null,
tooltipElement: null,
deleting: false,
init( ingredient ) {
if ( this.deleting ) {
return;
}
this.ingredient = ingredient;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.take away( ‘opened’ );
setTimeout( () => {
this.tooltipElement.take away();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = doc.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
doc.physique.replaceChild( tooltipElement, currentTooltipElement );
} else {
doc.physique.appendChild( tooltipElement );
}
this.tooltipElement = doc.getElementById( ‘tasty-recipes-tooltip’ );
},
present() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.ingredient.getBoundingClientRect().prime
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().top;
const tooltipLeft = this.ingredient.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.ingredient.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘fashion’, ‘prime:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );
},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.take away( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, knowledge, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.ship( this.preparePostData( knowledge ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.standing === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( knowledge ) {
const formData = new FormData();
for ( const key in knowledge ) {
formData.append( key, knowledge[key] );
}
return formData;
},
};
window.TastyRecipes.rankings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const rankings = doc.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( rankings.size {
occasion.preventDefault();
this.defaultRating = occasion.goal.closest( ‘.checked’ ).dataset.score;
this.setCheckedStar( occasion.goal );
this.maybeSendRating( this.defaultRating, occasion.goal );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click on’, e => {
// Bailout (do not take away the tooltip) when the clicked ingredient is a score star, or it is the tooltip itself.
if ( e.goal.closest( ‘.tasty-recipes-rating’ ) || e.goal.classList.comprises( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( score ) {
const ratingInput = doc.querySelector( ‘#reply .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click on();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = doc.querySelectorAll( ‘enter.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click on’, currentEvent => {
const selectedRating = currentEvent.goal.getAttribute( ‘worth’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( score ) {
if ( score < this.minRating ) {
doc.physique.classList.take away( 'tasty-recipes-selected-minimum-rating' );
return;
}
doc.physique.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( score ) {
const commentTextarea = doc.getElementById( 'remark' );
if ( ! commentTextarea ) {
return;
}
if ( score {
window.TastyRecipes.staticTooltip.changeMessage( response.knowledge.message );
window.TastyRecipes.staticTooltip.present();
this.updateAverageText( response.knowledge, recipeCardElement );
this.maybeFillCommentForm( response.knowledge );
// Conceal the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.knowledge, score );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( knowledge, recipeCardElement ) {
if ( ! knowledge.common ) {
return;
}
this.setRatingPercent( knowledge );
if ( ! knowledge.depend ) {
return;
}
const quickLink = doc.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, knowledge );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = knowledge.common;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), knowledge );
},
setTextInContainer( container, knowledge ) {
if ( ! container ) {
return;
}
if ( knowledge.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = knowledge.label;
}
return;
}
const averageElement = container.querySelector( ‘.common’ );
if ( averageElement ) {
averageElement.textContent = knowledge.common;
}
const countElement = container.querySelector( ‘.depend’ );
if ( countElement ) {
countElement.textContent = knowledge.depend;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( knowledge ) {
this.defaultRating = knowledge.common.toFixed( 1 );
const elements = knowledge.common.toFixed( 2 ).toString().break up( ‘.’ );
this.currentRatingPercentage = elements[1] ? elements[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( goal ) {
const cardRatingContainer = goal.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = goal.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( knowledge ) {
if ( ! knowledge.remark || ! knowledge.remark.content material ) {
return;
}
const commentForm = doc.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.worth ) {
return;
}
// Add remark particulars for modifying.
commentBox.innerHTML = knowledge.remark.content material;
if ( knowledge.remark.identify ) {
commentForm.querySelector( ‘[name=author]’ ).worth = knowledge.remark.identify;
commentForm.querySelector( ‘[name=email]’ ).worth = knowledge.remark.electronic mail;
}
},
maybeResetTooltip( recipeCardElement, knowledge, score ) {
if ( this.savingRating === score ) {
this.resetTooltip( recipeCardElement, knowledge );
}
},
resetTooltip( recipeCardElement, knowledge ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default score.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( knowledge && knowledge.common ) ? knowledge.common.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, knowledge );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}
const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = doc.querySelector( ‘#reply .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.show.contains( ‘flex’ ) ) {
ratingsButtons.fashion.route = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Choose the score that was beforehand chosen in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}
const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click on’, occasion => {
if ( ratingSpan === occasion.goal ) {
return;
}
ratingSpan.previousElementSibling.click on();
} );
}
}
};
(perform(callback) {
if (doc.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.rankings.init( window.trCommon ? window.trCommon.minRating : 4 );
});
