# Plans ## List Available Plans `zones.plans.list(PlanListParams**kwargs) -> SyncSinglePage[AvailableRatePlan]` **get** `/zones/{zone_id}/available_plans` Lists available plans the zone can subscribe to. ### Parameters - `zone_id: str` Identifier ### Returns - `class AvailableRatePlan: …` - `id: Optional[str]` Identifier - `can_subscribe: Optional[bool]` Indicates whether you can subscribe to this plan. - `currency: Optional[str]` The monetary unit in which pricing information is displayed. - `externally_managed: Optional[bool]` Indicates whether this plan is managed externally. - `frequency: Optional[Literal["weekly", "monthly", "quarterly", "yearly"]]` The frequency at which you will be billed for this plan. - `"weekly"` - `"monthly"` - `"quarterly"` - `"yearly"` - `is_subscribed: Optional[bool]` Indicates whether you are currently subscribed to this plan. - `legacy_discount: Optional[bool]` Indicates whether this plan has a legacy discount applied. - `legacy_id: Optional[str]` The legacy identifier for this rate plan, if any. - `name: Optional[str]` The plan name. - `price: Optional[float]` The amount you will be billed for this plan. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.zones.plans.list( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": [ { "id": "023e105f4ecef8ad9ca31a8372d0c353", "can_subscribe": true, "currency": "USD", "externally_managed": false, "frequency": "monthly", "is_subscribed": false, "legacy_discount": false, "legacy_id": "free", "name": "Free Plan", "price": 0 } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Available Plan Details `zones.plans.get(strplan_identifier, PlanGetParams**kwargs) -> AvailableRatePlan` **get** `/zones/{zone_id}/available_plans/{plan_identifier}` Details of the available plan that the zone can subscribe to. ### Parameters - `zone_id: str` Identifier - `plan_identifier: str` Identifier ### Returns - `class AvailableRatePlan: …` - `id: Optional[str]` Identifier - `can_subscribe: Optional[bool]` Indicates whether you can subscribe to this plan. - `currency: Optional[str]` The monetary unit in which pricing information is displayed. - `externally_managed: Optional[bool]` Indicates whether this plan is managed externally. - `frequency: Optional[Literal["weekly", "monthly", "quarterly", "yearly"]]` The frequency at which you will be billed for this plan. - `"weekly"` - `"monthly"` - `"quarterly"` - `"yearly"` - `is_subscribed: Optional[bool]` Indicates whether you are currently subscribed to this plan. - `legacy_discount: Optional[bool]` Indicates whether this plan has a legacy discount applied. - `legacy_id: Optional[str]` The legacy identifier for this rate plan, if any. - `name: Optional[str]` The plan name. - `price: Optional[float]` The amount you will be billed for this plan. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) available_rate_plan = client.zones.plans.get( plan_identifier="023e105f4ecef8ad9ca31a8372d0c353", zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(available_rate_plan.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": { "id": "023e105f4ecef8ad9ca31a8372d0c353", "can_subscribe": true, "currency": "USD", "externally_managed": false, "frequency": "monthly", "is_subscribed": false, "legacy_discount": false, "legacy_id": "free", "name": "Free Plan", "price": 0 }, "success": true } ``` ## Domain Types ### Available Rate Plan - `class AvailableRatePlan: …` - `id: Optional[str]` Identifier - `can_subscribe: Optional[bool]` Indicates whether you can subscribe to this plan. - `currency: Optional[str]` The monetary unit in which pricing information is displayed. - `externally_managed: Optional[bool]` Indicates whether this plan is managed externally. - `frequency: Optional[Literal["weekly", "monthly", "quarterly", "yearly"]]` The frequency at which you will be billed for this plan. - `"weekly"` - `"monthly"` - `"quarterly"` - `"yearly"` - `is_subscribed: Optional[bool]` Indicates whether you are currently subscribed to this plan. - `legacy_discount: Optional[bool]` Indicates whether this plan has a legacy discount applied. - `legacy_id: Optional[str]` The legacy identifier for this rate plan, if any. - `name: Optional[str]` The plan name. - `price: Optional[float]` The amount you will be billed for this plan.