Help query
curl --request POST \
--url https://api.trymaitai.ai/api/v1/help \
--header 'Content-Type: application/json' \
--header 'X-Maitai-Api-Key: <api-key>' \
--data '
{
"query": "how do I swap out my OpenAI client for the Maitai client and use the same model?"
}
'import requests
url = "https://api.trymaitai.ai/api/v1/help"
payload = { "query": "how do I swap out my OpenAI client for the Maitai client and use the same model?" }
headers = {
"X-Maitai-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Maitai-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'how do I swap out my OpenAI client for the Maitai client and use the same model?'
})
};
fetch('https://api.trymaitai.ai/api/v1/help', 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.trymaitai.ai/api/v1/help",
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([
'query' => 'how do I swap out my OpenAI client for the Maitai client and use the same model?'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Maitai-Api-Key: <api-key>"
],
]);
$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.trymaitai.ai/api/v1/help"
payload := strings.NewReader("{\n \"query\": \"how do I swap out my OpenAI client for the Maitai client and use the same model?\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Maitai-Api-Key", "<api-key>")
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.trymaitai.ai/api/v1/help")
.header("X-Maitai-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"how do I swap out my OpenAI client for the Maitai client and use the same model?\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trymaitai.ai/api/v1/help")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Maitai-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"how do I swap out my OpenAI client for the Maitai client and use the same model?\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"answer": "Maitai's Python SDK is an OpenAI drop-in: you swap the client constructor and keep the rest of your code.\n\n**Before:**\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(api_key=\"sk-...\")\n```\n\n**After:**\n```python\nimport maitai\n\nclient = maitai.Maitai(api_key=\"mt-...\")\n```\n\nYour `client.chat.completions.create(model=..., messages=...)` calls work unchanged, pass the same `model` string and Maitai proxies it to the same provider while adding observability and sentinels.",
"elapsed_seconds": 42.3
}
}Help
Help query
Answer a free-form question about building with Maitai in natural-language markdown.
The information-only sibling of POST /search: instead of a structured execution plan, returns an expert prose answer with working code examples (SDK integration, Developer API, CLI, or Portal) for agent IDEs (Cursor, Claude Code) to apply directly. Never takes action.
POST
/
help
Help query
curl --request POST \
--url https://api.trymaitai.ai/api/v1/help \
--header 'Content-Type: application/json' \
--header 'X-Maitai-Api-Key: <api-key>' \
--data '
{
"query": "how do I swap out my OpenAI client for the Maitai client and use the same model?"
}
'import requests
url = "https://api.trymaitai.ai/api/v1/help"
payload = { "query": "how do I swap out my OpenAI client for the Maitai client and use the same model?" }
headers = {
"X-Maitai-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Maitai-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'how do I swap out my OpenAI client for the Maitai client and use the same model?'
})
};
fetch('https://api.trymaitai.ai/api/v1/help', 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.trymaitai.ai/api/v1/help",
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([
'query' => 'how do I swap out my OpenAI client for the Maitai client and use the same model?'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Maitai-Api-Key: <api-key>"
],
]);
$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.trymaitai.ai/api/v1/help"
payload := strings.NewReader("{\n \"query\": \"how do I swap out my OpenAI client for the Maitai client and use the same model?\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Maitai-Api-Key", "<api-key>")
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.trymaitai.ai/api/v1/help")
.header("X-Maitai-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"how do I swap out my OpenAI client for the Maitai client and use the same model?\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trymaitai.ai/api/v1/help")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Maitai-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"how do I swap out my OpenAI client for the Maitai client and use the same model?\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"answer": "Maitai's Python SDK is an OpenAI drop-in: you swap the client constructor and keep the rest of your code.\n\n**Before:**\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(api_key=\"sk-...\")\n```\n\n**After:**\n```python\nimport maitai\n\nclient = maitai.Maitai(api_key=\"mt-...\")\n```\n\nYour `client.chat.completions.create(model=..., messages=...)` calls work unchanged, pass the same `model` string and Maitai proxies it to the same provider while adding observability and sentinels.",
"elapsed_seconds": 42.3
}
}Was this page helpful?
⌘I