Skip to main content
POST
/
ai
/
conversations
JavaScript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});

const conversation = await client.ai.conversations.create();

console.log(conversation.id);
import os
from telnyx import Telnyx

client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
conversation = client.ai.conversations.create()
print(conversation.id)
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"),
)
conversation, err := client.AI.Conversations.New(context.TODO(), telnyx.AIConversationNewParams{})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", conversation.ID)
}
package com.telnyx.sdk.example;

import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.ai.conversations.Conversation;
import com.telnyx.sdk.models.ai.conversations.ConversationCreateParams;

public final class Main {
private Main() {}

public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();

Conversation conversation = client.ai().conversations().create();
}
}
require "telnyx"

telnyx = Telnyx::Client.new(api_key: "My API Key")

conversation = telnyx.ai.conversations.create

puts(conversation)
<?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 {
$conversation = $client->ai->conversations->create(
metadata: ['foo' => 'string'], name: 'name'
);

var_dump($conversation);
} catch (APIException $e) {
echo $e->getMessage();
}
telnyx ai:conversations create \
--api-key 'My API Key'
curl --request POST \
--url https://api.telnyx.com/v2/ai/conversations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"metadata": {}
}
'
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "created_at": "2025-04-15T13:07:28.764Z",
  "metadata": {
    "telnyx_conversation_channel": "sms",
    "telnyx_agent_target": "+13128675309",
    "telnyx_end_user_target": "+13128675309",
    "assistant_id": "assistant-123"
  },
  "last_message_at": "2025-04-15T13:07:28.764Z",
  "name": ""
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
name
string
metadata
object

Metadata associated with the conversation. Set ai_disabled to true to create the conversation with AI message responses disabled.

Response

Successful Response

id
string<uuid>
required
Example:

"3fa85f64-5717-4562-b3fc-2c963f66afa6"

created_at
string<date-time>
required

The datetime the conversation was created.

Example:

"2025-04-15T13:07:28.764Z"

metadata
object
required

Metadata associated with the conversation. Telnyx provides several pieces of metadata, but customers can also add their own. The reserved field ai_disabled (boolean) can be set to true to prevent AI-generated responses on this conversation. When ai_disabled is true, calls to the chat endpoint will return a 400 error. Set to false or remove the field to re-enable AI responses. This is useful when a human agent needs to take over the conversation mid-stream (e.g., a technician stepping in while AI was messaging a resident).

Example:
{
"telnyx_conversation_channel": "sms",
"telnyx_agent_target": "+13128675309",
"telnyx_end_user_target": "+13128675309",
"assistant_id": "assistant-123"
}
last_message_at
string<date-time>
required

The datetime of the latest message in the conversation.

Example:

"2025-04-15T13:07:28.764Z"

name
string
Example:

""