Spawn a workspace from Mothership
curl --request POST \
--url https://api.replicas.dev/v1/agent/mothership/spawn \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel_id": "<string>",
"thread_ts": "<string>",
"message_ts": "<string>",
"prompt": "<string>",
"user_id": "<string>",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.replicas.dev/v1/agent/mothership/spawn"
payload = {
"channel_id": "<string>",
"thread_ts": "<string>",
"message_ts": "<string>",
"prompt": "<string>",
"user_id": "<string>",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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({
channel_id: '<string>',
thread_ts: '<string>',
message_ts: '<string>',
prompt: '<string>',
user_id: '<string>',
environment_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.replicas.dev/v1/agent/mothership/spawn', 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/agent/mothership/spawn",
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([
'channel_id' => '<string>',
'thread_ts' => '<string>',
'message_ts' => '<string>',
'prompt' => '<string>',
'user_id' => '<string>',
'environment_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/agent/mothership/spawn"
payload := strings.NewReader("{\n \"channel_id\": \"<string>\",\n \"thread_ts\": \"<string>\",\n \"message_ts\": \"<string>\",\n \"prompt\": \"<string>\",\n \"user_id\": \"<string>\",\n \"environment_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/agent/mothership/spawn")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel_id\": \"<string>\",\n \"thread_ts\": \"<string>\",\n \"message_ts\": \"<string>\",\n \"prompt\": \"<string>\",\n \"user_id\": \"<string>\",\n \"environment_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replicas.dev/v1/agent/mothership/spawn")
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 \"channel_id\": \"<string>\",\n \"thread_ts\": \"<string>\",\n \"message_ts\": \"<string>\",\n \"prompt\": \"<string>\",\n \"user_id\": \"<string>\",\n \"environment_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"ok": 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>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}Slack
Spawn a workspace from Mothership
Creates a dedicated workspace for a triaged Slack thread. Replicas verifies that the required user_id authored message_ts before using that identity for workspace and pull request attribution. Available only to the organization’s Mothership agent.
POST
/
v1
/
agent
/
mothership
/
spawn
Spawn a workspace from Mothership
curl --request POST \
--url https://api.replicas.dev/v1/agent/mothership/spawn \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel_id": "<string>",
"thread_ts": "<string>",
"message_ts": "<string>",
"prompt": "<string>",
"user_id": "<string>",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.replicas.dev/v1/agent/mothership/spawn"
payload = {
"channel_id": "<string>",
"thread_ts": "<string>",
"message_ts": "<string>",
"prompt": "<string>",
"user_id": "<string>",
"environment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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({
channel_id: '<string>',
thread_ts: '<string>',
message_ts: '<string>',
prompt: '<string>',
user_id: '<string>',
environment_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.replicas.dev/v1/agent/mothership/spawn', 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/agent/mothership/spawn",
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([
'channel_id' => '<string>',
'thread_ts' => '<string>',
'message_ts' => '<string>',
'prompt' => '<string>',
'user_id' => '<string>',
'environment_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/agent/mothership/spawn"
payload := strings.NewReader("{\n \"channel_id\": \"<string>\",\n \"thread_ts\": \"<string>\",\n \"message_ts\": \"<string>\",\n \"prompt\": \"<string>\",\n \"user_id\": \"<string>\",\n \"environment_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/agent/mothership/spawn")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel_id\": \"<string>\",\n \"thread_ts\": \"<string>\",\n \"message_ts\": \"<string>\",\n \"prompt\": \"<string>\",\n \"user_id\": \"<string>\",\n \"environment_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replicas.dev/v1/agent/mothership/spawn")
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 \"channel_id\": \"<string>\",\n \"thread_ts\": \"<string>\",\n \"message_ts\": \"<string>\",\n \"prompt\": \"<string>\",\n \"user_id\": \"<string>\",\n \"environment_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"ok": 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>"
}{
"error": "<string>",
"details": "<string>",
"code": "<string>"
}Authorizations
API key authentication. Obtain your API key from the Replicas dashboard under Organization → Settings → API Keys.
Body
application/json
Slack channel containing the thread.
Root timestamp of the Slack thread.
Timestamp of the Slack message that triggered the spawn.
Task passed to the dedicated workspace.
Slack user ID of the message author who triggered the spawn.
Optional environment selected by Mothership.
Response
Workspace spawn accepted
⌘I