From the deepest API levels comes...
... the most unsupported API from Linden Lab.
You can download a JPEG2000 texture (full perms, highest possible resolution) using the following URL:
http://asset-cdn.glb.agni.lindenlab.com/?texture_id=<a valid texture [[UUID]]>
Sounds are downloaded as Ogg data, Vorbis audio, this way:
http://asset-cdn.glb.agni.lindenlab.com/?sound_id=<a valid sound UUID>
etc. There might be a few other IDs that work as well.
Sculpties are technically textures, so they could get downloaded with the texture API call
mesh_id instead, but... it's not easy to figure out where that UUID comes from. I tested with a few possible variants, and the result is always 'Not found!' — as opposed to 'Incorrect Syntax', which is what you get when trying out to get asset types that don't exist.
This is actually how the viewer retrieves assets to display them, so, well, you cannot plug the analogue hole — whatever your viewer needs to download in order to render a scene must be downloadable in some way; LL just uses the most straightforward method possible: grab the assets from a CDN using a standard URL!
Happy texture/sound downloading!