You are viewing the Apigee Management API reference documentation. For the main product docs, and to search all docs, go to https://docs.apigee.com.

Create a rate plan

Resource Summary

Security

Content Type

application/json

Category

Rate plans,

Create a rate plan

POST

Create a rate plan

A rate plan specifies the monetization approach for your API package or for individual API products in the package. For example, it specifies whether you charge for the use of your API package and products based on a flat rate or a variable rate, and whether there are additional fees.

You define the type of plan to indicate whether it applies to all developers, developers in a specific category, or a specific developer. You can configure the following features:

  • Set a one-time or recurring fee for the plan
  • Add a freemium part to the plan enabling devleopers to try out features for free over a period of time
  • Configure a rate plan type, such as revenue share, rate card, or combination
  • Set a renewal period
  • Define product-specific plans, if desired

 

After you initially set up a rate plan, you can update it to add fees, add a fremium plan, or specify additional rate plan details.

Note: You can set up multiple rate plans for an API package.

See also Create rate plans using the API.

Resource URL

https://api.enterprise.apigee.com/v1/mint /organizations/{org_name}/monetization-packages/{package_id}/rate-plans

Header Parameters

Name Values Description
Content-Type
(required)

Request content type.

Request Body

{ "advance": { "type": "boolean", "description": "Flag that specifies whether or not the recurring fee is charged in advance. For example, if set to true and the period is 1 month, the recurring fee is charged on the invoice generated when the prior billing month ends. Defaults to false." }, "contractDuration": { "type": "integer", "description": "Length of the contract for the plan together with contractDurationType. For example, to specify a contract duration of 6 months, set contractDuration to 6 and contractDurationType to MONTH." }, "contractDurationType": { "type": "string", "description": "Length of the contract for the plan together with contractDuration. Valid values include: DAY, WEEK, MONTH, QUARTER, or YEAR." }, "currency": { "properties": { "id": { "type": "string", "description": "ISO 4217 code for the currency, such as usd for United States dollar or chf for Swiss franc." } } }, "description": { "type": "string", "description": "Description of the rate plan." }, "developer": { "properties": { "id": { "type": "string", "description": "ID of the developer." }, "legalName": { "type": "string", "description": "Legal name of the developer." }, "name": { "type": "string", "description": "Name of the developer." } } }, "developerCategory": { "properties": { "id": { "type": "string", "description": "ID of the developer category." }, "name": { "type": "string", "description": "Name of the developer category." }, "description": { "type": "string", "description": "Description of the developer category." } } }, "displayName": { "type": "string", "description": "User-friendly display name for the rate plan." }, "earlyTerminationFee": { "type": "number", "description": "One-time fee that is charged if the developer ends the plan before the renewal term." }, "endDate": { "type": "string", "description": "Date and time that the plan ends in UTC. Use the following format: YYYY-MM-DD HH:mm:ss. If you do not specify a timestamp (not recommended), 00:00:00 (midnight) is used by default. Developers are not able to view the rate plan after this date. If you do not want the rate plan to end on a specific date, specify a null value." }, "freemiumDuration": { "type": "integer", "description": "Period of time for the freemium period together with freemiumDurationType. For example, to specify that the freemium period is 30 days, set freemiumDuration to 30 and freemiumDurationType to DAY." }, "freemiumDurationType": { "type": "string", "description": "Period of time for the freemium period together with freemiumDuration. Valid values include: DAY, WEEK, MONTH, QUARTER, or YEAR." }, "freemiumUnit": { "type": "string", "description": "Freemium quantity. The value can be the number of transactions or the number of units pertaining to a custom attribute recorded in the transaction recording policy." }, "frequencyDuration": { "type": "integer", "description": "Together with frequencyDurationType, indicates the period to fime between recurring fee charges. For example, to specify that the period of time between fee charges is 30 days, set frequencyDuration to 30 and frequencyDurationTime to DAY." }, "frequencyDurationType": { "type": "string", "description": "Period of time between recurring fee charges. Valid values include: DAY, WEEK, MONTH, QUARTER, or YEAR." }, "isPrivate": { "type": "boolean", "description": "Flag that specifies whether the rate plan is public or private. Defaults to false (public)." }, "monetizationPackage": { "properties": { "id": { "type": "string", "description": "Name of the API package for the rate plan." } } }, "name": { "type": "string", "description": "Name of the rate plan." }, "organization": { "properties": { "id": { "type": "string", "description": "ID of the organization." } } }, "paymentDueDays": { "type": "integer", "description": "Number of days at which time the fees are due." }, "prorate": { "type": "boolean", "description": "Flag that specifies whether the recurring fee is prorated. This flag pertains to the developer starting or ending the plan part of the way through a month. If set to true, the intial fee is prorated bsed on the number of days until the end of the period or the number of days used in the period. Defaults to false." }, "published": { "type": "boolean", "description": "Flag that specifies whether the rate plan should be published, making it available to developers." }, "ratePlanDetails": { "type": "array", "description": "Details for the rate plan.", "items": { "properties": { "aggregateFreemiumCounters": { "type": "boolean", "description": "Flag that specifies whether or not aggregate counters are enabled to determine if usage of an API product is in the free range. Aggregate counters must be enabled to set up a freemium plan for a product." }, "aggregateStandardCounters": { "type": "boolean", "description": "Flag that specifies whether or not aggregate counters are used to determine the band of usage (such as a volume band for a rate card plan)." }, "currency": { "properties": { "id": { "type": "string", "description": "ISO 4217 code for the currency, such as usd for United States dollar or chf for Swiss franc." } } }, "duration": { "type": "number", "description": "Period of time for the aggregation basis, together with durationType. For example, set duration to 30 and durationType to DAY to specify an aggregation basis of 30 days." }, "durationType": { "type": "string", "description": "Period of time for the aggregation basis, together with durationType. Valid values include: DAY, WEEK, MONTH, QUARTER, or YEAR." }, "freemiumDuration": { "type": "integer", "description": "Period of time for the freemium period for an individual API product together with freemiumDurationType. For example, to specify that the freemium period is 30 days, set freemiumDuration to 30 and freemiumDurationType to DAY." }, "freemiumDurationType": { "type": "string", "description": "Period of time for the freemium period for an individual API product together with freemiumDuration. Valid values include: DAY, WEEK, MONTH, QUARTER, or YEAR." }, "freemiumUnit": { "type": "string", "description": "Freemium quantity for an API product. The value can be the number of transactions or the number of units pertaining to a custom attribute recorded in the transaction recording policy." }, "meteringType": { "type": "string", "description": "Charging model for a rate card plan. Valid values include: UNIT (flat rate), VOLUME (volume-banded), STAIR_STEP (bundled), or DEV_SPECIFIC (adjustable notification revenue model only)." }, "paymentDueDays": { "type": "number", "description": "Payment due date for a postpaid developer. For example, set the value to 30 to indicate that payment is due in 30 days." }, "ratePlanRates": { "type": "array", "description": "Rate plan rate details, such as the type of rate plan (REVSHARE or RATECARD), the rate for a rate card plan, the revenue share for a revenue share plan, and the range (starting unit and ending unit for which the rate plan rate applies).", "items": { "properties": { "endUnit": { "type": "number", "description": "End unit." }, "id": { "type": "string", "description": "ID of the rate plan rate. Only valid and required when you are updating a draft rate plan rate." }, "rate": { "type": "number", "description": "Rate for the rate card plan. Specify for RATECARD plans only." }, "revshare": { "type": "number", "description": "Revenue share. Specify for REVSHARE plans only." }, "startUnit": { "type": "number", "description": "Start unit." }, "type": { "type": "string", "description": "Type of the rate plan. Valid values include: REVSHARE or RATECARD." } } } }, "ratingParameter": { "type": "string", "description": "Basis for the rate plan. The rate plan is based on transactions or on a custom attribute. Valid values include: VOLUME (based on volume of transactions) or MINT_CUSTOM_ATTRIBUTE_{num}. If you set it to MINT_CUSTOM_ATTRIBUTE_{num}, then the rate plan is based on a custom attribute, where {num} is an integer for example, MINT_CUSTOM_ATTRIBUTE_1. This value is defined in the transaction recording policy for the API product and is valid for rate card plans only. The custom attribute name cannot be defined as VOLUME." }, "ratingParameterUnit": { "type": "string", "description": "Unit that applies to the ratingParameter." }, "revenueType": { "type": "string", "description": "Basis of the revenu share in a revenue share plan. Valid values include: GROSS (based on percentage of the gross price of a transaction) and NET (based on a percentage of the net price of a transaction)." }, "type": { "type": "string", "description": "Revenue model for the plan. Valid values include: REVSHARE, RATECARD, REVSHARE_RATECARD, USAGE_TARGET (adjustable notifications)." } } } }, "recurringFee": { "type": "number", "description": "Fee that is charged to the developer on an ongoing basis until the developer ends the plan." }, "recurringStartUnit": { "type": "number", "description": "Valid only if recurringType is set to CALENDAR. Day of the month to charge the recurring fee. For example, if the recurring fee is charged monthly and recurringStartUnit is set to 1, the recurring fee is charged on the first day of each month." }, "recurringType": { "type": "string", "description": "Schedule for the recurring fee. Valid values include: CALENDAR or CUSTOM." }, "setUpFee": { "type": "number", "description": "One-time fee that is charged to each developer on the start date of the plan (that is, the date the developer purchases the plan)." }, "startDate": { "type": "string", "description": "Date and time that the rate plan starts in UTC. Use the following format: YYYY-MM-DD HH:mm:ss. If you do not specify a timestamp (not recommended), 00:00:00 (midnight) is used by default." }, "type": { "type": "string", "description": "Type of rate plan. Valid values include: STANDARD (all developers), DEVELOPER_CATEGORY (developers within a category), or DEVELOPER (specific developer)." } }

org_name Name of your organization. true

package_id Name of the API package. true

HTTP Basic

OAuth 2.0

API Key

Reset

Make a request and see the response.

Make a request and see the response.

Make a request and see the response.

Working...

Help or comments?

  • If something's not working: Ask the Apigee Community or see Apigee Support.
  • If something's wrong with the docs: Click the "Send Feedback" button.
    (Incorrect? Unclear? Broken link? Typo?)