Skip to main content
GET
/
projects
/
{projectId}
/
chatboxes
/
{chatboxId}
Get a chatbox
curl --request GET \
  --url https://app.mcpjam.com/api/v1/projects/{projectId}/chatboxes/{chatboxId} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://app.mcpjam.com/api/v1/projects/{projectId}/chatboxes/{chatboxId}"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://app.mcpjam.com/api/v1/projects/{projectId}/chatboxes/{chatboxId}', 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://app.mcpjam.com/api/v1/projects/{projectId}/chatboxes/{chatboxId}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://app.mcpjam.com/api/v1/projects/{projectId}/chatboxes/{chatboxId}"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://app.mcpjam.com/api/v1/projects/{projectId}/chatboxes/{chatboxId}")
  .header("Authorization", "Bearer <token>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://app.mcpjam.com/api/v1/projects/{projectId}/chatboxes/{chatboxId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{ "id": "<string>", "name": "<string>", "serverCount": 123, "serverNames": [ "<string>" ], "requireToolApproval": true, "servers": [ { "id": "<string>", "name": "<string>", "useOAuth": true, "url": "<string>" } ], "projectId": "<string>", "description": "<string>", "hostStyle": "<string>", "hostId": "<string>", "hostName": "<string>", "link": { "path": "<string>", "url": "<string>" }, "createdAt": 123, "updatedAt": 123, "modelId": "<string>", "systemPrompt": "<string>", "temperature": 123 }

Authorizations

Authorization
string
header
required

MCPJam API key (sk_…). Create one at Settings → API keys. Guest sessions cannot use the API, and API keys cannot manage other API keys.

Path Parameters

projectId
string
required

ID of the hosted project that contains the server.

chatboxId
string
required

Chatbox ID, as returned by the project's chatbox list.

Response

The chatbox settings.

A chatbox's full read-only settings: the summary fields plus the host execution config and resolved servers.

id
string
required
name
string
required
serverCount
integer
required
serverNames
string[]
required
requireToolApproval
boolean
required
servers
object[]
required
projectId
string | null
description
string | null
mode
enum<string> | null

Who can use the chatbox.

Available options:
project_members,
invited_only,
anyone_with_link,
null
hostStyle
string | null

Chat surface style the chatbox renders (e.g. claude, chatgpt).

hostId
string | null

The named host the chatbox publishes (hosts and chatboxes are 1:1).

hostName
string | null

Share link for the chatbox. The URL embeds the access token; visible to any caller who can read the chatbox (the same audience that sees it in the hosted UI).

createdAt
number | null

Unix epoch milliseconds.

updatedAt
number | null

Unix epoch milliseconds.

modelId
string | null

Model the chatbox chats with.

systemPrompt
string | null
temperature
number | null