Skip to main content

Surface upstream text-watermark status per model in the selectors and API model catalog

Summary

Text output from several models Venice proxies now carries an invisible statistical watermark added upstream, before Venice sees the response. The selectors (chat, agentic chat, API) indicate nothing about it and the API catalog has no field for it. Add watermark status as informational per-model metadata.

Why this matters

Users currently have no way to know which models mark and which don't. That's a real fork in output behavior — anyone doing SEO, publishing, academic, or legal work picks models on exactly this basis. Venice's default and open-weight models are clean; the proxied models are not.

Nobody can check for themselves either: detection is application-gated at both Anthropic and xAI, restricted to regulators, media, researchers, and obligated enterprises. Without a label there is no signal at all.

It's the same class of attribute Venice already surfaces — privacy tier (Private / Anonymized / E2EE) is host-dependent, not user-controllable, and appears as a column in the API model tables. Watermark status belongs in the same slot.

Where it comes from

  • Anthropic: model level, worldwide, explicitly across the API and cloud partners, no opt-out. Per-model status published here.

  • xAI: no request parameter, but a team-level console toggle; on by default from Nov 7 for grok-4.7, 4.6, 4.5, 4.3, 4.20-reasoning, 4.20-non-reasoning, 4.20-multi-agent. Docs.

  • Google: SynthID-Text runs in the Gemini app and web; whether the API marks output is contested. unknown until Google states it — deliberate, not unverified.

Proposed solution

Informational metadata, not an interactive control — same treatment as privacy tier. No pill in the toggle row, no user-facing dial.

  • New per-model fields: textWatermark: "yes" | "no" | "unknown", plus optional textWatermarkNote

  • Surfaced in the model detail panel and info tooltip:

    • yes — "Text output carries an upstream statistical watermark."

    • no — "No text watermark—Venice-hosted inference, or the upstream provider is known not to watermark this model."

    • unknown — "Upstream status unconfirmed."

  • Echo the value and note in GET /models and the model detail response

  • Record a decision on Grok rather than inheriting the default. Team-level opt-out can't be scoped per user, so doing it for American users alone means separate upstream teams, region-based routing, and Venice taking on the disclosure duty for the opted-out cohort.

Data, as of Nov 2026

Anthropic, yes:

  • Fable 5 / 5.1, Mythos 5 / 5.1, Opus 5 / 5.5, Opus 4.7, Opus 4.8, Sonnet 5 / 5.5, Haiku 5.5

  • Opus 4.6 and Sonnet 4.6 with note: "Mark unreliable when temperature, top_p, or top_k are non-default." Venice exposes temperature, so this needs the note rather than a separate value.

  • Opus 4.5, Sonnet 4.5, Haiku 4.5: no for text, with note "Anthropic is backfilling older models; expect to flip to yes."

xAI: yes, the seven models above. Venice may choose to opt out for some classes of users; that would be a separate decision.

Venice-hosted open-weight models: no.

Alternatives considered

  • Pill in the toggle row: reads as interactive, and the user can't change it.

  • Single boolean without unknown: forces a guess on Gemini.

  • Separate partial value: duplicates yes plus a note, and pushes condition text somewhere it can't be read.

  • venice-controlled as a value: carries no state, so the tooltip still needs an on/off placeholder. The actor information is better as a note.

  • Relaying the x-watermark header per response: team-level setting doesn't vary per request.

  • Documentation page only: undiscoverable at the moment of model choice, which is the only moment it matters.

Acceptance criteria

  • Every model in the catalog carries an explicit watermark value, unknown where unconfirmed

  • Value is visible before model selection, not after

  • Conditional models carry a note

  • Value and note present in API model responses and documented in the models reference

  • Grok policy decision recorded with rationale


Log in to comment and vote

No comments yet

Be the first to share your thoughts.