HTTP Connector Reference | MuleSoft Documentation
# HTTP Connector Reference
HTTP Connector connects cloud applications that are not currently supported through dedicated connectors. Use HTTP Connector to connect to systems that Composer does not currently support to extend the capabilities of the systems that Composer does support. HTTP Connector for Composer uses HTTP 1.1 to handle JSON data.
## Connections
To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with the required credentials of that system. You typically connect to different systems within a flow and can reuse each connection every time you need to connect.
Provide the following connection information:
The HTTP response timeout is 60 seconds and cannot be changed.   
--- 

Connection Name
      
Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others.
Only you can see the connection. Other users in your Composer app must create their own connections. 

Base URL
    
The default location URL for the cloud application that the connection uses. 

Authorization
    
The following authorization options are available:
  * **OAuth 2.0 Client Credentials** The OAuth 2.0 Client Credentials obtain an access token from a user-defined path. Provide a value for the following fields:
    * **Base URL**
    * **Client ID**
    * **Client Secret**
    * **Token URL**
  * **API Key** The API Key connects to applications without explicitly defining a user. You must add this key to all requests, and the cloud application identifies the origin of the request and completes the authorization. Provide a value for the following fields:
    * **Base URL**
    * **Sent As** : Select one of the following values:
      * **Header** : If selected, Composer adds the following header to the request: `Name: Value`.
      * **Query Parameter** : If selected, Composer adds the following query parameter to the request: `Name=Value`.
  * **Basic Authentication** The Basic Authentication method enables an HTTP user agent to provide a username and password when making an HTTP request. Provide a value for the following fields:
    * **Base URL**
    * **Username**
    * **Password**
  * **Bearer Token Authorization** Bearer Token Authorization is the authentication process that sends a header named `Authorization` with a value of `Bearer` and a token with every request. Provide a value for the following fields:
    * **Base URL**


### Connect Your Target System in Composer Using OAuth 2.0
Using HTTP Connector, you can establish a connection with an OAuth 2.0 Authorization Code Grant to enable authorization. With this authorization, you can then access resources hosted by other apps such as Salesforce, Gmail, or Outlook 365.
Before establishing a connection, you must create an OAuth Client in the target system. The process for creating an OAuth Client depends on each target system.
The following tables provide configuration examples and details about required fields when connecting to a target system using an OAuth client:
#### Fortnox
To use the same **Client ID** and **Client Secret** in different flows, use the same Composer connection and consider the allowed requests per minute. To use different Composer connections, use different Fortnox environments.   
---  
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Fort Nox at admin@1342287` | This should be your user.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://api.fortnox.se`  
`NmE4OTUzY2…​`  
**Client Secret** | `wMTUtZWV…​`  
`companyinformation` | For all available scopes, see OAuth 2.0 Scopes for Fortnox APIs.  
**Authorization URL** | `https://apps.fortnox.se/oauth-v1/auth` | You must register your callback URL on the Fortnox account created application. Fortnox allows you to specify only one callback URL by application, so you must create different applications to specify different environment callback URLs.  
**Authorization URL Query Parameters** |  Parameter 1:
  * **Key** : `access_type`
  * **Value** : `offline`

  
**Token Exchange URL** | `https://apps.fortnox.se/oauth-v1/token`  
**Token Exchange Headers** |  Parameter 1:
  * **Key** : `Authorization`
  * **Value** : `Basic NmE4OTUzY2MtMTk2Zi00MjZiLTgwMTUtZWVjMjY1OWI1MzAx`

|  Fortnox requires a Basic authentication header in the `Basic CREDENTIALS` format, where CREDENTIALS is the Base64 encoding of **Client ID** and **Client Secret** , separated with a colon. For example:
  * **Client ID** : `8VurtMGDTeAI`
  * **Client Secret** : `yFKwme8LEQ`
  * **Credentials** : `OFZ1cnRNR0RUZUFJOnlGS3dtZThMRVE=`

For more information, see Authentication.  
**Token Refresh URL** | `https://apps.fortnox.se/oauth-v1/token`  
**Token Refresh Headers** |  Parameter 1:
  * **Key** : `Authorization`
  * **Value** : `Basic NmE4OTUzY2MtMTk2Zi00MjZiLTgwMTUtZWVjMjY1OWI1MzAx`

|  Fortnox requires a Basic authentication header in the `Basic CREDENTIALS` format, where CREDENTIALS is the Base64 encoding of **Client ID** and **Client Secret** , separated with a colon. For example:
  * **Client ID** : `8VurtMGDTeAI`
  * **Client Secret** : `yFKwme8LEQ`
  * **Credentials** : `OFZ1cnRNR0RUZUFJOnlGS3dtZThMRVE=`

For more information, see Authentication.  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/3/companyinformation`  
#### Gmail
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Gmail john.smith@gmail.com connection` | Including the Gmail email address aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://gmail.googleapis.com`  
`181298210352-mt5.apps.googleusercontent.com`  
**Client Secret** | `YmmkNirf6zDc512u7MvPoJebP…​`  
`https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/gmail.readonly` | For all available scopes, see OAuth 2.0 Scopes for Google APIs.  
**Authorization URL** | `https://accounts.google.com/o/oauth2/v2/auth`  
**Authorization URL Query Parameters** |  Parameter 1:
  * **Key** : `access_type`
  * **Value** : `offline`

Parameter 2:
  * **Key** : `prompt`
  * **Value** : `consent`

  
**Token Exchange URL** | `https://oauth2.googleapis.com/token`  
**Token Refresh URL** | `https://oauth2.googleapis.com/token`  
**Token Revoke URL** | `https://oauth2.googleapis.com/revoke`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/gmail/v1/users/me/profile` | For more information, see the Gmail API documentation.  
#### Google Calendar
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Calendar at john.smith@gmail.com` | Including the Gmail email address aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://www.googleapis.com/calendar`  
`181298210352-mt5.apps.googleusercontent.com`  
**Client Secret** | `YmmkNirf6zDc512u7MvPoJebP…​`  
  * `https://www.googleapis.com/auth/calendar.events`
  * `https://www.googleapis.com/auth/calendar.readonly`

| For all available scopes, see OAuth 2.0 Scopes for Google APIs.  
**Authorization URL** | `https://accounts.google.com/o/oauth2/v2/auth`  
**Authorization URL Query Parameters** |  Parameter 1:
  * **Key** : `access_type`
  * **Value** : `offline`

Parameter 2:
  * **Key** : `prompt`
  * **Value** : `consent`
| For all available scopes, see OAuth 2.0 Scopes for Google APIs.  
**Authorization URL** | `https://accounts.google.com/o/oauth2/v2/auth`  
**Authorization URL Query Parameters** |  Parameter 1:
  * **Key** : `access_type`
  * **Value** : `offline`

Parameter 2:
  * **Key** : `prompt`
  * **Value** : `consent`

  
**Token Exchange URL** | `https://oauth2.googleapis.com/token`  
**Token Refresh URL** | `https://oauth2.googleapis.com/token`  
**Token Revoke URL** | `https://oauth2.googleapis.com/revoke`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/v3/users/me/settings` | For more information, see the Google Calendar API documentation.  
#### Google Sheets
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Google Sheets at john.smith@gmail.com` | Including the Gmail email address aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://www.googleapis.com`  
`181298210352-mt5.apps.googleusercontent.com`  
**Client Secret** | `YmmkNirf6zDc512u7MvPoJebP…​`  
  * `https://www.googleapis.com/auth/spreadsheets`
  * `https://www.googleapis.com/auth/drive.readonly`
  * `https://www.googleapis.com/auth/drive.metadata.readonly`

| For more information, see the Google Drive API-specific authorization and authentication information documentation.  
**Authorization URL** | `https://accounts.google.com/o/oauth2/v2/auth`  
**Authorization URL Query Parameters** |  Parameter 1:
  * **Key** : `access_type`
  * **Value** : `offline`

Parameter 2:
  * **Key** : `prompt`
  * **Value** : `consent`

  
**Token Exchange URL** | `https://oauth2.googleapis.com/token`  
**Token Refresh URL** | `https://oauth2.googleapis.com/token`  
**Token Revoke URL** | `https://oauth2.googleapis.com/revoke`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/drive/v3/about?fields=user` | For more information, see the Google Drive API-specific authorization and authentication information documentation.  
#### Hubspot
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Hubspot Composer DEMO org` | Including the Hubspot organization name aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://api.hubapi.com/`  
`63ddf8b7-c7b0-40f9-804…​` | For more information, see the Hubspot documentation.  
**Client Secret** | `2100f863-944c-433c-a…​`  
  * `settings.users.read`
  * `crm.lists.read`
  * `settings.users.teams.read`
  * `crm.schemas.contacts.read`

  
**Authorization URL** | `https://app.hubspot.com/oauth/authorize`  
**Token Exchange URL** | `https://api.hubapi.com/oauth/v1/token`  
**Token Refresh URL** | `https://api.hubapi.com/oauth/v1/token`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | 
  * `contacts/v1/lists/all/contacts/all?count=1`
  * `https://api.hubapi.com/application/settings/test/v1/actions/accounts-fetch`

| For more information, see the Hubspot OAuth 2.0 documentation.  
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Jira at ocs.citizen.demo@gmail.com (STG)` | Including the Gmail email address aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://api.atlassian.com/ex/jira/077bc6b6-f2ab-4cd6-a694-c469cb2d058d/rest/api/3` | The value in this field is the **Cloud ID** for your Jira account, which is the **Tenant ID** parameter in the **Base URL** field.  
`SgPehF9AZ5ECD63iUJpG2aPO3j9qNvXM`  
**Client Secret** | `Yf8q-wbEJjeJIhx5iuE-BiydpL1oCj7wVy2gaoYDEMCe4xwWO_Q2vbjyJg6rGmD7L`  
  * `offline_access`
  * `read:jira-work`
  * `manage:jira-project`
  * `read:jira-user`
  * `write:jira-work`

  
**Authorization URL** | `https://auth.atlassian.com/authorize` | You must register your callback URL when creating a Jira account. As a result, these credentials only work in staging environments.  
**Authorization URL Query Parameters** |  Parameter 1:
  * **Key** : `audience`
  * **Value** : `api.atlassian.com`

Parameter 2:
  * **Key** : `prompt`
  * **Value** : `consent`

  
**Token Exchange URL** | `https://auth.atlassian.com/oauth/token`  
**Token Refresh URL** | `https://auth.atlassian.com/oauth/token`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path**  
#### Microsoft Teams
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `My Microsoft Teams connection` | Including the Microsoft Teams instance name aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://graph.microsoft.com`  
`1c325c1c-8fd5-419f-85dc-a69cc2f30a21`  
**Client Secret** | `P8M8Q~nAXXckZeqGxR-gE3WJIOsw~rIkjdG8jc7G`  
  * `https://graph.microsoft.com/Mail.Read`
  * `https://graph.microsoft.com/User.Read`
  * `offline_access`

  
**Authorization URL** | `https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize` | Tenant ID value: `https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize`  
**Token Exchange URL** | `https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token`  
**Token Refresh URL** | `https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path**  
#### Outlook 365
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `My Outlook 365 connection` | Including the Outlook instance name aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://graph.microsoft.com`  
`1c325c1c-8fd5-419f-85dc-a69cc2f30a21`  
**Client Secret** | `P8M8Q~nAXXckZeqGxR-gE3WJIOsw~rIkjdG8jc7G`  
  * `https://graph.microsoft.com/Mail.Read`
  * `https://graph.microsoft.com/User.Read`
  * `offline_access`
**Authorization URL** | `https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize`  
**Token Exchange URL** | `https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token`  
**Token Refresh URL** | `https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** |  `/v1.0/me` `/v1.0/me/mailfolders/inbox/messages?$select=subject,from,receivedDateTime&$top=25&$orderby=receivedDateTime%20DESC`  
#### Procore (Production Environment)
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Procore Demo Org`  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://api.procore.com`  
`43a4c94b7e225ad7a8d99cb4a0ae0de26efa298…`  
**Client Secret** | `e84ee4db2f944a7b585ca110ac20793b5e6c0…`  
**Authorization URL** | `https://login.procore.com/oauth/authorize`  
**Token Exchange URL** | `https://login.procore.com/oauth/token`  
**Token Refresh URL** | `https://login.procore.com/oauth/token`  
**Token Revoke URL** | `https://login.procore.com/oauth/revoke`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/rest/v1.0/me`  
#### Procore (Sandbox Environment)
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Procore Sandbox Demo Org`  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://sandbox.procore.com`  
`43a4c94b7e225ad7a8d99cb4a0ae0de26efa298…`  
**Client Secret** | `e84ee4db2f944a7b585ca110ac20793b5e6c0…`  
**Authorization URL** | `https://login-sandbox.procore.com/oauth/authorize`  
**Token Exchange URL** | `https://login-sandbox.procore.com/oauth/token`  
**Token Refresh URL** | `https://login-sandbox.procore.com/oauth/token`  
**Token Revoke URL** | `https://login-sandbox.procore.com/oauth/revoke`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/rest/v1.0/me`  
#### QuickBooks
Add the `Accept: application/json` HTTP header to your requests since QuickBooks returns HTML by default.   
---  
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `My QuickBooks connection`  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://sandbox-quickbooks.api.intuit.com` | In your QuickBooks account, check for the realm ID or company ID. For example: `4620816365253449610`.  
`ABOCnl9CHHDDpZ0RASkhadwSVBa1…​`  
**Client Secret** | `qwDPs7K1huLWn2ZfdeVHQgpyYr…​`  
`com.intuit.quickbooks.accounting` | For more information about scopes, check your QuickBooks account. When you create your QuickBooks account, you have two scopes depending on the URLs you need to use.  
**Authorization URL** | `https://appcenter.intuit.com/connect/oauth2` | You must register your callback URL in your QuickBooks account in your application configuration. QuickBooks allows you to register multiple callback URLs, so you can create one application for all your environments.  
**Token Exchange URL** | `https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer`  
**Token Exchange Headers** |  Parameter 1:  
**Token Refresh URL** | `https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer`  
**Token Refresh Headers** |  Parameter 1:  
**Token Revoke URL** | `https://developer.api.intuit.com/v2/oauth2/tokens/revoke`  
**Token Revoke Headers** |  Parameter 1:  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/v3/company/{realmId}/companyinfo/{realmId}`  
#### Salesforce
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `My Salesforce Acme connection` | Including the Salesforce instance name in this field aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://<instance>.my.salesforce.com`  
`3MVG9kBt168mda_.aAARdkSYhzS6mkIA5bVzvid_ppcSV44vtKUFV3J` | The value in this field is the **Salesforce Connected App Client ID**.  
**Client Secret** | `620187E2CD2DAEF6725AA404EADDFD8FECB390FA854DB637B95E186` | The value in this field is the **Salesforce Connected App Secret**.  
`full refresh_token`  
**Authorization URL** | `https://login.salesforce.com/services/oauth2/authorize`  
**Authorization URL Query Parameters** | 
  * **Key** : `prompt`
  * **Value** : `login consent`

  
**Token Exchange URL** | `https://login.salesforce.com/services/oauth2/token`  
**Token Refresh URL** | `https://login.salesforce.com/services/oauth2/token`  
**Token Revoke URL** | `https://login.salesforce.com/services/oauth2/revoke`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/services/data/v55.0/` | For more information, see the Salesforce REST API Developer Guide documentation.  
#### Shopify
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Shopify at my.account@example.com (QA)` | For more information, see the Shopify Partner Program.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://myowndevelopmentstore1.myshopify.com`  
`04bad9ea727686d3a61a47cc23772587`  
**Client Secret** | `668ca7383d2558aa9f4270550a4dff62`  
  * `write_customers`
  * `write_orders`
  * `write_products`

  
**Authorization Headers** | 
  * **Authorization Header Name** : `X-Shopify-Access-Token`
  * **Authorization Header Value Prefix** : `Bearer Prefix`
  * **Authorization Header Custom Value Prefix** : None
**Authorization Headers** | 
  * **Authorization Header Name** : `X-Shopify-Access-Token`
  * **Authorization Header Value Prefix** : `Bearer Prefix`
  * **Authorization Header Custom Value Prefix** : None

  
**Token Exchange URL** | `https://myowndevelopmentstore1.myshopify.com/admin/oauth/access_token`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/admin/api/2022-07/shop.json`  
#### Slack
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `My Slack inspiration workspace connection` | Including the Slack workspace name aids in identifying the connection from a list.  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://<my-workspace>.slack.com`  
`3806739369586.3819433415633` | `The value in this field is the **Slack App Client ID**.`  
**Client Secret** | `d1cc08d9b2bf8573fa10e43f458d51a9` | `The value in this field is the **Slack App Secret**.`  
`chat:write`  
**Authorization URL** | `https://slack.com/oauth/v2/authorize`  
**Token Exchange URL** | `https://slack.com/api/oauth.v2.access`  
**Token Refresh URL** | Leave the value in this field blank.  
**Token Revoke URL** | `https://slack.com/api/auth.revoke`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/api/api.test`  
Step | Field | Example Value | Notes  
---|---|---|---  
Connect to your HTTP Account | **Connection Display Name** | `Xero Demo Company (US) connection`  
**Authorization Type** | `OAuth 2.0 Authorization Code` | The value in this field is fixed.  
`https://api.xero.com/`  
`1AAE161E43B448C2A17B59`  
**Client Secret** | `aMLNRJr3-oAaFtQOx1B-uf19qT`  
  * `offline_access`
    * `profile`
  * `accounting.transactions`
  * `accounting.attachments`
  * `accounting.reports.read`
  * `accounting.settings`
  * `accounting.contacts`
  * `accounting.journals.read`

| For more information, see the Xero Developer documentation.  
**Authorization URL** | `https://login.xero.com/identity/connect/authorize`  
**Token Exchange URL** | `https://identity.xero.com/connect/token`  
**Token Refresh URL** | `https://identity.xero.com/connect/token`  
**Token Revoke URL** | `https://identity.xero.com/connect/revocation`  
**Access Token Expired Code**  
Test HTTP Connection | **Request Method**  
**Request Path** | `/api.xro/2.0/Users` |  For more information, see the Xero documentation:
  *   * Standard authorization code flow for Xero

  
**Request Path Headers** | 
  * **Key** : `Xero-Tenant-Id`
  * **Value** : `4268faf8-82a2-44e2-8ea2-4ec8f6ea3a26`

|  For more information, see the following:
  * Standard authorization code flow for Xero

  
#### Configure an OAuth 2.0 Authorization Code Connection
When creating an OAuth 2.0 Authorization Code connection with HTTP Connector, you must provide additional information to establish the connection.
To establish an OAuth 2.0 Connection:
  1. Open a flow or create a new flow.
  2. Select a trigger or use the scheduler.
  3. Click or create an HTTP connection for the action.
  4. In the **Connect to your HTTP Account** window, in the **Authorization Type** field, select **OAuth 2.0 Authorization Code** and provide values for the following fields:
    1. **Authorization URL** : The URL that starts the OAuth 2.0 flow.
    2. **Authorization URL Query Parameters** : The key-value pairs that appear after the question mark in the URL.
Under the OAuth Authorization Code Grant type, the authorization request sends data as query parameters. Composer handles these query parameters automatically, but sometimes additional parameters are useful. For example, the Google API needs `access_token=offline` to emit a refresh token. Without this parameter, a connection will expire after an hour.
    3. **Token Exchange URL** : The URL where the authorization code can be exchanged for an access token.
       * Optionally, if you click **Add Headers** , provide a value for the following fields:
    4. **Token Refresh URL (Optional)** : The URL where the token can be refreshed. This field is applicable only if the application marks the tokens as expired after a certain period of time.
       * Optionally, if you click **Add Headers** , provide a value for the following fields:
    5. **Token Revoke URL (Optional)** : The URL where the token can be revoked or removed.
       * Optionally, if you click **Add Headers** , provide a value for the following fields:
  5. Click **Next**. The OAuth 2.0 Authorization Code Connection is configured. You can now test the connection.


### Test the Connection
After you establish a connection method, you can test the connection. While Composer tests other connectors automatically in the background, you must test HTTP Connector. You can decide which page to use for the test. Testing the connection is important because you cannot edit the connection later.
To test the connection, provide a value for the following fields:
  * **Request Method**
  * **Request Path** : The value in this field is relative to the Base URL.
  * **Request Headers**
  * **Request Body** : This option appears when the HTTP method is POST and is the body of the request message.


Click **Connect** to test the connection. A message appears to indicate the connection was created successfully (indicated by a response code of `200`) or that an error occurred.
Note that if the application requires a token exchange to transact data, you need to create a token for each use case. For example, in Salesforce Marketing Cloud, this is needed because the first step in Flow 1 will generate a token, which might get invalidated by a similar step in Flow 2.
## HTTP Connector Fields
The following fields are applicable for HTTP Connector:
Name | Type | Description  
---|---|---  
**Relative URL** | URL for the target of the request without considering the base path.  
The type of request. You must choose between **Request** or **Paginated Request**.  
**HTTP Method** |  The HTTP method for the request. The following HTTP methods are available:
  * **GET** : Retrieves information from the server.
  * **POST** : Sends information to the server.
  * **PUT** : Updates information in existing records on the server.
  * **PATCH** : Updates specific data for existing records on the server.
  * **DELETE** : Deletes information in existing records on the server.
Click **Connect** to test the connection. A message appears to indicate the connection was created successfully (indicated by a response code of `200`) or that an error occurred.
Note that if the application requires a token exchange to transact data, you need to create a token for each use case. For example, in Salesforce Marketing Cloud, this is needed because the first step in Flow 1 will generate a token, which might get invalidated by a similar step in Flow 2.
## HTTP Connector Fields
The following fields are applicable for HTTP Connector:
Name | Type | Description  
---|---|---  
**Relative URL** | URL for the target of the request without considering the base path.  
The type of request. You must choose between **Request** or **Paginated Request**.  
**HTTP Method** |  The HTTP method for the request. The following HTTP methods are available:
  * **GET** : Retrieves information from the server.
  * **POST** : Sends information to the server.
  * **PUT** : Updates information in existing records on the server.
  * **PATCH** : Updates specific data for existing records on the server.
  * **DELETE** : Deletes information in existing records on the server.

  
Identifies the specific resource in the server that you want to access.  
Allows you and the server to pass additional information with an HTTP request or response. Consists of its case-insensitive name (key) followed by a colon, and then followed by its value. If you add headers, you must provide values for the **Key** and **Value** fields. If you specify a **POST** , **PUT** , **PATCH** , or **DELETE** method and you add a request body, you must add the **Content-Type: application/json** header. Check the connected API for the desired field name for the **Content-Type: application/json** header since some APIs require different names for this header. If the header is **Content-Type: application/json** , then the minimum valid JSON ({}, "") is required as part of the request body. Note that [] is not supported at the root of the request body.  
**Query Parameters** | Query parameters to include in the request. If you add query parameters, you must provide values for the **Key** and **Value** fields.  
**Example Request** | An example request in JSON format. If you provide a value for this field, Composer parses the example to deduce its fields. The fields are then available for entering data to configure the request operation. To view the fields Composer deduced from the example, click **Select Additional Fields**. The example JSON value provided in this field _must_ be different than the value provided in the **Example Response** field.  
**Example Response** | An example response in JSON format. If you provide a value for this field, Composer parses the example JSON payload and provides data pills that match the JSON fields.  
**Array Path** | The path to the JSON array. The value from the **Array Path** field is selected by default, but a different value can be selected from the dropdown. This value only appears if the value in the **Action** field is set to **Paginated Request**.  
**Pagination Type** |  The type of pagination for the request. The following Pagination Types are available:
  * **Link Header** : If this value is selected, provide a value in the **Link Relation** field.
  * **Marker** : If this value is selected, provide a value in the following fields:
    * **Marker Parameter Name**
    * **Next Marker Expression**
  * **Next URL** : If this value is selected, provide a value in the **Next URL Expression** field.
  * **Offset** : If this value is selected, provide a value in the **Offset Parameter Name** field.
  * **Page Number** : If this value is selected, provide a value in provide a value in the **Page Number Parameter Name** field.

  
**Maximum Number of Pages** | The maximum number of pages returned from the API in requests.  
## Actions
After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to.
This system provides the following actions: 

Request in HTTP
    
When **Request** is selected in the **Action** field, a request in HTTP returns the fields of the response payload. A value is required for the following fields:
  * **HTTP Method**
  * **Example Response**
  * Optionally, if you click **Add Query Parameters** , provide a value for the following fields:
  * Optionally, if you click **Add Headers** , provide a value for the following fields:



Paginated Request in HTTP
    
When **Paginated Request** is selected in the **Action** field, a paginated HTTP request is initiated. A Paginated Request returns a list of items that subsequent flow steps can use in a For Each Loop. Composer automatically uses the pagination configuration to fetch data from the API. A value is required for the following fields:
  * **HTTP Method**
  * **Example Response**
  * **Array Path**
  * **Pagination Type**
  * Optionally, if you click **Add Query Parameters** , provide a value for the following fields:
  * Optionally, if you click **Add Headers** , provide a value for the following fields:


## See Also
  * Mulesoft Composer: Overview
  * MuleSoft Composer: Getting Started
  * Composer Connector Reference
  * Knowledge Articles