What is an API product?

An API product bundles resources (such as API proxies) in order to provide a specific level of access and functionality for client app developers. An API product typically specifies a list of API proxies, along with access limits, API key approval method, and other configuration that should be in place for all of the bundled proxies.

To learn how to create API products, see Create API products.

Business uses

From a business perspective, you can think of API products as your product line. You create an API product to bundle your APIs at particular service levels for client app developers. Different API products -- perhaps even bundling the same API proxies -- provide service levels for different use cases. Instead of just giving developers a list of resources, you can bundle specific resources together to create a product that solves a specific user need.

Client apps are how developers access your API products. When a developer registers an app, they select the API products to associate with the app, and Apigee generates an API key for the app. By default, a single key provides access to all API products associated with the app. When the app makes a request, Apigee first verifies that the API key is valid and fails the request if not.

Developers build the apps that access your APIs. However, a developer must first be registered in your organization before they can register an app.

To learn how to create apps, see Register apps and manage API keys. To learn how to register developers, see Managing app developers.

For example, you can:

  • Bundle resources accesssible only by internal developers -- or only by paying customers.
  • Mix and match a set of API proxies to create a specialized feature set for each API product.
  • Keep access to bundled proxies low (such as 1000 requests per day), then offer access at a bargain price.
  • Allow access to the same proxies at a higher levels for a higher price.
  • Offer read-only access to certain resources via proxies in one API product, then sell read/write access to the same resources via another API product.

Technical uses

From a technical perspective, you create an API product when you want to:

  • Add support for API keys. Your API product would be associated with a developer app, where the key is generated. For enforcement, you'd use policies in your API proxies to verify incoming API keys. API keys are provisioned for API products, not for APIs themselves.

    By default, all key requests to an API product from an app are automatically approved. You can instead choose to approve keys manually. If you set this option in the Edge management UI when creating the product, you will have to approve key requests that come in from any app that adds the API product. See Register apps and manage API keys for more.

  • Add support for access quotas, such as to limit the number of requests allowed per minute. Your API product configuration would specify a default, while quota policies in your API proxies handle the details.

    For information on configuring quota, see Quota policy. For information on on using product quota settings in quota policies, see https://community.apigee.com/questions/1488/how-do-the-quota-settings-on-an-api-product-intera.html.

  • Add support for OAuth scopes. Your API product would specify OAuth scopes that requests must include in their OAuth token in order to proceed to a bundled API proxy.

    For more information about using scopes with Edge OAuth policies, see Working with OAuth2 scopes.

API product configuration

You can create an API product in the management console. The following shows the edit page for creating and product.

For more on creating an API product, see Create API products.

When you create an API product with the management API, you POST configuration for the API product with JSON such as the following.

For more about creating API products with the API, see Create API Product.

  "apiResources": [
  "approvalType": "auto",
  "attributes": [
      "name": "access",
      "value": "public"
  "createdAt": 1452706896178,
  "createdBy": "wwitman@apigee.com",
  "description": "",
  "displayName": "SC-PRODUCT-UNLIMITED",
  "environments": [
  "lastModifiedAt": 1452706896178,
  "lastModifiedBy": "wwitman@apigee.com",
  "proxies": [
  "quota": "1000000",
  "quotaInterval": "1",
  "quotaTimeUnit": "minute",
  "scopes": [