# Custom Integrations

Custom integrations can be used to connect to external data sources that are not a part of the out of the box integrations. Any one of these standard authentication methods can be used for your API and each have different properties that need to be configured.

\[block:callout] { "type": "info", "title": "Redirect URIs", "body": "If an external data source requires a Redirect URI, the url will differ based on the realm the organization was provisioned in.  \n\n**US Realm**\n\n\n`\nhttps://us.api.prod.airkit.com/internal/sessions/v1/auth/callback`\n**EU Realm**\n\n\n`\nhttps://eu.api.prod.airkit.com/internal/sessions/v1/auth/callback`\n**AP Realm**\n\n\n`\nhttps://ap.api.prod.airkit.com/internal/sessions/v1/auth/callback`" } \[/block]

## OAuth 2.0

\##Properties **Integration Name**: Display name for the integration **Key**: Unique identifier for the integration. This should only contain letters and numbers.

### Integration Parameters

Integration parameters allow you to parameterize the integration when defining a connected account. These parameters can be referenced through any of the custom integration inputs by surrounding the text in curly braces `{parameter}`.

For example, if you want to parameterize a query parameter on the **Authorization Endpoint**, the url would look like the following:

```
https://airkit.com/auth?queryparam={parameter}
```

Then, the query parameter would then be accessible when you create the connected account.

### OAuth2 Configuration

**Authorization Grant Type (required)** : The way the application will retrieve the access token. The options here are Authorization Code and Client Credentials. This automatically adds the `grant_type` parameter as part of the OAuth 2.0 protocol.

**Access Token Endpoint (required)**: The URL to retrieve the access token.

**Access Token Verb (required)**: The HTTP verb for the call to retrieve the access token. GET or POST

**Authorization Endpoint (required)**: The URL to obtain authorization from the resource.

**Revoke Token Endpoint (optional)**: The URL to revoke the token

**OAuth Scope (required)**: OAuth 2.0 scopes

**Client ID (required)**: OAuth 2.0 Client ID

**Client Secret (required)**: OAuth 2.0 Client Secret

### Auth Token

**Token Parameter Type (required)** : Where to pass the token with the [HTTP Request data operation](../data-operations/http-request-data-operation). Select between **URL Parameter** and **Header**.

**Token Parameter Name (required)**: The name to define how the token is specified (i.e. Authorization).

![auth.png](https://1191388742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhOn9CLWoV9VfJeM5EDAa%2Fuploads%2Fgit-blob-c4e863b91a01904565b17579c7750b38f47068ba%2Fcustom-integrations-v1715-0.png?alt=media)

**Token Parameter Value Template (required)**: The format of how to pass the token, once retrieved. The token is denoted as `{token}` in the input. For example, if the token is passed in the header of the request, with the format `Authorization: Bearer <token>`, then this field would look like:

![](https://1191388742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhOn9CLWoV9VfJeM5EDAa%2Fuploads%2Fgit-blob-0f55fc0920dd479fc6f181ef29f639928feee90c%2Fcustom-integrations-v1715-1.png?alt=media)

### Request Parameters

Request parameters are included with every HTTP request that is used in an [HTTP Request](../data-operations/http-request-data-operation) in [Connection Builder](../studio/builder-bar/connection-builder).

\[block:callout] { "type": "info", "body": "When setting up an OAuth 2.0 integration in Airkit, a refresh token is expected, and the system/endpoint must be configured accordingly. Some systems will automatically account for this and some systems may not.", "title": "Refresh Tokens" } \[/block]

## API Token

\##Properties **Integration Name**: Display name for the integration **Key**: Unique identifier for the integration. This should only contain letters and numbers.

### Integration Parameters

Integration parameters allow you to parameterize the integration when defining a connected account. These parameters can be referenced through any of the custom integration inputs by surrounding the text in curly braces `{parameter}`.

For example, if you want to parameterize a query parameter on the **Authorization Endpoint**, the url would look like the following:

```
https://airkit.com/auth?queryparam={parameter}
```

Then, the query parameter would then be accessible when you create the connected account.

### Auth Token

**Token Parameter Type (required)** : Where to pass the token with the [HTTP Request data operation](../data-operations/http-request-data-operation). Select between **URL Parameter** and **Header**.

**Token Parameter Name (required)**: The name to define how the token is specified (i.e. Authorization).

![auth.png](https://1191388742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhOn9CLWoV9VfJeM5EDAa%2Fuploads%2Fgit-blob-c4e863b91a01904565b17579c7750b38f47068ba%2Fcustom-integrations-v1715-0.png?alt=media)

**Token Parameter Value Template (required)**: The format of how to pass the token, once retrieved. The token is denoted as `{token}` in the input. For example, if the token is passed in the header of the request, with the format `Authorization: Bearer <token>`, then this field would look like:

![](https://1191388742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhOn9CLWoV9VfJeM5EDAa%2Fuploads%2Fgit-blob-0f55fc0920dd479fc6f181ef29f639928feee90c%2Fcustom-integrations-v1715-1.png?alt=media)

### Request Parameters

Request parameters are included with every HTTP request that is used in an [HTTP Request](../data-operations/http-request-data-operation) in [Connection Builder](../studio/builder-bar/connection-builder).

## HTTP Basic Auth

\##Properties **Integration Name**: Display name for the integration **Key**: Unique identifier for the integration. This should only contain letters and numbers.

### Integration Parameters

Integration parameters allow you to parameterize the integration when defining a connected account. These parameters can be referenced through any of the custom integration inputs by surrounding the text in curly braces `{parameter}`.

For example, if you want to parameterize a query parameter on the **Authorization Endpoint** the url would look like the following:

```
https://airkit.com/auth?queryparam={parameter}
```

Then, the query parameter would then be accessible when you create the connected account.

### Request Parameters

Request parameters are included with every HTTP request that is used in an [HTTP Request](../data-operations/http-request-data-operation) in [Connection Builder](../studio/builder-bar/connection-builder).

## Custom Token

\##Properties **Integration Name**: Display name for the integration **Key**: Unique identifier for the integration. This should only contain letters and numbers.

### Integration Parameters

Integration parameters allow you to parameterize the integration when defining a connected account. These parameters can be referenced through any of the custom integration inputs by surrounding the text in curly braces `{parameter}`.

For example, if you want to parameterize a query parameter on the **Authorization Endpoint**, the url would look like the following:

```
https://airkit.com/auth?queryparam={parameter}
```

Then, the query parameter would then be accessible when you create the connected account.

### Custom Token

**Access Token Endpoint (required)**: The URL to retrieve the access token.

**Access Token Verb (required)**: The HTTP verb for the call to retrieve the access token. GET or POST

### Access Token Parameters

Parameters to include with the HTTP request that is made to retrieve the custom token.

### Auth Token

**Token Parameter Type (required)** : Where to pass the token with the [HTTP Request data operation](../data-operations/http-request-data-operation). Select between **URL Parameter** and **Header**.

**Token Parameter Name (required)**: The name to define how the token is specified (i.e. Authorization).

![auth.png](https://1191388742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhOn9CLWoV9VfJeM5EDAa%2Fuploads%2Fgit-blob-c4e863b91a01904565b17579c7750b38f47068ba%2Fcustom-integrations-v1715-0.png?alt=media)

**Token Parameter Value Template (required)**: The format of how to pass the token, once retrieved. The token is denoted as `{token}` in the input. For example, if the token is passed in the header of the request, with the format `Authorization: Bearer <token>`, then this field would look like:

![](https://1191388742-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhOn9CLWoV9VfJeM5EDAa%2Fuploads%2Fgit-blob-0f55fc0920dd479fc6f181ef29f639928feee90c%2Fcustom-integrations-v1715-1.png?alt=media)

### Request Parameters

Request parameters are included with every HTTP request that is used in an [HTTP Request](../data-operations/http-request-data-operation) in [Connection Builder](../studio/builder-bar/connection-builder).

## SFTP

\##Properties **Integration Name**: Display name for the integration **Key**: Unique identifier for the integration. This should only contain letters and numbers.

### Integration Parameters

Integration parameters allow you to parameterize the integration when defining a connected account. These parameters can be referenced through any of the custom integration inputs by surrounding the text in curly braces `{parameter}`.

For example, if you want to parameterize a query parameter on the **Authorization Endpoint**, the url would look like the following:

```
https://airkit.com/auth?queryparam={parameter}
```

Then, the query parameter would then be accessible when you create the connected account.

### Request Parameters

Request parameters are included with every HTTP request that is used in an [HTTP Request](../data-operations/http-request-data-operation) in [Connection Builder](../studio/builder-bar/connection-builder).
