Rinse the fish heads and bones under cold water. Set aside.
Heat the vegetable oil in a large pot over medium heat. Add the chopped onion, garlic, and bell pepper. Cook until the vegetables are softened, about 5 minutes.
Stir in the chopped tomatoes, thyme, bay leaf, allspice, and paprika. Cook for another 5 minutes.
Add the fish heads and bones to the pot. Pour in the water or fish stock. Bring to a boil, then reduce the heat to low. Simmer, covered, for about 30-45 minutes.
Remove the fish heads and bones from the pot using a slotted spoon. Strain the broth through a fine mesh sieve to remove any remaining solids.
Return the strained broth to the pot. Stir in the coconut milk and adjust seasoning with salt and black pepper to taste. Add hot peppers if you prefer a spicier broth.
Simmer for an additional 5 minutes to allow the flavors to meld.
Garnish with chopped fresh parsley or cilantro before serving. Enjoy hot as a flavorful soup or as a base for other dishes.
Enjoy your meal!