POST /v1/chat/completions takes the same shape as OpenAI’s Chat Completions API — model and messages are the only required fields. Use whichever model id your Connector allows — check with whoever set up your Tenant if you’re not sure which ones those are.
curl · /v1/chat/completions
curl -sS "<staging Gateway base URL — set NEXT_PUBLIC_GATEWAY_BASE_URL>/v1/chat/completions" \
-H "Authorization: Bearer fwk_..." \
-H "Content-Type: application/json" \
-d '{
"model": "<model id from your Connector'\''s allow-list>",
"messages": [
{
"role": "user",
"content": "Summarize this week'\''s open invoices."
}
]
}'A successful call returns:
200 response
{
"id": "chatcmpl-01jazyb3x8k9q2m4n5p6r7s8t9",
"object": "chat.completion",
"created": 1758500000,
"model": "<model id from your Connector's allow-list>",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 96,
"total_tokens": 120
}
}A few request fields OpenAI’s API accepts aren’t supported yet and are rejected by name with a 400 rather than silently ignored — tools, tool_choice, response_format, n, stop, top_p, seed, logprobs, presence_penalty and frequency_penalty. Message content also has to be plain text — an image or file content part is rejected the same way, rather than silently dropped from the request that gets audited.