Reply to an inbox message
Sends from the inbox address through the standard email send pipeline. The recipient is
the original Reply-To, falling back to From; original Cc recipients are not included.
The subject is prefixed with Re: unless it already has that prefix.
Threading headers are derived from the original message: In-Reply-To is set to its
RFC Message-ID, and References contains the original References values plus that
Message-ID, de-duplicated and limited to the most recent 20 values.
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const response = await client.emailInboxes.messages.actions.reply('inbox_id', 'message_id', {
text: 'text',
});
console.log(response.data);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.email_inboxes.messages.actions.reply(
inbox_id="inbox_id",
message_id="message_id",
text="text",
)
print(response.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.EmailInboxes.Messages.Actions.Reply(
context.TODO(),
"inbox_id",
"message_id",
telnyx.EmailInboxeMessageActionReplyParams{
Text: telnyx.String("text"),
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.emailInboxes.messages.actions.ActionReplyParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
ActionReplyParams params = ActionReplyParams.builder()
.text("text")
.build();
var response = client.emailInboxes().messages().actions().reply("inbox_id", "message_id", params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.email_inboxes.messages.actions.reply("inbox_id", "message_id", text: "text")
puts(response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->emailInboxes->messages->actions->reply(
'inbox_id',
'message_id',
text: 'text',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx email-inboxes:messages:actions reply \
--api-key 'My API Key' \
--inbox-id inbox_id \
--message-id message_id \
--text textcurl --request POST \
--url https://api.telnyx.com/v2/email_inboxes/{inbox_id}/messages/{message_id}/actions/reply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "Thanks for the update."
}
'{
"data": {
"record_type": "email_message",
"id": "44444444-4444-4444-4444-444444444444",
"status": "queued",
"from": {
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]"
}
],
"cc": [],
"bcc": [],
"reply_to": null,
"subject": "Re: Project update",
"tags": [],
"metadata": {},
"template_id": null,
"template_variables": {},
"attachments": [],
"events": [],
"created_at": "2026-07-15T12:35:00Z"
}
}Authorizations
Telnyx API key supplied as Authorization: Bearer <token>. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.
Path Parameters
Email inbox UUID.
Inbound email message UUID.
Body
- Option 1
- Option 2
At least one of text or html must contain a non-whitespace body. Recipients are derived from the source message; caller-supplied to, cc, or bcc values are ignored.
Was this page helpful?
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const response = await client.emailInboxes.messages.actions.reply('inbox_id', 'message_id', {
text: 'text',
});
console.log(response.data);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.email_inboxes.messages.actions.reply(
inbox_id="inbox_id",
message_id="message_id",
text="text",
)
print(response.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.EmailInboxes.Messages.Actions.Reply(
context.TODO(),
"inbox_id",
"message_id",
telnyx.EmailInboxeMessageActionReplyParams{
Text: telnyx.String("text"),
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.emailInboxes.messages.actions.ActionReplyParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
ActionReplyParams params = ActionReplyParams.builder()
.text("text")
.build();
var response = client.emailInboxes().messages().actions().reply("inbox_id", "message_id", params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.email_inboxes.messages.actions.reply("inbox_id", "message_id", text: "text")
puts(response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->emailInboxes->messages->actions->reply(
'inbox_id',
'message_id',
text: 'text',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx email-inboxes:messages:actions reply \
--api-key 'My API Key' \
--inbox-id inbox_id \
--message-id message_id \
--text textcurl --request POST \
--url https://api.telnyx.com/v2/email_inboxes/{inbox_id}/messages/{message_id}/actions/reply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "Thanks for the update."
}
'{
"data": {
"record_type": "email_message",
"id": "44444444-4444-4444-4444-444444444444",
"status": "queued",
"from": {
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]"
}
],
"cc": [],
"bcc": [],
"reply_to": null,
"subject": "Re: Project update",
"tags": [],
"metadata": {},
"template_id": null,
"template_variables": {},
"attachments": [],
"events": [],
"created_at": "2026-07-15T12:35:00Z"
}
}