If this is not set, the current skin (at time of using the command) will be retained. You can use /npc skin -l (a lowercase L) to always use the latest skin for the player (updating if the player changes their skin). If you want a slim model (aka 'Alex model') (3-pixel wide arms instead of 4) from a URL, it might be helpful to directly upload the skin image to Mineskin and use the model choice option on the page.
Note that the -url feature is internally backed by Mineskin, and in some cases it may be helpful to use their website directly. Imgur by default gives you an album link, and you have to right click -> copy image URL). 'public' means it's on a web host (you can just use Discord or imgur or whatever else) and 'direct' means it's a link that ends with '.png' containing the raw image (not a link to an album or similar. The '' part must be filled with a valid public image direct link. If you want to set a custom skin (one that isn't already on a player), use /npc skin -url. For example, /npc skin mcmonkey4eva What's the best way to set a custom skin? You can set an NPC's skin by using the /npc skin command. By default an NPC will have the default Steve or Alex skin. In recent Minecraft versions it has become possible to control an NPC's skin via the new player packet system.