Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

Using the Apigee Edge development environment

You develop on Apigee Edge by using:

  • The Edge management UI: A browser-based management user interface
  • The Edge management API: A RESTful API that supports XML and JSON

After you become familiar with the Edge development environment, download and try the samples. For more information, see Using the sample API proxies.

Using the Edge management UI

The Edge management UI ( in the Edge cloud) simplifies many interactions with Edge in the context of a browser-based tool. In the Edge management UI, you can:

  • Create API proxies
  • Create API products
  • Manage developers, apps, and other parts of your organization
  • Configure your test and production environments
  • Access the console
  • Access app services
  • Implement JavaScript and Node.js applications
  • and much more

Using the Edge management API

Use the Edge management API to perform Edge management tasks using any HTTP client, including from your command prompt or from a script.

For example, List API Proxies lists the names of API proxies in a organization, as in this example:


For a complete list of resources and methods, see the API reference.

With the management API, you can manipulate the components of your Edge applications, including its API proxies, products, policies, caches, and so on. The management API also provides access to low-level capabilities that are not exposed by the management UI for reasons of usability.

As in other RESTful APIs, the Edge management API exposes capabilities as API resources. Each resource defines a set of methods that act on it.

Following RESTful principles, you can call HTTP GET, POST, PUT, and DELETE methods on any of the API resources.

  • GET: Retrieves a list of resources, or the profile of a specific resource.
  • POST: Creates a resource, or passed in a parameter, performed an action on resource. For example, when you revoke OAuth access tokens, you use the POST method along with the parameter action=revoke.
  • PUT: Updates an existing resource.
  • DELETE: Deletes an existing resource.

Understanding the base path

The path you'll use in management API requests concatenates the following:

  • A base path that includes your organization name. (You can locate your organization name under User Settings in the Edge management UI.)
  • An endpoint that points to the Edge resource you're accessing.

For example, if your organization name is "apibuilders", then every call you make to the API will use the following base path:

To retrieve a list of API proxies in your organization, you would call GET on:

Many resources are scoped by environment. Two environments are provided by default: test and prod. An example of a resource that is scoped by environment is cache. A default cache, called "mycache" is set up in every environment. You can list caches by calling GET on the cache resource as follows:

Passing credentials

The API enforces HTTP Basic Authentication. You always need to pass in your username and password for your account. These can be passed in as a Base64 encoded header, or as parameters (as demonstrated below) in an HTTP client. The following is an example of an HTTP Basic Authentication header:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Running cURL commands

Use an HTTP client to make requests to the Edge management API. Many examples in the documentation provide sample API requests using cURL, a widely-used HTTP client. If you need to install cURL, you can download it from

If you cut and paste a cURL command from the doc to your terminal, you must replace the following variables in the command with information for your Apigee account:

  • email: The email for your Apigee account
  • password: The password for your Apigee account
  • myorg: The name of your Apigee organization
On Windows, make sure to download a version of cURL that includes the libcurl library. Also on Windows, you might need to use a flag to disable the trust check that cURL performs against the TLS/SSL certificate presented by the API Platform. You can do this by adding -k to each request you submit via cURL on the command line. This only disables the trust check and does not disable encryption. For example:
$ curl -k{org_name}/apis -u email:password

If you are using the Edge samples, set the values for your organization, username, and password in the file /setup/ Once you have done so, you can run the simplified deploy and invoke scripts provided for each sample API proxy. See Using the sample API proxies for more information.

Calls to the management API support gzip compression on responses. If you set 'Accept-Encoding: gzip, deflate' in your API calls, any response greater than 1024 bytes gets returned in gzip format.

Example: making requests of the management API

In this example, you make an API call to Edge. The API call in this example returns a list of the names of all API proxies in your organization. Copy and paste the following command into the terminal window on your computer.

$ curl{org_name}/apis -u email:password

For brevity, you can abbreviate /organizations as /o. For example, if your username is, your password is secret, and your account in the organization called apifactory, then the request looks like this:

$ curl -u

The response should should contain a JSON array with two API proxies, which are created by default for all new users:

[ "oauth", "weatherapi" ]

cURL has a few tools that can make you life easier. For example, you often need to see the HTTP headers associated with a request. To obtain this detail about an HTTP request, you can use the -v flag provided by curl. For example:

$ curl{org_name}/apis -u email:password -v

If you only want to see the HTTP headers on the response from the API Platform (and not the content), then you can use the -I flag.

$ curl{org_name}/apis -u email:password -I

Example: returning XML

JSON is the default format for response messages. If you require XML, you can add an HTTP Accept header to get an XML response instead of JSON:

$ curl -H "Accept:text/xml" -u

When POSTing or PUTting payloads in XML, use the Content-type HTTP header:

$ curl -H "Content-type:text/xml" -X POST -d \
 </XMLPayload> ' \ \

Help or comments?