# HTTP Request credentials

You can use these credentials to authenticate the following nodes:

- [HTTP Request](/guides/automated-workflows/integrations/builtin/core-nodes/ts-wf-nodes-base.httprequest)


## Prerequisites

You must use the authentication method required by the app or service you want to query.

### Predefined credential types

Mosaic Workflows recommends using this option whenever there's a credential type available for the service you want to connect to. It offers an easier way to set up and manage credentials, compared to configuring generic credentials.

You can use [Predefined credential types](#) for more information.

### Using a predefined credential type

To use a predefined credential type:

1. Open your HTTP Request node, or add a new one to your workflow.
2. In **Authentication**, select **Predefined Credential Type**.
3. In **Credential Type**, select the API you want to use.
4. In **Credential for `<API name>`**, you can:
  1. Select an existing credential for that platform, if available.
  2. Select **Create New** to create a new credential.


## Generic authentication

The following generic authentication methods are available:

* Basic Auth
* Custom Auth
* Digest Auth
* Header Auth
* OAuth1 API
* OAuth2 API
* Query Auth


You can learn more about HTTP authentication [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#see_also).

### Using Basic Auth or Digest Auth

1. Update the credential name.
2. Enter the **Username** and **Password** for the app or service your HTTP Request is targeting.
3. Select **Save** to save your credentials.


### Using Header Auth

1. Update the credential name.
2. Enter the header **Name** and **Value** required for the app or service your HTTP Request is targeting. Read more about [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers#authentication).
3. Select **Save** to save your credentials.


### Using OAuth1

1. Update the credential name.
2. Enter the following authentication details:
  * **Authorization URL**
  * **Access Token URL**
  * **Consumer Key**
  * **Consumer Secret**
  * **Request Token URL**
  * **Signature Method**
3. Select **Save** to save your credentials.


Read more about [OAuth1](https://oauth.net/1/).

### Using OAuth2

1. Update the credential name.
2. Enter the following authentication details:
  * **Authorization URL**
  * **Access Token URL**
  * **Client ID**
  * **Client Secret**
  * **Scope**
  * **Auth URI Query Parameters**
  * **Authentication**
3. Select **Save** to save your credentials.


Read more about [OAuth2](https://oauth.net/2/).

### Using Custom Auth

The **Generic Auth Type** > **Custom Auth** option expects JSON data to define your credential. You can use `headers`, `qs`, `body` or a mix. See the examples below to get started.

#### Sending two headers


```
{
	"headers": {
		"X-AUTH-USERNAME": "username",
		"X-AUTH-PASSWORD": "password"
	}
}
```

#### Body


```
{
	 "body" : {
		"user": "username",
		"pass": "password"
	}
}
```

#### Query string


```
{
	"qs": { 
		"appid": "123456",
		"apikey": "my-api-key"
	}
}
```

#### Sending header and query string


```
{
	"headers": {
		"api-version": "202404"
	},
	"qs": {
		"apikey": "my-api-key"
	}
}
```

## Provide an SSL certificate

You can send an SSL certificate with your HTTP request. You can use this alongside other credential types.

1. In the node **Settings**, enable **SSL Certificates**.
2. On the **Parameters** tab, add the SSL credential to **Credential for SSL Certificates**.