Deploy Your API Proxy | MuleSoft Documentation
# Deploy Your API Proxy
You can deploy your API proxy to CloudHub, Runtime Fabric, or a hybrid cloud environment. The resources allocated to the proxy application varies based on the type of proxy you are using. For example, the CloudHub proxy includes a CPU with 0.1 vCores and a memory of 500 MB, by default.
If required, modify the resource allocation from Runtime Manager.
## Prerequisites
Before you deploy your API proxy, complete the following requirements if you work in a Runtime Fabric or hybrid cloud environment:
  * Runtime Fabric
    * Obtain the Manage APIs Configuration and Deploy API Proxies permissions on your account.
    * Use Mule versions 3.8.7, 3.9.1, 4.1.2, or later.
  * Hybrid:
    * For private servers, obtain access to a Mule runtime engine (Mule) instance configured for your organization.
For information about how to configure a Mule instance as a server, see register a server in Runtime Manager.
    * Register your private server with a Mule agent that is compatible with your Mule instance.
For Mule versions 3.8 and later, use Mule Agent 1.9.0. For Mule 4.x, use the Mule Agent specified in the release notes.


## Deploy Your API Proxy
Deploy your proxy by completing the following steps:
  1. Navigate to **Anypoint Platform** > **API Manager**.
  2. In **API Administration** , click **Add API** and select **Add new API**.
  3. Select **Mule Gateway** as your runtime.
  4. Select **Deploy a proxy application** for **Proxy type**.
  5. If you selected to deploy a proxy application, select the **Target type** from the following options:
     * **CloudHub 2.0** : Select this option if you want to use the Mule runtime hosted by MuleSoft in a container-based cloud infrastructure. The CloudHub 2.0 proxy includes a CPU with 0.1 vCores by default.
       1. Select a space.
To learn more about spaces, see Shared Spaces and Private Spaces.
       2. In **Runtime version** :
         1. Select the **Runtime Channel**.
         2. Select the **Version** for Mule runtime.
         3. Select the **Java version**.
       3. Enter a **Proxy app name**.
     * **CloudHub** : Select this option if you want to use the Mule runtime hosted on the cloud by MuleSoft. The CloudHub proxy includes a CPU with 0.1 vCores and a memory of 500 MB, by default.
       1. In **Runtime version** :
         1. Select the **Runtime Channel**.
         2. Select the **Version** for Mule runtime.
         3. Select the **Java version**.
       2. Enter a **Proxy app name**.
     * **Hybrid:** Select this option if you want to use a Mule runtime instance running on an on-premises server that is registered in Runtime Manager.
See Register a server in Runtime Manager for more information.
       1. Select a target from the list or click **Add server**.
       2. Enter a **Proxy app name**.
     * **Self-managed Server:** Select this option if you want to create a JAR file to deploy an API proxy to a Mule runtime instance running on an on-premises server that is not registered in Runtime Manager. For more information, see On-Premises Deployment Model.
Deploying an API proxy to a self-managed server in API Manager doesn’t deploy the proxy to your on-premises server. After you deploy the proxy in API Manager, deploy the proxy to your on-premises server: . Download your new API proxy JAR file. . Deploy the JAR file to your on-premises server.
  * **Runtime Fabric:** Select Runtime Fabric if you want to deploy API Proxies to a Mule runtime engine that is managed on Runtime Fabric. See Deploying API Proxies to Runtime Fabric for more information.
    1. Select a target from the list.
    2. In **Runtime version** :
      1. Select the **Runtime Channel**.
      2. Select the **Version** for Mule runtime.
      3. Select the **Java version**.
    3. Enter a **Proxy app name**.
      1. Select an API from the following options:
  * Click **Select API from Exchange** if you have an API shared with you through Exchange that you want to manage.
    1. Click the API from the list under **Select API**. You can search for a specific API if needed.
    2. Update the **Asset type** , **API version** , and **Asset version** if you are not using the latest version.
For more information about versions in Exchange, see Asset Versions.
    3. If you chose a **RAML/OAS** asset type, view the **Conformance Status** of the API to ensure the API is conformant. If the **Conformance Status** is nonconformant, after deployment, view the **Governance Report** to find and fix the conformance issues. For more information about the **Governance Report** , see Governing API Instances.
  * Click **Create new API** :
    1. Enter a **Name** for the new API asset.
    2. Select the **Asset type** from the following options:
       * **REST API:** Select this option if you have a RAML or OAS API definition file you want to include for your asset.
Upload either a RAML or OAS file for your REST API. Versions 2.0.0 and later are the recommended versions for OAS or RAML specs, because these versions add native OAS support. If you upload an OAS API specification to an API proxy version 1.0 or earlier, your API specification is translated to RAML.
       * **HTTP API:** Select this option if you do not have an API definition file you want to include for your asset.
       * **SOAP API:** Select this option if you have a WSDL API definition file or an external link to the file.
Upload a WSDL file for your SOAP API or add the link to the file.
    3. Update the **Asset type** , **API version** , and **Asset version** if you are not using the latest version.
For more information about versions in Exchange, see Asset Versions.
    4. If you chose a **RAML/OAS** asset type, view the **Conformance Status** of the API to ensure the API is conformant. If the **Conformance Status** is nonconformant, after deployment, view the **Governance Report** to find and fix the conformance issues. For more information about the **Governance Report** , see Governing API Instances.
      1. Click **Next**.
      2. Configure the downstream configuration settings:
Expand for configuration settings.
Field Name | Description | Required | Notes  
---|---|---|---  
Specifies whether to use HTTP or HTTPS for the validations. | If you select HTTPS, specify a TLS context for inbound traffic.  
**Inbound TLS** | Specifies the TLS context to secure inbound traffic. | Only available on Mule 4+. If you can’t see a context, ensure that you have the correct permissions. To enable HTTPS in Mule 3 environment, see enable HTTPS in Mule 3x.  
Specifies the number to use if the displayed port is incorrect.  
Specifies the URL prefix for all API paths, relative to the host root. It must start and end with a leading slash `/`. If the final slash is not provided, the system adds it automatically.  
**Instance label** | Specifies a label for the API. | If you have multiple managed instances of the same API, add a label to differentiate each instance from the others.  
**Advanced Options**  
**Consumer endpoint** | Specifies a proxy application’s address for consumers to use for sending requests.  
**Client provider** | Specifies a client provider for the API. | Anypoint Platform acts as the client provider by default. To configure an external client provider, see Client Providers.  
**Request timeout** | Specifies the duration after which a request times out.  
**Proxy Version** | Specifies the version of the proxy to use for the endpoint.  
**Service Name** | Name of your WSDL service. | Only avaliable for WSDL APIs.  
**Service Port** | Port for your WSDL your service. | Only avaliable for WSDL APIs.  
**Service Namespace** | Namespace of your WSDL service. | Only avaliable for WSDL APIs.  
**Enable Console** | Specifies whether you can expose and test your API specification. | You can specify a different path in **Console Path** , for example, `/spec/*`. Only available if you have an attached API definition. Only available on Mule 3+.  
**Validations** | Specifies whether to validate inbound requests against a provided specification. | Only available if you have an attached API definition. Only available on Mule 3+.  
**Strict validations (optional)** | Specifies whether to validate inbound requests against query parameters. | Only available if you have an attached API definition. Only available on Mule 3+  
**User Domain** | Specifies whether to use an API gateway domain. | If you chose **Hybrid** as the proxy deployment target previously in the configuration, ensure that you select this option. You must install the API gateway domain in Mule 3.8 and later.  
      3. Click **Next**.
      4. Configure the upstream configuration settings:
Expand for configuration settings.
Field Name | Description | Required | Notes  
---|---|---|---  
**Upstream URL** | The URL to access for the proxy or the API. | For example, you can use the URL of your API asset in Exchange.  
**Outbound TLS** | Specifies the TLS context to secure outbound traffic. | Only available on Mule 4+. If you can’t see a context, ensure that you have the correct permissions.  
      5. Click **Next**.
      6. Review your selections and edit them if necessary.
      7. If you are ready to deploy, click **Save & Deploy**. Otherwise, you can select **Save** , to save the API instance and deploy it at a later time.


## See Also
  * Configuring an HTTPS Endpoint