---
title: "Get the plan policy for a space"
method: GET
path: "/v1/spaces/{spaceId}/plan-policy"
tags: ["Spaces"]
---

# Get the plan policy for a space

`GET /v1/spaces/{spaceId}/plan-policy`

## Request

- Base URL: `https://api.spacefast.com`
- URL: `https://api.spacefast.com/v1/spaces/{spaceId}/plan-policy`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Returns the effective plan limits and disabled behaviors that apply to this space's publishes and serving.

## Path parameters

- `spaceId` string, required

## Response `200`

Response for status 200

- object
  - `$schema` string, uri: Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
  - `data` object, required
    - `principal` object, required: Principal the policy was resolved for.
      - `type` 'team' | 'space' | 'external_principal', required
      - `id` string, required
    - `spaceId` string: Space the policy was resolved against, when space-scoped.
    - `plan` 'free' | 'go' | 'plus' | 'gold' | 'enterprise' | 'internal', required: Plan code.
    - `limits` object, required: Named plan limits.
      - `storageBytes` union, required: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `teamMembers` union, required: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `subTeams` union, required: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `liveSpaces` union, required: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `customDomains` union, required: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `boughtDomains` 'unlimited', required: Domains bought through Spacefast never count against custom domain limits.
      - `auditLogRetentionHours` union, required: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `buildAccessLogRetentionHours` union, required: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `buildsDeploysDaily` union, required: Pooled daily allowance: pricing never separates user pushes from CI builds, and passing it warns rather than blocks.
        - integer
        - 'unlimited'
      - `externalDomainGroups` union: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `maxFileBytes` union: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `maxVersionFiles` union: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `routingRules` union: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
      - `buildsDeploysMonthly` union: Plan limit value; "unlimited" when the plan does not limit this axis.
        - integer
        - 'unlimited'
    - `usage` object: Current usage against the named limits, where the platform meters it.
      - `storageBytes` integer
      - `teamMembers` integer
      - `subTeams` integer
      - `liveSpaces` integer
      - `customDomains` integer: Externally connected custom domains across the whole team.
      - `buildsDeploysToday` integer
    - `warnings` object[]: Plan-level warnings (for example storage over quota).
      - `severity` 'info' | 'warning' | 'error', required
      - `code` string, required
      - `message` string, required
    - `disabledBehaviors` object[]: Behaviors the plan disables instead of failing publishes.
      - `code` 'free_external_proxy_disabled', required: Stable code identifying the disabled behavior.
      - `behavior` string, required: What the platform does instead of honoring the behavior.
      - `renderedAs` 'warning' | 'platform_page' | 'ignored', required: How the disablement surfaces to users.

## Other responses

- `default`: Problem details (RFC 9457). Any 4xx/5xx response is one `application/problem+json` document.

---

[API](https://skmtc.dev/spacefast/apis/spacefast-api.md) · [All operations](https://skmtc.dev/spacefast/apis/spacefast-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spacefast/apis/spacefast-api/revisions/bd165bc7c983?raw)
