/api/v1/playground/chatSend playground chat message
Action-discriminated playground endpoint: 'create' opens a session (201), 'message' sends a turn, 'save-test-cases' writes the session's user/assistant pairs into a dataset, 'share' mints a shareable link, 'update-config' changes model/temperature/maxTokens/systemPrompt. A 'message' requires { sessionId, content, orgId (uuid) } — the caller's membership of that org is verified because the turn spends that org's BYOK provider key, which is resolved and passed to the provider SDK DIRECTLY (no gateway hop and no budget enforcement); a missing key is 422 NO_PROVIDER_KEY and an upstream failure is 502 PROVIDER_ERROR — never a synthesised reply. Sessions are in-process only and every action is owner-checked (403 NOT_SESSION_OWNER). Requires evals:create; rate-limited to 30/min.
Authentication
Send Authorization: Bearer YOUR_API_KEY on every request. Generate API keys at /dashboard/settings/api-keys.
Response
200 example
{
"success": true
}All status codes
Code samples
cURL
curl -X POST \ https://evalguard.ai/api/v1/playground/chat \ -H "Authorization: Bearer $EVALGUARD_API_KEY"
TypeScript
// The TypeScript SDK (@evalguard/sdk) exposes TYPED methods — runEval,
// getEval, runSecurityScan, checkFirewall, … — not a generic request().
// For an arbitrary endpoint, call it directly:
const res = await fetch("https://evalguard.ai/api/v1/playground/chat", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.EVALGUARD_API_KEY}` },
});
console.log(res.status, await res.json());Python
# The Python SDK (pip install evalguardai) exposes TYPED methods on
# EvalGuardClient — run_eval, get_eval, … — not a generic request().
# For an arbitrary endpoint, call it directly:
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['EVALGUARD_API_KEY']}"}
response = requests.request("POST", "https://evalguard.ai/api/v1/playground/chat", headers=headers)
print(response.status_code, response.json())Go
package main
import (
"context"
"fmt"
"net/http"
"os"
)
func main() {
req, _ := http.NewRequestWithContext(context.Background(), "POST", "https://evalguard.ai/api/v1/playground/chat", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("EVALGUARD_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
fmt.Println(resp.Status)
}