---
title: "Count plans"
method: GET
path: "/plans/count"
tags: ["plans"]
---

# Count plans

`GET /plans/count`

## Query parameters

- `company_id` string
- `company_scoped_only` boolean — Only return plans that are scoped to a company (custom plans assigned to a company)
- `exclude_company_scoped` boolean — Exclude plans that are scoped to a company (custom plans assigned to a company)
- `for_fallback_plan` boolean — Filter for plans valid as fallback plans (not linked to billing)
- `for_initial_plan` boolean — Filter for plans valid as initial plans (not linked to billing, free, or auto-cancelling trial)
- `for_trial_expiry_plan` boolean — Filter for plans valid as trial expiry plans (not linked to billing or free)
- `has_product_id` boolean — Filter out plans that do not have a billing product ID
- `ids` string[]
- `include_draft_versions` boolean — Include billing settings from draft versions for plans which have draft version
- `plan_type` 'plan' | 'add_on'
- `q` string
- `scoped_to_company_id` string — Filter plans scoped to a specific company (custom plans)
- `with_entitlements` boolean — Include each plan's entitlements in the response
- `without_entitlement_for` string — Filter out plans that already have a plan entitlement for the specified feature ID
- `without_paid_product_id` boolean — Filter out plans that have a paid billing product ID
- `limit` integer — Page limit (default 100)
- `offset` integer — Page offset (default 0)

## Response `200`

OK

- object
  - `data` CountResponse, required
    - `count` integer — The number of resources
  - `params` object, required — Input parameters
    - `company_id` string
    - `company_scoped_only` boolean — Only return plans that are scoped to a company (custom plans assigned to a company)
    - `exclude_company_scoped` boolean — Exclude plans that are scoped to a company (custom plans assigned to a company)
    - `for_fallback_plan` boolean — Filter for plans valid as fallback plans (not linked to billing)
    - `for_initial_plan` boolean — Filter for plans valid as initial plans (not linked to billing, free, or auto-cancelling trial)
    - `for_trial_expiry_plan` boolean — Filter for plans valid as trial expiry plans (not linked to billing or free)
    - `has_product_id` boolean — Filter out plans that do not have a billing product ID
    - `ids` string[]
    - `include_draft_versions` boolean — Include billing settings from draft versions for plans which have draft version
    - `limit` integer — Page limit (default 100)
    - `offset` integer — Page offset (default 0)
    - `plan_type` 'plan' | 'add_on'
    - `q` string
    - `scoped_to_company_id` string — Filter plans scoped to a specific company (custom plans)
    - `with_entitlements` boolean — Include each plan's entitlements in the response
    - `without_entitlement_for` string — Filter out plans that already have a plan entitlement for the specified feature ID
    - `without_paid_product_id` boolean — Filter out plans that have a paid billing product ID

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Server error

---

[API](https://skmtc.net/schematichq/apis/schematic-api.md) · [All operations](https://skmtc.net/schematichq/apis/schematic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/schematichq/schematic-api/revisions/419cb5147b52/schema)
