curl --request POST \
--url https://api.replicas.dev/v1/replica/{id}/chats \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"title": "<string>",
"parentChatId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"clientRequestId": "<string>"
}
'import requests
url = "https://api.replicas.dev/v1/replica/{id}/chats"
payload = {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"title": "<string>",
"parentChatId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"clientRequestId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
createdAt: '2023-11-07T05:31:56Z',
title: '<string>',
parentChatId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
clientRequestId: '<string>'
})
};
fetch('https://api.replicas.dev/v1/replica/{id}/chats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replicas.dev/v1/replica/{id}/chats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'createdAt' => '2023-11-07T05:31:56Z',
'title' => '<string>',
'parentChatId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'clientRequestId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.replicas.dev/v1/replica/{id}/chats"
payload := strings.NewReader("{\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parentChatId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"clientRequestId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replicas.dev/v1/replica/{id}/chats")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parentChatId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"clientRequestId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replicas.dev/v1/replica/{id}/chats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parentChatId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"clientRequestId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"provider": "claude",
"title": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"processing": true
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}Create Chat
Creates a new chat session for a replica.
curl --request POST \
--url https://api.replicas.dev/v1/replica/{id}/chats \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"title": "<string>",
"parentChatId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"clientRequestId": "<string>"
}
'import requests
url = "https://api.replicas.dev/v1/replica/{id}/chats"
payload = {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"title": "<string>",
"parentChatId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"clientRequestId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
createdAt: '2023-11-07T05:31:56Z',
title: '<string>',
parentChatId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
clientRequestId: '<string>'
})
};
fetch('https://api.replicas.dev/v1/replica/{id}/chats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replicas.dev/v1/replica/{id}/chats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'createdAt' => '2023-11-07T05:31:56Z',
'title' => '<string>',
'parentChatId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'clientRequestId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.replicas.dev/v1/replica/{id}/chats"
payload := strings.NewReader("{\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parentChatId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"clientRequestId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replicas.dev/v1/replica/{id}/chats")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parentChatId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"clientRequestId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replicas.dev/v1/replica/{id}/chats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parentChatId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"clientRequestId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"provider": "claude",
"title": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"processing": true
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}Authorizations
API key authentication. Obtain your API key from the Replicas dashboard under Organization → Settings → API Keys.
Path Parameters
The unique identifier of the replica
Body
Request body for creating a new chat
Coding agent provider for this chat
claude, codex, cursor, deepseek, fx, kimi, muse, opencode, pi Optional client-generated chat ID.
Optional client-generated creation time.
Title for the chat
Optional parent chat ID.
Opaque client-chosen id echoed back in the chat.created event, so clients doing optimistic UI can recognize their own create
Response
Chat created successfully
A chat session within a replica
Unique identifier for the chat
Coding agent provider for this chat
claude, codex, cursor, deepseek, fx, kimi, muse, opencode, pi Chat title
When the chat was created
When the chat was last updated
Whether the chat is currently doing work — either processing a foreground message or running background/spawned-agent tasks