Create chat completion
Send a message to GC AI and receive an AI-generated response.
<Note> This endpoint is asynchronous: it returns a job envelope, and the result is filled in once the job completes. See [Asynchronous Requests](https://docs.gc.ai/api-reference/concepts/async-jobs) for how waiting, polling, and the envelope work. </Note>Multi-turn conversations
Every response includes a chat_id. Pass it back as chat_id on a later request to continue that conversation. Conversation state (prior messages, tool calls, and any returned documents, emails, or diagrams) is held server-side, so each turn sends only the new message (plus any new file_ids); never re-send prior turns or previously returned outputs.
Only one turn may be in flight per chat at a time: a request whose chat_id already has a turn running is rejected with 409. Wait for the prior turn to reach a terminal state before sending the next.
Continuing a chat is scoped like materialization: personal keys continue chats they created; organization keys continue organization chats. See Multi-turn Conversations.
Server-side tools
The model can invoke tools automatically while generating a response. Tool calls happen server-side. Only the final assistant text is returned in result.result.
| Tool | Description | Key type |
|---|---|---|
| Document reading | Read, query, and search within attached files | All |
| Web search | Search the web for current information | All |
| Research agent | Multi-step web research with synthesis | All |
| Case-law lookup | Search case law databases | User-scoped only |
| Playbook review | Run playbook checks against attached files (requires playbook_ids) | All |
| Document editing | Apply redline edits to an attached DOCX. All proposed revisions are auto-accepted; the edited file is returned via result.documents. The original file is preserved. | All |
| Document generation | Generate a new DOCX from a prompt. The generated file is returned via result.documents. | All |
| Slide generation | Generate a new PowerPoint deck (PPTX) from a prompt. The generated file is returned via result.documents. | User-scoped only |
| Email drafting | Draft a structured email from a prompt. The draft is returned via result.emails (to, subject, body, …). | All |
| Diagrams | Generate a diagram from a prompt. The diagram is returned via result.diagrams as validated Mermaid source (mermaid) you can render with any Mermaid-compatible renderer. | All |
| Vault query | Query documents and fields in an attached Contract Intelligence vault (requires vault_id) | All (subject to vault authorization) |
The following tools are not available via API (the response is plain text with no channel for rich outputs):
| Tool | Reason unavailable |
|---|---|
| Interactive clarification | Requires a back-and-forth channel with the caller |
Request
- Base URLhttps://app.gc.ai/api/external/v1
- AuthAPI key in header Authorization
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Query parameters
Optional long-poll wait time in seconds. Use 0 for fire-and-forget behavior. If both wait and Prefer: wait=... are supplied, they must match. Values above 90 are clamped.
Headers
Optional RFC 7240 wait preference, for example wait=0. If both this header and the wait query parameter are supplied, they must match.
Request body
Example request
{
"message": "What are the key terms to look for in a software license agreement?",
"file_ids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"playbook_ids": [
"f9e8d7c6-b5a4-3210-fedc-ba0987654321"
],
"skill_ids": [
"b2c3d4e5-f6a7-4890-bcde-f12345678901"
],
"blocked_tools": [
"projects_delete"
],
"chat_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"project_id": "d4c3b2a1-f6e5-0987-dcba-fedcba098765",
"materialize": true,
"company_id": "d4c3b2a1-f6e5-0987-dcba-fedcba098765",
"vault_id": "e5d4c3b2-a1f6-7890-bcde-f1234567890a"
}Response
Job completed within the effective wait window
Example response
{
"result": {
"result": "When reviewing a software license agreement, key terms to examine include:\n\n1. **License Grant** - Understand the scope of rights granted...",
"chat_url": "https://app.gc.ai/chat/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"judge_approved_steps": [
"projects_update"
],
"skipped_steps": [
"projects_create"
]
}
}Changes
No recorded changes to this operation across all 1 revision of this API.