Using rate plans, API product owners can monetize their API products by configuring the following:
Manage rate plans for your API products as described in the following sections.
View rate plans in your organization as described in the following sections.
View rate plans using the Apigee UI in Cloud console as described in the following sections:
View rate plans defined for your organization on the Rate plans page.
To access the Rate plans page:
The Rate Plans page opens and lists the current rate plans.
The Rate Plans page enables you to:
Published
or Draft
) and whether it is active, and activation and expiration timesWhen managing an API product, you can view and manage the rate plans associated with an API product. Scroll down to the Rate plan section to see the rate plans.
View rate plans using the UI as described in the following sections:
View rate plans defined for your organization on the Rate plans page.
To access the Rate plans page:
The Rate Plans page lists the current rate plans.
On the Rate Plans page, you can:
Published
or Draft
) and whether it is active, and activation and expiration timesWhen managing an API product, you can view and manage the rate plans associated with an API product. Edit the API product and scroll down to the Rate plans section.
The following sections describe how to view rate plans for an organization using the API:
To list the rate plans for the organization, issue a GET
request to the following API: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans
For example using curl:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans?expand=true" \ -X GET \ -H "Authorization: Bearer $TOKEN"
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
The following provides an example of the response output, including the two rate plans, myrateplan1
and myrateplan2
associated with HelloworldProduct
API product:
{ "ratePlans": [ { "name": "6b51b501-ac15-41b7-bb3e-621edb849e13", "apiproduct": "HelloworldProduct", "displayName": "myrateplan2", "billingPeriod": "MONTHLY", "currencyCode": "USD", "setupFee": { "currencyCode": "USD", "units": "20" }, "fixedRecurringFee": { "currencyCode": "USD", "units": "25" }, "fixedFeeFrequency": 1, "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "nanos": 500000000 } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 2 } ], "state": "DRAFT" }, { "name": "8c0b527c-ba2f-45f1-ac1c-b9e891546fc2", "apiproduct": "HelloworldProduct", "displayName": "myrateplan1", "billingPeriod": "MONTHLY", "currencyCode": "USD", "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "units": "3" } } ], "state": "PUBLISHED", "startTime": "1617302588000" } ] }
For more information about the API and its response payload, see the List rate plans API
To view details for a rate plan, issue a GET
request to the following API: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME
To determine the name of the rate plan to pass in the resource path, see Listing the rate plans in an organization.
For example using curl:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME" \ -X GET \ -H "Authorization: Bearer $TOKEN"
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
The following provides an example of the response output for the rate plan with the name 6b51b501-ac15-41b7-bb3e-621edb849e13
and display name myrateplan2
:
{ "name": "6b51b501-ac15-41b7-bb3e-621edb849e13", "apiproduct": "HelloworldProduct", "displayName": "myrateplan2", "billingPeriod": "MONTHLY", "currencyCode": "USD", "setupFee": { "currencyCode": "USD", "units": "20" }, "fixedRecurringFee": { "currencyCode": "USD", "units": "25" }, "fixedFeeFrequency": 1, "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "nanos": 500000000 } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 2 } ], "state": "DRAFT" }
For more information about the API and its response payload, see the Get rate plan API.
To create a rate plan using the using the Apigee UI in Cloud console:
Field | Description |
---|---|
Rate plan name | Enter the name of the rate plan. |
API product | Select an API product to which you want to associate the rate plan from the drop-down. |
Field | Description | Default |
---|---|---|
Billing currency | Select the currency to use for billing from the drop-down. | USD |
Billing period | Select the frequency at which the customer will be billed from the drop-down. | Monthly |
Initialization fee | A one-time fee that is charged to each developer on the start date of the rate plan (that is, the date the developer purchases the API product). If you want to charge the setup fee, select Charge initialization fee and enter the amount to be charged in the Initialization fee field. | Disabled |
Field | Description | Default |
---|---|---|
Fixed recurring fee | Enable a fixed recurring fee per unit:
The fee will be prorated for the first billing period. If enabled, you can preview the effects that the fixed recurring fee will have on the itemized and total charges, as described in Previewing your rate plan. To disable the fee, deselect Charge fixed recurring fee. | Disabled |
Consumption based fees | Enable consumption-based pricing:
If you enable any consumption-based fees, you can preview the effects of the selected fee type on the overall revenue as described in Previewing your rate plan. To disable the fee, deselect Charge consumption-based pricing model. If you have configured the | Disabled |
Field | Description | Default |
---|---|---|
Revenue share | Enable revenue sharing to share a percentage of revenue with developer partners.
You can get the shared revenue for each monetized transaction by configuring the If you enable revenue sharing, you can preview the effects of the entered Percentage (%) value on the itemized and total charges, as described in Previewing your rate plan. To disable the fee, deselect Enable revenue sharing. | Disabled |
To create a rate plan using the UI:
Field | Description |
---|---|
Rate plan name | Enter the name of the rate plan. |
API product | Select an API product to which you want to associate the rate plan from the drop-down. |
Field | Description | Default |
---|---|---|
Billing currency | Select the currency to use for billing from the drop-down. | USD |
Billing period | Select the frequency at which the customer will be billed from the drop-down. | Monthly |
Initialization fee | A one-time fee that is charged to each developer on the start date of the rate plan (that is, the date the developer purchases the API product). If you want to charge the setup fee, select Charge setup fee and enter the amount to be charged in the Initialization fee field. | Disabled |
Field | Description | Default |
---|---|---|
Fixed recurring fee | Enable a fixed recurring fee per unit:
The fee will be prorated for the first billing period. If enabled, you can preview the effects that the fixed recurring fee will have on the itemized and total charges, as described in Previewing your rate plan. To disable the fee, deselect Charge fixed recurring fee. | Disabled |
Consumption based fees | Enable consumption-based pricing:
If you enable any consumption-based fees, you can preview the effects of the selected fee type on the overall revenue as described in Previewing your rate plan. To disable the fee, deselect Charge consumption-based pricing model. If you have configured the | Disabled |
Field | Description | Default |
---|---|---|
Revenue share | Enable revenue sharing to share a percentage of revenue with developer partners.
You can get the shared revenue for each monetized transaction by configuring the If you enable revenue sharing, you can preview the effects of the entered Percentage (%) value on the itemized and total charges, as described in Previewing your rate plan. To disable the fee, deselect Enable revenue sharing. | Disabled |
To create a rate plan, issue a POST
request to the following API: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans
Configure the rate plan by passing the required fields in the request body, as described in Resource: RatePlans.
The following table summarizes the required fields when creating a draft and published rate plan.
Required fields for draft rate plan | Required fields for published rate plan |
---|---|
|
|
For example, the following API call creates a draft rate plan named myrateplan5
associated with the HelloworldProduct
API product:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/HelloworldProduct/rateplans" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-type: application/json" \ -d '{ "apiproduct":"HelloworldProduct", "billingPeriod":"MONTHLY", "consumptionPricingType":"FIXED_PER_UNIT", "consumptionPricingRates":[{ "fee":{ "units":"3", "nanos":0 } }], "currencyCode":"USD", "displayName":"myrateplan5", "revenueShareType":"FIXED", "revenueShareRates":[{ "sharePercentage":"1" }], "setupFee":{ "units":"10", "nanos":0 }, "state":"DRAFT" }'
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
The following provides an example of the response output:
{ "name": "4403a3a5-b366-44f0-aa4d-bd54dcfd3239", "apiproduct": "HelloworldProduct", "displayName": "myrateplan5", "billingPeriod": "MONTHLY", "currencyCode": "USD", "setupFee": { "currencyCode": "USD", "units": "10" }, "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "units": "3" } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 1 } ], "state": "DRAFT" }
For more information, see the Create rate plan API
Based on your pricing and revenue share configuration, you can preview the itemized charges and billed totals in the Rate plan preview section of the Rate plan page, as shown in the following figure.
Update the API unit consumption field in the Example consumer data section to change the estimates in the preview. The itemized charges and totals update based on your input.
Update the following fields in the Example consumer data section:
Set activation and expiration times for a rate plan to indicate when a published rate plan is active and that the associated API product is available for developers to use in their apps.
Consider the following when setting activation and expiration times:
Never
(the rate plan never expires).hh:mm:ss:mmm
). The time of day for the activation and expiration values defaults to 12:00:00:000 AM
and 11:59:59:999 PM
, respectively. Set the activation and expiration times for rate plans as described in the following sections.
To set the activation time for a rate plan using the Apigee UI in Cloud console:
To set the expiration time for a rate plan using the Apigee UI in Cloud console:
To set the activation time for a rate plan using the UI:
To set the expiration time for a rate plan using the UI:
To set the activation or expiration times for a rate plan using the API:
To update the rate plan with the new configuration, issue a PUT
request to the following API, passing the modified request body in your request: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME
For example, the following sets the activation time to April 1, 2021 (1617302588000
epoch time):
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME" \ -X PUT \ -H "Authorization: Bearer $TOKEN" \ -H "Content-type: application/json" \ -d '{ "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "currencyCode":"USD", "billingPeriod":"MONTHLY", "consumptionPricingType":"FIXED_PER_UNIT", "consumptionPricingRates":[{ "fee":{ "units":"3", "nanos":0 } }], "revenueShareType":"FIXED", "revenueShareRates":[{ "sharePercentage":"5" }], "state":"DRAFT", "startTime": 1617302588000 }'
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
For more information about the fields you can specify in the request body, see Resource: RatePlans.
The following provides an example of the response output:
{ "name": "cb9f420e-313d-4900-aa4f-e07b2b76918d", "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "billingPeriod": "MONTHLY", "currencyCode": "USD", "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "units": "3" } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 5 } ], "state": "DRAFT", "startTime": "1617302588000" }
For more information, see the Update rate plan API
Publish rate plans as described in the following sections.
To publish a rate plan using the UI, use one of the following methods:
This option appears only if you have set an activation date for the draft rate plan.
To publish a rate plan using the UI, use one of the following methods:
This option appears only if you have set an activation date for the draft rate plan.
To publish a rate plan using the API:
Never
.To publish the rate plan, issue a PUT
request to the following API, passing the modified request body in your request: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME
For example, the following changes the status of the rateplan1
rate plan to PUBLISHED
and sets the activation time to April 1, 2021, specified as milliseconds since epoch:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME" \ -X PUT \ -H "Authorization: Bearer $TOKEN" \ -H "Content-type: application/json" \ -d '{ "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "currencyCode":"USD", "billingPeriod":"MONTHLY", "consumptionPricingType":"FIXED_PER_UNIT", "consumptionPricingRates":[{ "fee":{ "units":"3", "nanos":0 } }], "revenueShareType":"FIXED", "revenueShareRates":[{ "sharePercentage":"5" }], "state":"PUBLISHED", "startTime": 1617302588000 }'
For more information about the fields you can specify in the request body, see Resource: RatePlans.
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
The following provides an example of the response output:
{ "name": "cb9f420e-313d-4900-aa4f-e07b2b76918d", "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "billingPeriod": "MONTHLY", "currencyCode": "USD", "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "units": "3" } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 5 } ], "state": "PUBLISHED", "startTime": "1617302588000" }
For more information, see the Update rate plan API
Move published rate plans to draft status as described in the following sections.
To move a published rate plan to draft status using the Apigee UI in Cloud console:
The rate plan is updated and the Status
field is changed to Draft.
To move a published rate plan to draft status using the UI:
The rate plan is updated and the Status
field is changed to Draft.
To move a published rate plan to draft status using the API:
To move the published rate plan to draft status, issue a PUT
request to the following API, passing the modified request body in your request: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME
For example, the following changes the status of the rateplan1
rate plan to DRAFT
:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME" \ -X PUT \ -H "Authorization: Bearer $TOKEN" \ -H "Content-type: application/json" \ -d '{ "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "currencyCode":"USD", "billingPeriod":"MONTHLY", "consumptionPricingType":"FIXED_PER_UNIT", "consumptionPricingRates":[{ "fee":{ "units":"3", "nanos":0 } }], "revenueShareType":"FIXED", "revenueShareRates":[{ "sharePercentage":"5" }], "state":"DRAFT", "startTime": 1617302588000 }'
For more information about the fields you can specify in the request body, see Resource: RatePlans.
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
The following provides an example of the response output:
{ "name": "cb9f420e-313d-4900-aa4f-e07b2b76918d", "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "billingPeriod": "MONTHLY", "currencyCode": "USD", "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "units": "3" } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 5 } ], "state": "DRAFT", "startTime": "1617302588000" }
For more information, see the Update rate plan API
Update a rate plan as described in the following sections.
To update a rate plan using the UI:
To update a rate plan using the UI:
To update a rate plan using the API:
To update a rate plan, issue a PUT
request to the following API, passing the modified request body in your request: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME
For example, the following changes the consumption-based fee to 5; and the revenue share percentage to 6.5% all other configuration settings are included to ensure that they are maintained:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME" \ -X PUT \ -H "Authorization: Bearer $TOKEN" \ -H "Content-type: application/json" \ -d '{ "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "currencyCode":"USD", "billingPeriod":"MONTHLY", "consumptionPricingType":"FIXED_PER_UNIT", "consumptionPricingRates":[{ "fee":{ "units":"5", "nanos":0 } }], "revenueShareType":"FIXED", "revenueShareRates":[{ "sharePercentage":"6.5" }], "state":"DRAFT", "startTime": 1617302588000 }'
For more information about the fields you can specify in the request body, see Resource: RatePlans.
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
The following provides an example of the response output:
{ "name": "cb9f420e-313d-4900-aa4f-e07b2b76918d", "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "billingPeriod": "MONTHLY", "currencyCode": "USD", "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "units": "5" } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 6.5 } ], "state": "DRAFT", "startTime": "1617302588000" }
For more information, see the Update rate plan API
Clone rate plans to create duplicate rate plans based on existing rate plans.
To clone a rate plan using the UI:
The rate plan is added to the list of rate plans.
To clone a rate plan using the UI:
The rate plan is added to the list of rate plans.
To clone a rate plan using the API:
Deleting a rate plan is permanent. The rate plan will be deleted immediately and cannot be restored.
Delete rate plans as described in the following sections.
To delete a rate plan using the UI:
The rate plan is deleted and removed from the list.
To delete a rate plan using the UI:
The rate plan is deleted and removed from the list.
To delete a rate plan, issue a DELETE
request to the following API: https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME
.
To determine the name of the rate plan to pass in the resource path, see Listing the rate plans in an organization.
For example, the following deletes the rate plan with name cc6252c0-c5d0-4aaf-85f2-203ec8fa5707
and display name myrateplan3
:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/apiproducts/$APIPRODUCT/rateplans/$RATEPLAN_NAME" \ -X DELETE \ -H "Authorization: Bearer $TOKEN
Where $TOKEN
is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl
options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.
The following provides an example of the response output:
{ "name": "93ca14aa-7a48-4384-ae09-c85a0e8a8df8", "apiproduct": "HelloworldProduct", "displayName": "myrateplan3", "billingPeriod": "MONTHLY", "currencyCode": "USD", "consumptionPricingType": "FIXED_PER_UNIT", "consumptionPricingRates": [ { "fee": { "currencyCode": "USD", "units": "5" } } ], "revenueShareType": "FIXED", "revenueShareRates": [ { "sharePercentage": 6.5 } ], "state": "DRAFT", "startTime": "1617302588000" }
For more information, see the Delete rate plans API.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-04-24 UTC.