Skip to main content
Zunova

Code Examples

Minimal examples for common runtimes and SDKs.

Node.js with OpenAI SDK

Configure the OpenAI SDK with the Zunova OpenAI-compatible base URL. The SDK appends /chat/completions automatically.

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ZUNOVA_API_KEY,
  baseURL: "https://api.zunova.net/open/v1",
});

const response = await client.chat.completions.create({
  model: "zunova-m1",
  messages: [{ role: "user", content: "Hello from Node.js" }],
  temperature: 0.2,
});

console.log(response.choices[0]?.message?.content);

Node.js with fetch

const response = await fetch("https://api.zunova.net/open/v1/chat/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ZUNOVA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "zunova-m1",
    messages: [{ role: "user", content: "Hello from fetch" }],
  }),
});

if (!response.ok) {
  throw new Error(await response.text());
}

const data = await response.json();
console.log(data.choices?.[0]?.message?.content);

Python with OpenAI SDK

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ZUNOVA_API_KEY"],
    base_url="https://api.zunova.net/open/v1",
)

response = client.chat.completions.create(
    model="zunova-m1",
    messages=[{"role": "user", "content": "Hello from Python"}],
    temperature=0.2,
)

print(response.choices[0].message.content)

Python with requests

import os
import requests

response = requests.post(
    "https://api.zunova.net/open/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {os.environ['ZUNOVA_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "model": "zunova-m1",
        "messages": [{"role": "user", "content": "Hello from requests"}],
    },
    timeout=60,
)

response.raise_for_status()
print(response.json()["choices"][0]["message"]["content"])

Next.js route handler

Use a server route to keep your Zunova API key out of browser JavaScript.

import { NextResponse } from "next/server";

export async function POST(request: Request) {
  const { prompt } = await request.json();

  const response = await fetch("https://api.zunova.net/open/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.ZUNOVA_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "zunova-m1",
      messages: [{ role: "user", content: prompt }],
    }),
  });

  const data = await response.json();
  return NextResponse.json(data, { status: response.status });
}

On this page