---
title: "Use Augure with the Vercel AI SDK"
description: "Use Augure's Canadian, OpenAI-compatible API as a provider in the Vercel AI SDK with createOpenAICompatible and a custom baseURL."
tool: "Vercel AI SDK"
category: "framework"
canonical: "https://augureai.ca/docs/integrations/vercel-ai-sdk"
updated: "2026-10-26"
verified: false
---
# Use Augure with the Vercel AI SDK

You get Augure as a provider for `generateText`, `streamText` and the AI SDK UI hooks, with inference on Canadian infrastructure.

## Prerequisites

- Node.js 18+ and `npm install ai @ai-sdk/openai-compatible`.
- An Augure API key (`aug_sk_live_…`) from the [developer dashboard](https://chat.augureai.ca/developers/dashboard). Plans and pricing: [augureai.ca/developers](https://augureai.ca/developers).
- The key exported as `AUGURE_API_KEY`.

## Configure

Create a provider with `createOpenAICompatible` and pass model ids as strings.

```javascript test
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";

const augure = createOpenAICompatible({
  name: "augure",
  baseURL: "https://api.augureai.ca/v1",
  apiKey: process.env.AUGURE_API_KEY,
});

const { text } = await generateText({
  model: augure("tofino-3"),
  prompt: "Say hello in one short sentence.",
  maxOutputTokens: 64,
});
console.log(text);
```

Streaming to a terminal or a route handler:

```javascript
import { streamText } from "ai";

const result = streamText({
  model: augure("rosedale-1"),
  prompt: "Hello",
});
for await (const part of result.textStream) process.stdout.write(part);
// In a Next.js route: return result.toUIMessageStreamResponse();
```

Tool calling uses the standard `tools` option with `tool({ description, inputSchema, execute })`, and `generateObject` / `Output.object` use `response_format`, which Augure supports.

If you already use `@ai-sdk/openai`, `createOpenAI({ baseURL: "https://api.augureai.ca/v1", apiKey })` also works, but call `openai.chat("ossington-5")`: the default `openai("...")` model constructor uses OpenAI's Responses API, which Augure does not expose.

## Pick a model

| Model | When to use |
| --- | --- |
| `ossington-5` | Flagship reasoning. 256K context, 32,768 max output. Default for hard tasks. |
| `rosedale-1` | Premium reasoning, up to 1M context on paid plans, Canadian inference. Long documents, agent loops. |
| `tofino-3` | Fast everyday model, 256K context, 16,384 max output, no thinking. Chat, extraction, classification. |

`augure("auto")` lets the gateway pick. On `ossington-5`, `reasoning_effort: "none"` turns thinking off and is the fastest setting for mechanical tasks; `low`, `medium` and `high` are accepted on reasoning models; `tofino-3` ignores it. In the AI SDK, pass it as `providerOptions: { augure: { reasoningEffort: "none" } }`, keyed by the `name` you gave `createOpenAICompatible`. If your SDK version rejects the value, use `tofino-3`, which never thinks. Full list: [/docs/models](https://augureai.ca/docs/models).

## Verify it works

Check residency with one direct call:

```bash test
curl -s https://api.augureai.ca/v1/chat/completions \
  -H "Authorization: Bearer $AUGURE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"tofino-3","max_tokens":64,"messages":[{"role":"user","content":"Reply with the single word OK."}]}'
```

The JSON ends with an `_augure` block, for example `"_augure": {"gateway_region": "ca-montreal-1", "inference_region": "ca-on-toronto", "request_id": "..."}`. `inference_region` tells you where the model ran. Inference is on Canadian infrastructure first, with disclosed failover to vetted EU partners under zero data retention, never the US.

## Notes

- Option names follow AI SDK 5: `maxOutputTokens` and `inputSchema`. AI SDK 4 used `maxTokens` and `parameters`.
- The AI SDK sends `stream_options.include_usage` itself; `result.usage` resolves after the stream ends.
- Reasoning text from thinking models arrives in `reasoning_content`; the openai-compatible provider exposes it as reasoning parts in recent versions, otherwise it is dropped and only `text` is returned.
- OpenAI model aliases are accepted: `gpt-4o` maps to `ossington-4`, `gpt-4o-mini` to `tofino-3`.

## See also

- [API reference](https://augureai.ca/docs/api)
- [Models](https://augureai.ca/docs/models)
- [MCP server](https://augureai.ca/docs/mcp)
- [IDE setup](https://augureai.ca/docs/ide)
- [Pricing](https://augureai.ca/pricing)
