     end
   end
 
-  defp prepare_body(emails) when is_list(emails) do
-    Enum.map(emails, &prepare_body/1)
+  defp prepare_body(emails, config) when is_list(emails) do
+    %{"Messages" => Enum.map(emails, &prepare_body/1)}
+    |> prepare_message_stream(config)
+  end
+
+  defp prepare_body(%Email{} = email, config) do
+    prepare_body(email) |> prepare_message_stream(config)
   end
 
   defp prepare_body(email) do

  end

  defp prepare_from(body, %{from: from}), do: Map.put(body, "From", render_recipient(from))

  defp prepare_to(body, %{to: to}), do: Map.put(body, "To", render_recipient(to))


  @impl true
  def deliver_many(emails, config \\ []) when is_list(emails) do
    headers = prepare_headers(config)
    body = emails |> prepare_body(config) |> Swoosh.json_library().encode!
    url = [base_url(config), api_endpoint(List.first(emails), true)]

    # Could not use `Swoosh.ApiClient.post` here since I have more than one email
