You can't directly duplicate a character from the API. You can get close by creating a character and setting everything on it to the values on an existing character. You won't be able to copy the token that is assigned to it, and you'll only be able to set the portrait image if the image is directly in a user library. You then make copies of all the attributes and abilities and that's as close as you can get. You can register for the create event: on('create:character', function(obj){
// do stuff
}); You may want to watch the creates for attributes and abilities as well, depending on your use case.