Use NeverMetered with Vercel AI SDK

TypeScript toolkit for AI apps, via the OpenAI-compatible provider.

OpenAI Chat
Model
qwen3.8-27b
128K context on the free plan65,536 max output tokens on the free planReplace YOUR_API_KEY with your key.
  1. 1

    Create an API key

    Create a key in API keys and name it after the tool, for example “Vercel AI SDK”. A dedicated key per tool lets you see its usage separately and give it its own parallel-stream cap. The key is shown once; the snippets below use YOUR_API_KEY where it goes.

  2. 2

    Install the packages

    npm install ai @ai-sdk/openai-compatible
  3. 3

    Export your key

    export NEVERMETERED_API_KEY="YOUR_API_KEY"
  4. 4

    Keep it for new terminals (optional)

    The command above only lasts for the current terminal. Save it once so every new terminal has it.

    # zsh (the macOS default)
    echo 'export NEVERMETERED_API_KEY="YOUR_API_KEY"' >> ~/.zshrc
    # bash
    echo 'export NEVERMETERED_API_KEY="YOUR_API_KEY"' >> ~/.bashrc
  5. 5

    Create the provider and stream text

    main.ts
    import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
    import { streamText } from "ai";
    
    const nevermetered = createOpenAICompatible({
      name: "nevermetered",
      baseURL: "https://api.nevermetered.com/v1",
      apiKey: process.env.NEVERMETERED_API_KEY,
    });
    
    const result = streamText({
      model: nevermetered("qwen3.8-27b"),
      prompt: "Reply with the word ready",
    });
    for await (const text of result.textStream) {
      process.stdout.write(text);
    }
  6. 6

    Verify it works

    Run the script; it prints the model's reply. The request shows up in Requests within a few seconds, with its input, cached and output tokens.

Tips
  • Tools, structured output and multi-step agents work the same way as with any other AI SDK provider.

Troubleshooting

404 model_not_found
Use a model id exactly as GET /v1/models lists it, for example qwen3.8-27b. Plans can restrict which models a key may call.
400 context_length_exceeded
The conversation outgrew the 128K context window (input + output). Let the tool compact or start a fresh session, or get a larger window on your plan.
429 concurrency_limit_exceeded
All your parallel streams are busy and your queue allowance is full. Lower the tool's parallelism (subagents, batch size), or get more streams on your plan.
Answers stop mid-sentence
The response hit your plan's output cap of 65,536 tokens (finish reason length or max_tokens). Ask for shorter steps, or upgrade for a higher cap.
403 email_verification_required
Free requests need a verified email. Click the link in your verification email (you can resend it from the dashboard), or upgrade.
429 daily_quota_exceeded
You've used today's free requests; agents send one request per step, so they go quickly. The allowance resets at 00:00 UTC, and paid plans have no daily limit.
503 / 504 request_queue_timeout
The service stayed busy longer than the queue timeout and nothing was generated. Retry with backoff, and give the tool a generous request timeout.
503 service_unavailable
No GPU capacity is online at the moment. It's temporary and your setup is fine: retry in a little while, and check the status page.