Skip to content

Message status

GET/messages/{id}/status

Email Management API · Clawback

Get current status of a message.

Required permissionxgemail.msghistory:read

Parameters

Name In Type Required Description
X-Tenant-ID header string (uuid) Yes Tenant ID.
id path string Yes ID from 'X-Sophos-Email-ID' MIME header.

Request samples

curl -X GET "https://api-<data-region>.central.sophos.com/email/v1/messages/<id>/status" -H "Authorization: Bearer <access-token>" -H "X-Tenant-ID: <tenant-id>"

import requests

response = requests.get(
    "https://api-<data-region>.central.sophos.com/email/v1/messages/<id>/status",
    headers={
        "Authorization": "Bearer <access-token>",
        "X-Tenant-ID": "<tenant-id>",
    },
)
print(response.json())

$headers = @{
    "Authorization" = "Bearer <access-token>"
    "X-Tenant-ID" = "<tenant-id>"
}
Invoke-RestMethod -Method GET -Uri "https://api-<data-region>.central.sophos.com/email/v1/messages/<id>/status" -Headers $headers

package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, err := http.NewRequest("GET", "https://api-<data-region>.central.sophos.com/email/v1/messages/<id>/status", nil)
    if err != nil {
        panic(err)
    }
    req.Header.Set("Authorization", "Bearer <access-token>")
    req.Header.Set("X-Tenant-ID", "<tenant-id>")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}

const response = await fetch("https://api-<data-region>.central.sophos.com/email/v1/messages/<id>/status", {
  method: "GET",
  headers: {
    "Authorization": "Bearer <access-token>",
    "X-Tenant-ID": "<tenant-id>",
  },
});
const data = await response.json();
console.log(data);

Responses

200 — Status of clawback job.

Response fields

itemsarray of object
Current status for each recipient.
Show child attributesHide child attributes
recipientstring
Recipient address.
statusstring
The current status of the message.
Must be one of: accepted, deleted, quarantined, bounced, redirected, processing, deliverySuccessful, deliveryFailed, queuedForDelivery, pdfEncryption, tlsDelivery, tlsDeliveryFailed, encryptedDelivery, portalDelivery, clawbackProcessing, clawbackSuccessful, clawbackFailed.

Errors

Status Meaning
400 Bad request.
401 Authentication required.
403 Authorization required.
404 Not found.
500 Unexpected error.

All error responses share the same shape — see the error response object.

Response examples

200

{
  "items": [
    {
      "recipient": "user_bob@sophos.com",
      "status": "clawbackSuccessful"
    }
  ]
}

See the guide for a narrative walkthrough of this API.