Skip to content

BYOK (bring your own key)

BYOK — bring your own key — is the option to point Marriska at your OpenAI / Anthropic / Groq / Gemini account instead of using the keys we’ve billed for. When you do, the provider bills you directly instead of us. It’s a paid feature — Starter and up, not part of Free.

This page is about why the option exists and what it actually changes. For the workflow, see How to use your own OpenAI key.

Three reasons, in order of importance:

Test generation, parsing, translation, and visual regression all hit LLM providers. By default that inference runs on Marriska’s keys, bundled into your flat tier price. With BYOK it runs on your provider account instead — the calls land on your provider bill, at your provider’s rates, under your own agreement with them.

It doesn’t lift your plan’s monthly AI quota — that’s per tier regardless of BYOK. What changes is whose account and whose terms the inference runs under.

When the platform key is shared across all users, request bursts queue. With your own key, you get your own rate-limit budget — no one else’s run hits your provider quota.

Some teams need to know which logical entity touched their pages and how the inference was billed. With BYOK, the provider’s logs are your provider’s logs. Marriska is no longer the financial intermediary, and there’s a paper trail you control.

Each AI task — translation, parsing, visual comparison — is dispatched through a ProviderRegistry that picks the right client based on configured provider/model. With per-user BYOK enabled:

  1. Your key is stored Fernet-encrypted in the database, per user.
  2. Each AI call checks “does this user have a BYOK key for this provider?” first.
  3. If yes, the call goes through your key. If no, it falls back to the platform key.

Routing is per-task, so you can BYOK the expensive paths (parsing, visual regression) and let the cheap ones run on platform keys.

A Test connection button in Settings → AI Providers runs a liveness probe (POST /settings/byok/test) against the saved key, so you can confirm the credential works before relying on it.

Marriska’s provider registry routes to five backends:

ProviderWhat it’s good forNotes
OpenAIAll four tasks (translation, parsing, vision, generation)The default for visual comparison
AnthropicTranslation, parsing, generationDoesn’t currently work for visual regression — vision API differences
Google GeminiAll four tasksVision-capable models work
GroqTranslation, parsingFast and cheap for non-vision tasks
OllamaAnything you have a local model forLocal-only — useful for self-hosters / privacy

The list a given install actually has depends on which API keys are configured. The Settings → LLM Models panel shows which are green (“ready”) versus grey (“not configured”).

BYOK isn’t a way to save money or do more — you still pay your plan, your AI calls are still capped by the same per-tier quota, and now they also show up on your own provider invoice. So it’s not a cost lever. Reach for it when you need:

  • Control and compliance. Inference must run on your provider account — your data agreement with the provider, your logs, your audit trail. This is the most common real reason.
  • Your own rate-limit headroom. On the shared platform key, request bursts can queue behind other users; your own key gives you dedicated budget.
  • A specific provider or model you’ve vetted and want to pin to.

If none of those apply, the platform key is simpler — stay on it.

Even with BYOK on, a few things keep using platform infrastructure:

  • Test execution itself (Playwright). BYOK is about the LLM calls, not the runner.
  • Storage (Postgres, screenshot blobs).
  • Scheduling and orchestration.
  • Auth, billing, dashboards.

In other words: BYOK changes who pays for the AI inference, not who runs the test or stores the data.