Reference

Configuration

Driven by appsettings.json, environment variables (with the __ separator), or a Kubernetes ConfigMap. The same keys work across all three.

Database

KeyDefaultNotes
Database__ProviderSqliteAlso Postgres, SqlServer.
Database__Pathadaptiveapi.dbSQLite only.
Database__ConnectionStringnoneRequired for Postgres and SQL Server.

Translators

KeyDefaultNotes
Translators__DefaultpassthroughAlso deepl, llm.
Translators__DeepL__ApiKeynoneRequired for deepl.
Translators__DeepL__BaseUrlhttps://api.deepl.com/Use https://api-free.deepl.com/ for free tier.
Translators__Llm__ApiKeynoneRequired for llm.
Translators__Llm__BaseUrlhttps://api.openai.com/Any OpenAI-compatible endpoint.
Translators__Llm__Modelgpt-4o-miniTranslator model.

MCP

KeyDefaultNotes
Mcp__CatalogFilecatalog/mcp-servers.jsonCurated server list shown in admin UI.

Public surface

KeyDefaultNotes
PublicBaseUrlhttp://localhost:8080External URL of the API. Used in copy-paste snippets.
ASPNETCORE_URLShttp://+:8080Bind address.
ASPNETCORE_ENVIRONMENTDevelopmentUse Production in prod.

Development helpers

KeyDefaultNotes
Dev__FixedRouteTokennoneSeed a stable route token at startup. Local only.

PII redactor

KeyDefaultNotes
PiiRedactor__ProviderregexAlso presidio.
PiiRedactor__Presidio__BaseUrlnoneRequired for presidio.

Telemetry

KeyDefaultNotes
OTEL_EXPORTER_OTLP_ENDPOINTnoneOTLP collector address. Enables spans + metrics export.
OTEL_SERVICE_NAMEadaptiveapiService name in traces.

Worked appsettings.json

{
  "Database": {
    "Provider": "Postgres",
    "ConnectionString": "Host=postgres;Database=adaptiveapi;Username=adaptiveapi;Password=..."
  },
  "Translators": {
    "Default": "deepl",
    "DeepL": {
      "ApiKey": "...",
      "BaseUrl": "https://api.deepl.com/"
    }
  },
  "PiiRedactor": {
    "Provider": "presidio",
    "Presidio": { "BaseUrl": "http://presidio:5002" }
  },
  "PublicBaseUrl": "https://adaptiveapi.example.com"
}

Same thing as env vars

Database__Provider=Postgres
Database__ConnectionString=Host=postgres;Database=adaptiveapi;Username=adaptiveapi;Password=...
Translators__Default=deepl
Translators__DeepL__ApiKey=...
PiiRedactor__Provider=presidio
PiiRedactor__Presidio__BaseUrl=http://presidio:5002
PublicBaseUrl=https://adaptiveapi.example.com