# GET /api/twilio/sms-log/by-correlation/{correlationId}

Gets the delivery record for a single outbound message by its correlation id.

This is the lookup a sending feature uses to reflect a delivery outcome on its own record: it holds
the correlation id returned by the send, and asks here whether the message was delivered, blocked
by the compliance gate, or failed at the carrier. The tenant and merchant ids must match the
message's owning scope, and the caller's own scope is enforced on top. Returns no content when no
record exists, which includes a message whose row has aged out of the 30-day retention window.

**Operation ID:** `GET_api_twilio_sms-log_by-correlation_correlationId`

## Authorization

Requires: Twilio.SmsLog.View, merchant scope.

Required permissions:
- `Twilio.SmsLog.View`

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| correlationId | path | yes | string(uuid) | Correlation id returned by the send. |
| tenantId | query | no | string(uuid) | Tenant id that scopes the lookup. |
| merchantId | query | no | string(uuid) | Merchant id that scopes the lookup. |
| suppressNulls | query | no | boolean | If true, omit properties with null values. |

## Responses

### 200

OK

**Content type:** `text/plain`

Schema: `PhoeniXGateTwilioSmsLogSmsLogDto`

**Content type:** `application/json`

Schema: `PhoeniXGateTwilioSmsLogSmsLogDto`

**Content type:** `text/json`

Schema: `PhoeniXGateTwilioSmsLogSmsLogDto`

### 403

Forbidden

**Content type:** `text/plain`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `text/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

### 401

Unauthorized

**Content type:** `text/plain`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `text/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

### 400

Bad Request

**Content type:** `text/plain`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `text/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

### 404

Not Found

**Content type:** `text/plain`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `text/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

### 501

Not Implemented

**Content type:** `text/plain`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `text/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

### 500

Internal Server Error

**Content type:** `text/plain`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

**Content type:** `text/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

### default

The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. See the error-code reference in this document's description for the values `error.code` can take.

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

## See also

- [All documentation](https://docs.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
