1. Create a key

Sign in to the console, create an organisation and a project, and create a key. It is shown once: store it in your secret manager as EGEN_API_KEY.

2. Set the address

The base address is https://api.quince-ai.com/v1. Every call goes there, with your key in the Authorization header.

3. Send a request

Chat, with curl:

curl https://api.quince-ai.com/v1/chat/completions \
  -H "Authorization: Bearer $EGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"model": "gemma-4-31B-it", "messages": [{"role": "user", "content": "Summarise the attached minutes in three bullet points."}]}'

The same with the OpenAI library for Python:

import os
from openai import OpenAI

client = OpenAI(base_url="https://api.quince-ai.com/v1", api_key=os.environ["EGEN_API_KEY"])
reply = client.chat.completions.create(
    model="gemma-4-31B-it",
    messages=[{"role": "user", "content": "Summarise the attached minutes in three bullet points."}],
)
print(reply.choices[0].message.content)

Embeddings

vectors = client.embeddings.create(
    model="multilingual-e5-large-instruct",
    input=["Avtalet löper i tre år.", "The agreement runs for three years."],
)

Speech to text

Send an audio file of up to 100 MB:

curl https://api.quince-ai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $EGEN_API_KEY" \
  -F model=kb-whisper-large \
  -F file=@styrelsemote.m4a

Errors and retries

Errors come back as {"error": {"message", "type", "code", "request_id"}}. Quote the request_id when you contact support. Send an Idempotency-Key with every generation so a retry cannot start a second one.

All models →