---
title: "View server configuration"
method: GET
path: "/v0/server/config"
tags: ["server"]
---

# View server configuration

`GET /v0/server/config`

View the API server configuration. The user must be an admin on the server to use this route.

## Response `200`

successful operation

- JsonConfig
  - `console` JsonConsole, required
    - `url` string, required
  - `database` JsonDatabase, required
    - `busy_timeout` integer, nullable — The database busy timeout in milliseconds
    - `cache_size` integer, nullable — The database page cache size in KiB for the writer connection
    - `data_store` DataStore
      - `access_key_id` string, required
      - `access_point` string, required
      - `secret_access_key` string, required
      - `service` 'aws_s3', required
    - `file` string, required
  - `logging` JsonLogging, required
    - `log` union, required
      - object
        - `stderr_terminal` object, required
          - `level` 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'critical', required
      - object
        - `file` object, required
          - `if_exists` 'fail' | 'truncate' | 'append', required
          - `level` 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'critical', required
          - `path` string, required
    - `name` string, required
  - `plus` JsonPlus
    - `cloud` JsonCloud
      - `billing` JsonBilling, required
        - `products` JsonProducts, required
          - `bare_metal` JsonProduct, required
            - `id` string, required
            - `licensed` object
            - `metered` object
          - `enterprise` JsonProduct, required
            - `id` string, required
            - `licensed` object
            - `metered` object
          - `metrics` JsonProduct, required
            - `id` string, required
            - `licensed` object
            - `metered` object
          - `pro` JsonProduct, required
            - `id` string, required
            - `licensed` object
            - `metered` object
          - `team` JsonProduct, required
            - `id` string, required
            - `licensed` object
            - `metered` object
        - `secret_key` string, required
      - `index` JsonIndex
        - `bing` JsonBingIndex, required
          - `key` string, required
          - `key_location` string
        - `google` JsonGoogleIndex, required
          - `client_email` string, required
          - `private_key` string, required
          - `token_uri` string, required
      - `license_pem` string, required
      - `otel` JsonOtel
        - `endpoint` string, required
        - `interval` integer, nullable — The OTEL export interval in seconds. Defaults to 15 seconds, if not specified.
        - `protocol` union, required
          - 'grpc' — GRPC protocol
          - 'http/binary' — HTTP protocol with binary protobuf
          - 'http/json' — HTTP protocol with JSON payload
      - `recaptcha` JsonRecaptcha
        - `min_score` number, float, required
        - `secret` string, required
      - `sentry` string
    - `github` JsonGitHub
      - `client_id` string, required
      - `client_secret` string, required
    - `google` JsonGoogle
      - `client_id` string, required
      - `client_secret` string, required
    - `litestream` JsonLitestream
      - `checkpoint` JsonCheckpoint
        - `interval` string, nullable — How often to perform a non-blocking PASSIVE checkpoint
        - `min_page_count` integer, nullable — Minimum WAL pages before a PASSIVE checkpoint triggers
        - `truncate_page_n` integer, nullable — Page threshold for blocking TRUNCATE checkpoint (0 to disable)
      - `replica` union, required
        - object
          - `path` string, required
          - `scheme` 'file', required
          - `sync_interval` string, nullable
        - object
          - `host` string, required
          - `key_path` string, nullable
          - `password` string
          - `path` string, nullable
          - `port` integer, required
          - `scheme` 'sftp', required
          - `sync_interval` string, nullable
          - `user` string, required
        - object
          - `access_key_id` string, required
          - `bucket` string, required
          - `endpoint` string, nullable
          - `path` string, nullable
          - `region` string, nullable
          - `scheme` 's3', required
          - `secret_access_key` string, required
          - `sync_interval` string, nullable
      - `snapshot` JsonSnapshot
        - `interval` string, nullable — How often new snapshots are created
        - `retention` string, nullable — How long snapshot & WAL files are kept
      - `validation` JsonValidation
        - `interval` string, nullable — How often to restore and validate replica data
    - `rate_limiting` JsonRateLimiting
      - `claimed_limit` integer, nullable
      - `oci_bandwidth` JsonOciBandwidth
        - `free` integer, nullable — Bytes per day for free (claimed, no paid plan) organizations
        - `plus` integer, nullable — Bytes per day for Plus (Team/Enterprise) organizations
        - `unclaimed` integer, nullable — Bytes per day for unclaimed organizations (0 members)
      - `project` JsonProjectRateLimiter
        - `requests` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `runs` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
      - `public` JsonPublicRateLimiter
        - `attempts` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `requests` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `runs` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
      - `runner` JsonRunnerRateLimiter
        - `requests` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
      - `unclaimed_limit` integer, nullable
      - `user` JsonUserRateLimiter
        - `attempts` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `credentials` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `invites` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `organizations` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `requests` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
        - `runs` JsonRateLimits
          - `day` integer, nullable
          - `hour` integer, nullable
          - `minute` integer, nullable
      - `window` integer, nullable
    - `registry` JsonRegistry — Container registry configuration
      - `data_store` union — Container registry storage backend
        - object
          - `service` 'local', required
        - object
          - `access_key_id` string, required — AWS Access Key ID with permissions to read/write the specified S3 bucket
          - `access_point` string, required — S3 Access Point ARN with optional path prefix Format: arn:aws:s3:<region>:<account-id>:accesspoint/<bucket>[/path]
          - `chunk_size` integer, nullable — Minimum chunk size in bytes for buffering upload data before storing to S3. Valid range: 5 MB–5 GB. Defaults to 5 MB (5,242,880 bytes). See [`DEFAULT_CHUNK_SIZE`] and [`MAX_CHUNK_SIZE`].
          - `secret_access_key` string, required
          - `service` 'aws_s3', required
      - `max_body_size` integer — Maximum body size in bytes for blob and manifest uploads. Requests exceeding this limit are rejected with 413 Payload Too Large. Defaults to 1 GiB (1,073,741,824 bytes).
      - `upload_timeout` integer — Upload session timeout in seconds. Uploads older than this are cleaned up when new uploads start. Defaults to 3600 (1 hour).
      - `url` string
    - `runners` JsonRunners2 — Runner system configuration
      - `heartbeat_timeout` integer
      - `job_timeout_grace_period` integer
      - `update_base_url` string
    - `stats` JsonStats
      - `enabled` boolean, nullable — Enable stats collection
      - `offset` integer, nullable — Number of seconds from midnight
  - `security` JsonSecurity, required
    - `issuer` string, nullable
    - `secret_key` string, required
  - `server` JsonServer2, required
    - `bind_address` string, required
    - `request_body_max_bytes` integer, required
    - `tls` union
      - object
        - `cert_file` string, required
        - `key_file` string, required
        - `type` 'as_file', required
      - object
        - `certs` integer[], required
        - `key` integer[], required
        - `type` 'as_bytes', required
  - `smtp` JsonSmtp
    - `from_email` string, required
    - `from_name` string, required
    - `hostname` string, required
    - `insecure_host` boolean, nullable
    - `port` integer, nullable
    - `secret` string, required
    - `starttls` boolean, nullable
    - `username` string, required

## Other responses

- `4XX` — Error
- `5XX` — Error

---

[API](https://skmtc.net/bencherdev/apis/bencher-api.md) · [All operations](https://skmtc.net/bencherdev/apis/bencher-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bencherdev/bencher-api/revisions/84086e99e6cd/schema)
