Skip to main content

Model Providers

xAI

Call xAI Grok models through your Verdictan gateway. Your xAI key stays on the gateway, and your application calls the gateway with its application token.

Start with one text request, then test the streaming and tool features your application uses.

Before you start​

  • A working gateway from the quickstart.
  • An xAI API key, and one model ID that your xAI team can use.
  • The gateway startup command, and a separate application token for test requests.

Configure the provider​

Set base_url to the xAI origin, without /v1:

policy-config.yaml
pack:
  name: xai-integration
  version: 1.0.0
  enabled: true
policies:
  chain:
    - prompt-injection
providers:
  targets:
    - id: xai-primary
      provider: xai
      model: "replace-with-xai-model-id"
      base_url: https://api.x.ai
      secret_key_ref:
        env: VERDICTAN_XAI_API_KEY

The gateway appends /v1/chat/completions and sends the key from VERDICTAN_XAI_API_KEY as a Bearer token.

Start and verify​

For terminal deployment of this xAI target, use CLI 0.1.14 or later. Wait for In sync, then test the configured model with the request below.

With the quickstart in Docker, follow the container steps instead of steps 1 to 3.

  1. In the gateway terminal, set the key and lint the file:

    export VERDICTAN_XAI_API_KEY="<provider-api-key>"
    verdictan policy lint --file policy-config.yaml
  2. Restart the test gateway with the key in its environment.

  3. Deploy the file to the test agent in Configurations. If that agent already runs pack.version 1.0.0, increase the version first. Then wait for the gateway log line connected read model refresh applied updated config with your version as config_version. Try the change on a test gateway has the steps.

  4. In a second terminal, send a request for the configured model:

    export VERDICTAN_CLIENT_TOKEN="<application-token>"
    curl --fail-with-body http://127.0.0.1:41002/v1/chat/completions \
      -H "Authorization: Bearer ${VERDICTAN_CLIENT_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"model":"replace-with-xai-model-id","messages":[{"role":"user","content":"Reply with Hello."}]}'

choices[0].message.content contains the reply, and the request appears in History when capture is on, or in the delivered events.

Supported requests​

RequestSupport
Chat CompletionsYes. Streaming and tools work if the model supports them.
MessagesTranslated to Chat Completions
Responses, embeddings, audio, image input, response_format, parallel tool callsNo

A feature that xAI offers is not automatically available through this adapter.

Failure behavior​

ProblemWhat to check
401 from the gatewayThe application token is active, and the key is set on the gateway host.
Provider authentication errorVERDICTAN_XAI_API_KEY is set in the gateway process. Restart the gateway.
404 from xAIbase_url is https://api.x.ai, without /v1.
Model not foundThe request model matches the target, and your team can use it.
capability.unsupported_familyThe request is Chat Completions or Messages.
Provider 429 or another upstream errorThe response body and your xAI rate limits. See Error Handling.

Limits​

  • Model names, prices, rate limits, and data terms are in the xAI documentation.
  • Streaming and tools vary by model. Test each one with your model.
  • A listener on a non-loopback address needs TLS and network controls.

Next steps​