Best practice is to upload images one by one. Instead if your request is FAILED it will time/ data consum because it have number of images.
But you can achieve this, please follow the below code:
Retrofit Version: 'com.squareup.retrofit2:retrofit:2.1.0'
AddMediaMessageRequestEvent Object class :
public class AddMediaMessageRequestEvent implements Serializable {
    public String token;
    public Map<String, RequestBody[]> bodyMap;
}
MainActivity.java :
AddMediaMessageRequestEvent request = new AddMediaMessageRequestEvent();
Map<String, RequestBody> map = new HashMap<>();
//"thumbFile" is your image file
RequestBody[] thumbBody = new RequestBody[3];
thumbBody[0] = RequestBody.create(MediaType.parse("image/jpg"), thumbFile);
thumbBody[1] = RequestBody.create(MediaType.parse("image/jpg"), thumbFile);
map.put(toRequestParams(thumbFile), thumbBody);
request.bodyMap = map
toRequestParams(//file) method:
private String toRequestParams(File thumbFile) {
    // "thumb" is the API key
    return "thumb\"; filename=\"" + thumbFile.getName() + ".jpg\"";
}
Retrofit call:
Call<ResponseMessage> call = mApi.addMediaMessage(request.token, request.bodyMap);
call.enqueue(//new Callback())
Api:
@Multipart
    @POST("/api/{id}/add-media-message")
    Call<ResponseMessage> addMediaMessage(
            @Header(AppConstants.HEADER_PARA_TOKEN) String token,
            @PartMap Map<String, RequestBody> params);