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",
"created_at": "2023-11-07T05:31:56Z",
"title": "<string>",
"parent_chat_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"client_request_id": "<string>"
}
'import requests
url = "https://api.replicas.dev/v1/replica/{id}/chats"
payload = {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"title": "<string>",
"parent_chat_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"client_request_id": "<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',
created_at: '2023-11-07T05:31:56Z',
title: '<string>',
parent_chat_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
client_request_id: '<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',
'created_at' => '2023-11-07T05:31:56Z',
'title' => '<string>',
'parent_chat_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'client_request_id' => '<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 \"created_at\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parent_chat_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"client_request_id\": \"<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 \"created_at\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parent_chat_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"client_request_id\": \"<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 \"created_at\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parent_chat_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"client_request_id\": \"<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
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",
"created_at": "2023-11-07T05:31:56Z",
"title": "<string>",
"parent_chat_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"client_request_id": "<string>"
}
'import requests
url = "https://api.replicas.dev/v1/replica/{id}/chats"
payload = {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"title": "<string>",
"parent_chat_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"client_request_id": "<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',
created_at: '2023-11-07T05:31:56Z',
title: '<string>',
parent_chat_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
client_request_id: '<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',
'created_at' => '2023-11-07T05:31:56Z',
'title' => '<string>',
'parent_chat_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'client_request_id' => '<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 \"created_at\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parent_chat_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"client_request_id\": \"<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 \"created_at\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parent_chat_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"client_request_id\": \"<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 \"created_at\": \"2023-11-07T05:31:56Z\",\n \"title\": \"<string>\",\n \"parent_chat_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"client_request_id\": \"<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
Organization or personal API key from Settings → API Keys.
Headers
API version. 2026-10-07 returns snake_case responses. See versioning.
2026-10-07 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, 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 workspace
Unique identifier for the chat
Coding agent provider for this chat
claude, codex, cursor, 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