Groq()

Open-weight models at very high throughput, with your own API key. Costs go direct to the vendor at their rates — no markup, nothing on your Axon balance.

export default defineProfile({
    providers: [Groq()],
})

Serves a fixed list — see below.

Credentials

Set the environment variable, or pass key on the declaration:

GROQ_API_KEY=...
providers: [Groq({ key: process.env.MY_OWN_VAR })]

Unlike OpenRouter() and Codex(), direct providers are not vaulted yet: the credential comes from the agent's environment. A deployed agent needs it set as a runtime secret, or should use a vaulted route instead.

Declaring this provider without the variable set is not an error. The failure comes when something tries to use it, and names the variable you need.

Options

Groq(options?: ProviderOptions)
OptionDefaultDescription
keyGROQ_API_KEYYour own credential, passed directly
urlthe provider's APIEndpoint override
slotsunboundedCeiling on concurrent calls a fanned-out role may spend here

An inference host, not a vendor

Groq does not publish models; it serves other vendors' open weights on its own hardware, under names of its own choosing. OpenRouter's meta-llama/llama-3.3-70b-instruct is llama-3.3-70b-versatile here, and nothing in the first name predicts the second.

So this provider serves an explicit list rather than deriving names. A model absent from that list is not offered — which is deliberate: a derived name that Groq has never heard of would resolve at boot and 404 on the first call, and the whole point of resolving against a catalogue is to move that failure to axon prepare.

Currently mapped: the GPT-OSS models, Kimi K2, Llama 4 Maverick and Scout, Llama 3.3 70B, and Llama 3.1 8B. Others reachable on Groq's API can be added — open an issue with the canonical id and Groq's own name for it.

Model ids

Groq's own names:

export default defineAgent({ model: "groq:llama-3.3-70b-versatile" })

Why declare it

Throughput. Reach for Groq when latency matters and the workload suits open weights — compression, filtering, classification, a fanned-out percept role. Pair it with a frontier route for the roles that need one:

providers: [Groq(), Anthropic(), Axon()]