Aether

Inbox

Unified inbox for DMs, comments, and mentions across all connected social platforms. Read and reply to messages from a single endpoint.

GET
/inbox

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from your Aether dashboard

In: header

Query Parameters

platform?string

Social media platform identifier

type?string
isRead?boolean
profileId?string

Filter to messages on a specific social profile

page?integer
perPage?integer

Response Body

application/json

application/json

curl -X GET "https://example.com/inbox"
{  "success": true,  "data": {    "items": [      {        "id": "msg_abc123",        "organizationId": "string",        "socialProfileId": "string",        "platform": "instagram",        "platformMessageId": "string",        "type": "dm",        "content": "string",        "sender": {          "platformUserId": "string",          "username": "string",          "displayName": "string",          "avatarUrl": "http://example.com"        },        "threadId": "string",        "parentMessageId": "string",        "isRead": true,        "receivedAt": "2019-08-24T14:15:22Z",        "createdAt": "2019-08-24T14:15:22Z"      }    ],    "total": 0,    "hasMore": true  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
GET
/inbox/{messageId}

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from your Aether dashboard

In: header

Path Parameters

messageId*string

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/inbox/string"
{  "success": true,  "data": {    "id": "msg_abc123",    "organizationId": "string",    "socialProfileId": "string",    "platform": "instagram",    "platformMessageId": "string",    "type": "dm",    "content": "string",    "sender": {      "platformUserId": "string",      "username": "string",      "displayName": "string",      "avatarUrl": "http://example.com"    },    "threadId": "string",    "parentMessageId": "string",    "isRead": true,    "receivedAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z"  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
DELETE
/inbox/{messageId}

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from your Aether dashboard

In: header

Path Parameters

messageId*string

Response Body

application/json

application/json

curl -X DELETE "https://example.com/inbox/string"
Empty
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
POST
/inbox/{messageId}/reply

Routes by message type:

  • comment — posts a public reply on the platform (Instagram/Facebook comment APIs).
  • dm / story_reply — sends a direct message via the Meta Messaging API (POST /{accountId}/messages) using the sender's platform user ID from ingestion.

Instagram and Facebook support DM replies. Other platforms return 422 DM_REPLY_UNSUPPORTED.

Meta enforces a 24-hour messaging window for DM replies after the user's last message. Expired windows return 422 DM_OUTSIDE_24H_WINDOW.

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from your Aether dashboard

In: header

Path Parameters

messageId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/inbox/string/reply" \  -H "Content-Type: application/json" \  -d '{    "content": "string"  }'
{  "success": true,  "data": {    "id": "msg_abc123",    "organizationId": "string",    "socialProfileId": "string",    "platform": "instagram",    "platformMessageId": "string",    "type": "dm",    "content": "string",    "sender": {      "platformUserId": "string",      "username": "string",      "displayName": "string",      "avatarUrl": "http://example.com"    },    "threadId": "string",    "parentMessageId": "string",    "isRead": true,    "receivedAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z"  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
PATCH
/inbox/{messageId}/read

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from your Aether dashboard

In: header

Path Parameters

messageId*string

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/inbox/string/read"
{  "success": true,  "data": {    "id": "msg_abc123",    "organizationId": "string",    "socialProfileId": "string",    "platform": "instagram",    "platformMessageId": "string",    "type": "dm",    "content": "string",    "sender": {      "platformUserId": "string",      "username": "string",      "displayName": "string",      "avatarUrl": "http://example.com"    },    "threadId": "string",    "parentMessageId": "string",    "isRead": true,    "receivedAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z"  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
{  "success": false,  "error": {    "code": "PROFILE_NOT_FOUND",    "message": "string",    "details": {}  }}
POST
/inbox/comments/{platformPostId}/{commentId}/private-reply

Send a private DM to a commenter on Instagram or Facebook. Optionally attach 1–3 inline buttons (Meta button_template). When buttons are provided, message must be 640 characters or fewer.

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from your Aether dashboard

In: header

Path Parameters

platformPostId*string
commentId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/inbox/comments/string/string/private-reply" \  -H "Content-Type: application/json" \  -d '{    "profileId": "string",    "message": "string"  }'
Empty
Empty

On this page