---
title: "Get public server configuration"
method: GET
path: "/api/config"
tags: ["config", "internal"]
---

# Get public server configuration

`GET /api/config`

Returns public configuration settings like OIDC providers, billing status, etc.

## Response `200`

Public server configuration

- ApiResponsePublicConfigResponse
  - `data` object
    - `billing_enabled` boolean, required
    - `deployment_type` 'cloud' | 'commercial' | 'community', required
    - `disable_password_login` boolean, required
    - `disable_registration` boolean, required
    - `discount_save_offer_available` boolean, required — `STRIPE_SAVE_OFFER_COUPON_ID` env var is set. When false, the cancel modal hides the discount save-offer panel so the user doesn't see an option the deployment can't fulfil.
    - `has_email_opt_in` boolean, required
    - `has_email_service` boolean, required
    - `has_integrated_daemon` boolean, required
    - `license_expiry` string, nullable — Hard expiry — the drop-dead date after which the server rejects the key. Referenced by the grace-period banner.
    - `license_in_grace_period` boolean, required — True when the license is past `intended_exp` but not yet past the hard `exp` — the silent grace window.
    - `license_intended_expiry` string, nullable — User-visible expiry — the date displayed to end users under normal operation. 7 days earlier than `license_expiry` for keys issued after grace-period support landed.
    - `license_status` string, nullable
    - `needs_cookie_consent` boolean, required
    - `oidc_providers` OidcProviderMetadata[], required
      - `logo` string, nullable
      - `name` string, required
      - `slug` string, required
    - `org_limit_reached` boolean, required — True when this self-hosted instance has reached its licensed organization cap (`included_orgs`), so new-org registration is blocked. Always false on cloud (multi-tenant) and on unlimited-org plans.
    - `posthog_key` string, nullable
    - `public_url` string, required
    - `server_admin_contact_email` string, email, required — Admin contact email to show users blocked by `org_limit_reached`, from `SCANOPY_SERVER_ADMIN_CONTACT_EMAIL`.
    - `server_port` integer, required
    - `snapshot_retention_days_override` integer, nullable — `SCANOPY_SNAPSHOT_RETENTION_DAYS_OVERRIDE` if set on this instance. Frontend uses it inside the plan-comparison view to display the effective retention for this deployment rather than the per-plan fixture default.
    - `stripe_publishable_key` string, nullable — Stripe publishable key, exposed so the frontend can mount Stripe Elements (Payment Element) for in-app card collection. `None` when billing isn't configured. Publishable keys are safe to expose to the browser (same as `posthog_key`).
  - `error` string, nullable
  - `meta` ApiMeta, required — API metadata included in all responses
    - `api_version` integer, required — API version (integer, increments on breaking changes)
    - `server_version` string, required — Server version (semver)
  - `success` boolean, required

## Changes

- **2026-07-07** `d8684743dffa` — 2 info
  - added the required property `data/org_limit_reached` to the response with the `200` status
  - added the required property `data/server_admin_contact_email` to the response with the `200` status
- **2026-06-24** `845d83676b35` — 1 info
  - added the optional property `data/stripe_publishable_key` to the response with the `200` status
- **2026-06-15** `94e5ff6f8627` — 1 info
  - added the required property `data/discount_save_offer_available` to the response with the `200` status
- **2026-06-11** `3152cf58226a` — 1 info
  - added the optional property `data/snapshot_retention_days_override` to the response with the `200` status
- **2026-06-11** `5f1208d6d875` — 1 warning
  - removed the optional property `data/snapshot_retention_days_override` from the response with the `200` status

[Full history](https://skmtc.dev/scanopy/apis/scanopy-api/changes/api/config/get.md)

---

[API](https://skmtc.dev/scanopy/apis/scanopy-api.md) · [All operations](https://skmtc.dev/scanopy/apis/scanopy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scanopy/scanopy-api/revisions/49ea97c8bb7e/schema)
