Providers and model naming

Connect providers and choose models

Hardcarrx routes to hosted model providers. Your provider credentials stay in your workspace; your application only ever holds the Hardcarrx API key.

Stored provider credentials (recommended)

Add a provider credential in Dashboard → Providers. Requests then need only provider and model — the stored credential resolves automatically and is never exposed to your application.

curl https://api.hardcarrx.com/v1/providers

See which providers the public catalog offers, or use the registry endpoints for freshness and routable summaries:

curl https://api.hardcarrx.com/v1/public/llm-providers/summary
curl "https://api.hardcarrx.com/v1/public/registry/models?provider=openai"

Inline provider key (BYOK)

For one-request usage without storing a credential, send provider_key in the request body. It is used only for that request.

curl https://api.hardcarrx.com/v1/chat/completions \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "openrouter",
    "provider_key": "your_provider_api_key",
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Model naming

Two identifier styles are accepted:

  • Provider-facing id — e.g. gpt-4.1-mini, used with a matching provider field.
  • Canonical provider/model form — e.g. openai/gpt-4o-mini, which names the runtime provider and model in one value.
-d '{ "provider": "openrouter", "model": "openai/gpt-4o-mini", ... }'

The canonical provider/model identity is what the public model directory (/v1/public/models/directory) and registry endpoints return — use it when you want one stable identifier across providers.