Install Baserun SDK

npm install baserun
# or
yarn add baserun

Generate an API key

Create an account at https://app.baserun.ai/sign-up. Then generate an API key for your project in the settings tab and set it as an environment variable.

export BASERUN_API_KEY="your_api_key_here"

Initialize baserun

You need to initialize Baserun in a body of every request handler where you want to use it.

export const POST = async (req: any) => {
  await baserun.init()
  // your request handler code


In this example, we’re using Vercel’s ai npm package to stream the result of an OpenAI chat completion to the client. Note, that Baserun doesn’t support export const runtime = "edge";, we we’re keeping this in an ordinary Lambda function deployed by Vercel.

import OpenAI from 'openai'
import { OpenAIStream, StreamingTextResponse } from 'ai'
import { baserun } from 'baserun'

const openai = new OpenAI()

export const POST = async (req: any) => {
  await baserun.init()

  const stream = baserun.trace(async () => {
    const { messages } = await req.json()
    const response = await openai.chat.completions.create({
      model: "gpt-4",
      stream: true,
    return OpenAIStream(response)
  }, "chat route")

  return new StreamingTextResponse(await stream())

Full example

You can check out a full example on how to use Baserun with Next.js here.