You need to do an inline image. You do that by converting the image to base64 and then including the content in an image tag.
Here is a sample that will send a red dot
PNG in an email through SparkPost.
curl -X POST \
https://api.sparkpost.com/api/v1/transmissions \
-H 'Authorization: [YOUR_API_KEY_HERE]' \
-H 'cache-control: no-cache' \
-d '{
"options": {
"open_tracking": true,
"click_tracking": true
},
"campaign_id": "test",
"recipients": [
{
"address": {
"email": "to@example.com",
"name": "To recipient"
},
"tags": []
}
],
"content": {
"from": {
"email": "from@example.com",
"name": "From address"
},
"subject": "My Sample Subject",
"text": "Test",
"html": "<p>Test</p> <img src=\"data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\" alt=\"A Red dot\" />"
}
}
'
There are lots of ways to convert images to base64 but here is one example:
https://www.base64-image.de/