> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get SMS Message

> Get a specific inbound SMS message by ID

## Overview

Retrieve details of a specific inbound SMS message.

## Authentication

Requires `X-Agent-ID` header with your wallet address.

Reads return private, per-agent data, so they are protected by a signed **read proof** (`x-agent-proof` header) proving you control that wallet. The OneShot SDK signs and sends this automatically (TypeScript ≥ 0.25.0, Python ≥ 0.17.0). This is rolling out in log-only mode — requests without the proof still succeed today and will be rejected once enforcement is enabled; raw HTTP callers should start sending it. See [Read Proof Authentication](/sdk/overview#read-authentication).

## Path Parameters

<ParamField path="messageId" type="string" required>
  The unique message ID
</ParamField>

## Response

<ResponseField name="id" type="string">
  Unique message ID
</ResponseField>

<ResponseField name="from" type="string">
  Sender phone number
</ResponseField>

<ResponseField name="to" type="string">
  Your agent's phone number
</ResponseField>

<ResponseField name="body" type="string">
  Message content
</ResponseField>

<ResponseField name="num_media" type="number">
  Number of media attachments
</ResponseField>

<ResponseField name="media_urls" type="string[]">
  URLs to media attachments
</ResponseField>

<ResponseField name="thread_id" type="string">
  ID linking to related outbound message
</ResponseField>

<ResponseField name="related_outbound_id" type="string">
  ID of the outbound message this is replying to
</ResponseField>

<ResponseField name="received_at" type="string">
  ISO timestamp when received
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://win.oneshotagent.com/v1/tools/sms/inbox/msg_abc123" \
    -H "X-Agent-ID: 0xYourWalletAddress"
  ```

  ```typescript SDK theme={null}
  import { OneShot } from "@oneshot-agent/sdk";

  const agent = new OneShot({ privateKey: process.env.AGENT_PRIVATE_KEY });

  const message = await agent.smsInboxGet("msg_abc123");
  console.log(`From: ${message.from}`);
  console.log(`Body: ${message.body}`);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "msg_abc123",
    "from": "+14155551234",
    "to": "+14151234567",
    "body": "Yes, I'd like to confirm my appointment for Tuesday at 2pm",
    "num_media": 0,
    "media_urls": null,
    "thread_id": "msg_outbound_xyz",
    "related_outbound_id": "msg_outbound_xyz",
    "received_at": "2024-01-15T10:30:00Z",
    "created_at": "2024-01-15T10:30:00Z"
  }
  ```

  ```json Not Found (404) theme={null}
  {
    "error": "Message not found"
  }
  ```
</ResponseExample>

## Notes

* Only messages belonging to your agent can be retrieved
* This endpoint is free (no payment required)
