Evolution V2
List stored media
Returns the stored media records for the instance, optionally filtered by the given fields.
POST
/
s3
/
getMedia
/
{instance}
List stored media
curl --request POST \
--url https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance} \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"id": "5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f",
"type": "image",
"messageId": 12345
}
'import requests
url = "https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}"
payload = {
"id": "5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f",
"type": "image",
"messageId": 12345
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: '5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f', type: 'image', messageId: 12345})
};
fetch('https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f',
'type' => 'image',
'messageId' => 12345
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}"
payload := strings.NewReader("{\n \"id\": \"5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f\",\n \"type\": \"image\",\n \"messageId\": 12345\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f\",\n \"type\": \"image\",\n \"messageId\": 12345\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f\",\n \"type\": \"image\",\n \"messageId\": 12345\n}"
response = http.request(request)
puts response.read_body[
{
"id": "clyz9k3m10001x8a1b2c3d4e5",
"fileName": "evolution-instance/5511999999999@s.whatsapp.net/3EB0F8A1C2D3E4F5A6B7.jpeg",
"type": "image",
"mimetype": "image/jpeg",
"createdAt": "2026-07-09T00:00:00.000Z",
"Message": {
"id": "clyz9k3m10000x8a1a0b1c2d3",
"key": {
"id": "3EB0F8A1C2D3E4F5A6B7",
"remoteJid": "5511999999999@s.whatsapp.net",
"fromMe": false
},
"pushName": "João Silva",
"participant": null,
"messageType": "imageMessage",
"message": {
"imageMessage": {
"url": "https://mmg.whatsapp.net/v/t62.7118-24/enc.jpg",
"mimetype": "image/jpeg",
"caption": "Segue a foto do produto",
"fileSha256": "9pQ0Z1xL2mN3oP4qR5sT6uV7wX8yZ9aB0cD1eF2gH3=",
"fileLength": "84213",
"height": 1280,
"width": 720,
"mediaKey": "aB1cD2eF3gH4iJ5kL6mN7oP8qR9sT0uV1wX2yZ3aB4c="
}
},
"contextInfo": null,
"source": "android",
"messageTimestamp": 1752019200,
"chatwootMessageId": null,
"chatwootInboxId": null,
"chatwootConversationId": null,
"chatwootContactInboxSourceId": null,
"chatwootIsRead": null,
"instanceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"webhookUrl": null,
"status": "DELIVERY_ACK",
"sessionId": null
}
}
]{
"status": 400,
"error": "Bad Request",
"message": "Invalid payload"
}Authorizations
Your Pilot Status API key (ps_...). Evolution GO also accepts Authorization: Bearer <key>.
Path Parameters
The number's display name in the Pilot Status dashboard.
Body
application/json
Response
Success — provider-native response body.
Media record id (cuid).
Object key / path of the file stored in the S3/MinIO bucket.
Media category (e.g. image, video, audio, document, sticker).
MIME type of the stored file.
Date the media record was created.
The Message this media belongs to.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
List stored media
curl --request POST \
--url https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance} \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"id": "5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f",
"type": "image",
"messageId": 12345
}
'import requests
url = "https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}"
payload = {
"id": "5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f",
"type": "image",
"messageId": 12345
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: '5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f', type: 'image', messageId: 12345})
};
fetch('https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f',
'type' => 'image',
'messageId' => 12345
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}"
payload := strings.NewReader("{\n \"id\": \"5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f\",\n \"type\": \"image\",\n \"messageId\": 12345\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f\",\n \"type\": \"image\",\n \"messageId\": 12345\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/api/layer/evolution-v2/s3/getMedia/{instance}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"5f3e1d2c-8b7a-4c6d-9e0f-1a2b3c4d5e6f\",\n \"type\": \"image\",\n \"messageId\": 12345\n}"
response = http.request(request)
puts response.read_body[
{
"id": "clyz9k3m10001x8a1b2c3d4e5",
"fileName": "evolution-instance/5511999999999@s.whatsapp.net/3EB0F8A1C2D3E4F5A6B7.jpeg",
"type": "image",
"mimetype": "image/jpeg",
"createdAt": "2026-07-09T00:00:00.000Z",
"Message": {
"id": "clyz9k3m10000x8a1a0b1c2d3",
"key": {
"id": "3EB0F8A1C2D3E4F5A6B7",
"remoteJid": "5511999999999@s.whatsapp.net",
"fromMe": false
},
"pushName": "João Silva",
"participant": null,
"messageType": "imageMessage",
"message": {
"imageMessage": {
"url": "https://mmg.whatsapp.net/v/t62.7118-24/enc.jpg",
"mimetype": "image/jpeg",
"caption": "Segue a foto do produto",
"fileSha256": "9pQ0Z1xL2mN3oP4qR5sT6uV7wX8yZ9aB0cD1eF2gH3=",
"fileLength": "84213",
"height": 1280,
"width": 720,
"mediaKey": "aB1cD2eF3gH4iJ5kL6mN7oP8qR9sT0uV1wX2yZ3aB4c="
}
},
"contextInfo": null,
"source": "android",
"messageTimestamp": 1752019200,
"chatwootMessageId": null,
"chatwootInboxId": null,
"chatwootConversationId": null,
"chatwootContactInboxSourceId": null,
"chatwootIsRead": null,
"instanceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"webhookUrl": null,
"status": "DELIVERY_ACK",
"sessionId": null
}
}
]{
"status": 400,
"error": "Bad Request",
"message": "Invalid payload"
}