# Get Message

Retrieves a message by its ID. An acting admin without the required policy still receives the message, with the link removed from every attachment.

Endpoint: GET /v1/messages/{id}
Version: 1.0.0
Security: apiKeyAuth, practiceGroupId

## Security:

  - `apiKeyAuth` (unknown)
    apiKey in header x-api-key

  - `practiceGroupId` (unknown)
    apiKey in header x-practice-group-id

## Path parameters:

  - `id` (string, required)

## Response 200:

  - `200` (unknown)
    Ok

## Response 200 fields (application/json):

  - `id` (string, required)

  - `patient` (object, required)

  - `patient.id` (string, required)

  - `patient.title` (string, required)
    Enum: "Baron", "Baroness", "Brigadier", "Count", "Colonel", "Countess", "Captain", "Dame", "The Dowager Viscountess", "Dr", "Duchess", "Duke", "Earl", "His Excellency", "Father", "H.E. Ambassador Mr", "H.E. Mr", "H.E. Mrs", "Her Grace", "His Grace", "The Hon", "The Hon Mr", "The Hon Mrs", "HRH", "HRH Prince", "HRH Princess", "Insurance", "HM King", "Lady", "Lord", "Major", "Master", "Miss", "Mr", "Mrs", "Ms", "Mss", "Mx", "Pr", "Professor", "HM Queen", "Rabbi", "Reverend", "Sheikh", "Sheikha", "Sir", "The", "", "Viscount", "Viscountess"

  - `patient.first_name` (string, required)

  - `patient.last_name` (string, required)

  - `write_to_record` (object, required)

  - `write_to_record.write_to_record_at` (string, required)

  - `write_to_record.status` (string, required)

  - `write_to_record.failure_reason` (string, required)

  - `write_to_record.snomed_code` (string, required)

  - `short_link` (object, required)

  - `short_link.id` (string)

  - `short_link.type` (string)

  - `short_link.name` (string)

  - `short_link.status` (string)

  - `campaign` (object, required)

  - `campaign.id` (string)

  - `campaign.name` (string)

  - `created_at` (string, required)

  - `sent_at` (string, required)

  - `scheduled_at` (string, required)

  - `status` (string, required)
    Enum: "delivered", "declined", "sent", "pending", "retry", "fatal"

  - `sent_by_admin` (object, required)

  - `sent_by_admin.id` (string, required)

  - `sent_by_admin.first_name` (string, required)

  - `sent_by_admin.last_name` (string, required)

  - `recipient_contact_detail` (string, required)

  - `message_type` (string, required)

  - `message` (string, required)

  - `attachments` (array)

  - `attachments.file_name` (string)

  - `attachments.file_key` (string)

  - `attachments.attachment_url` (string)

  - `fallback_attempts` (array)

  - `fallback_attempts.id` (string, required)

  - `fallback_attempts.message_type` (string, required)

  - `fallback_attempts.created_at` (string, required)

  - `fallback_attempts.sent_at` (string, required)

  - `fallback_attempts.status` (string, required)
    Enum: "delivered", "declined", "sent", "pending", "retry", "fatal"

  - `fallback_attempts.recipient_contact_detail` (string, required)

  - `fallback_attempts.failure_reason` (string, required)

  - `status_code` (string)
    Why the message failed, set only when status is retry or fatal. Use unknown when no specific reason is available.
    Enum: "insufficient_credits", "invalid_number", "number_not_recognised", "missing_contact_number", "declined_by_network", "provider_configuration_error", "invalid_sender_name", "invalid_message_content", "invalid_send_time", "send_failed", "unknown"

## Response 400:

  - `400` (unknown)
    Validation error

## Response 400 fields (application/json):

  - `error` (boolean, required)
    Example: true

  - `statusCode` (number, required)
    Example: 400

  - `message` (array, required)

  - `message.code` (string, required)
    Example: invalid_type

  - `message.expected` (string, required)
    Example: string

  - `message.path` (array, required)
    Example: ["patient_id"]

  - `message.message` (string, required)
    Example: Required

## Response 401:

  - `401` (unknown)
    Unauthorised

## Response 404:

  - `404` (unknown)
    Not found

## Response 429:

  - `429` (unknown)
    Too Many Requests

## Response 500:

  - `500` (unknown)
    Unknown error

