code: public static Response getBatchCreateResponse(final App app, InputStream is) {
  		try (final Metrics.Context context = Metrics.time(app == null ? null : app.getAppid(),
  				RestUtils.class, "batch", "create")) {
  			if (app != null) {
  				final LinkedList<ParaObject> newObjects = new LinkedList<>();
  				Response entityRes = getEntity(is, List.class);
  				if (entityRes.getStatusInfo() == Response.Status.OK) {
  					List<Map<String, Object>> items = (List<Map<String, Object>>) entityRes.getEntity();
  					for (Map<String, Object> object : items) {
  						// can't create multiple apps in batch
  						String type = (String) object.get(Config._TYPE);
  						if (isNotAnApp(type)) {
  							warnIfUserTypeDetected(type);
  							ParaObject pobj = ParaObjectUtils.setAnnotatedFields(object);
  							if (pobj != null && isValidObject(app, pobj)) {
  								pobj.setAppid(app.getAppIdentifier());
  								setCreatorid(app, pobj);
  								newObjects.add(pobj);
  							}
  						}
  					}
  
  					Para.getDAO().createAll(app.getAppIdentifier(), newObjects);
  
  					Para.asyncExecute(new Runnable() {
  						public void run() {
  							int typesCount = app.getDatatypes().size();
  							app.addDatatypes(newObjects.toArray(new ParaObject[0]));
  							if (typesCount < app.getDatatypes().size()) {
  								app.update();
  							}
  						}
  					});
  				} else {
  					return entityRes;
  				}
  				return Response.ok(newObjects).build();
  			} else {
  				return getStatusResponse(Response.Status.BAD_REQUEST);
  			}
  		}
  	}
docs: Batch create response as JSON.
  @param app the current App object
  @param is entity input stream
  @return a status code 200 or 400