# Interface: MultiQueryParamTokenAuthentication

Defined in: [types.ts:472](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L472)

Authenticate using multiple tokens, each passed as a different URL parameter, e.g. `https://example.com/api?param1=token1&param2=token2`.

The parameter names are defined in the [params](#params) array property.

## Example

```
pack.setUserAuthentication({
  type: sdk.AuthenticationType.MultiQueryParamToken,
  params: [
    { name: "key", description: "The key." },
    { name: "secret", description: "The secret." },
  ],
});
```

## See

- [Authenticating with other services - Simple tokens](https://head.coda.io/packs/build/latest/guides/basics/authentication/#simple-tokens)
- [Authentication samples - Multiple query parameters](https://head.coda.io/packs/build/latest/samples/topic/authentication/#multiple-query-parameters)

## Extends

- [`BaseAuthentication`](../BaseAuthentication/)

## Properties

### endpointDomain?

> `optional` **endpointDomain**: `string`

Defined in: [types.ts:283](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L283)

When requiresEndpointUrl is set to true, this should be the root domain that all endpoints share. For example, this value would be "example.com" if specific endpoints looked like {custom-subdomain}.example.com.

For packs that make requests to multiple domains (uncommon), this should be the domain within [PackVersionDefinition.networkDomains](../PackVersionDefinition/#networkdomains) that this configuration applies to.

#### Inherited from

[`BaseAuthentication`](../BaseAuthentication/).[`endpointDomain`](../BaseAuthentication/#endpointdomain)

______________________________________________________________________

### getConnectionName?

> `optional` **getConnectionName**: [`MetadataFormula`](../../type-aliases/MetadataFormula/)

Defined in: [types.ts:251](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L251)

A function that is called when a user sets up a new account, that returns a name for the account to label that account in the UI. The user's credentials are applied to any fetcher requests that this function makes. Typically, this function makes an API call to an API's "who am I" endpoint and returns a username.

If omitted, or if the function returns an empty value, the account will be labeled with the creating user's Coda username.

#### Inherited from

[`BaseAuthentication`](../BaseAuthentication/).[`getConnectionName`](../BaseAuthentication/#getconnectionname)

______________________________________________________________________

### instructionsUrl?

> `optional` **instructionsUrl**: `string`

Defined in: [types.ts:266](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L266)

A link to a help article or other page with more instructions about how to set up an account for this pack.

#### Inherited from

[`BaseAuthentication`](../BaseAuthentication/).[`instructionsUrl`](../BaseAuthentication/#instructionsurl)

______________________________________________________________________

### networkDomain?

> `optional` **networkDomain**: `string` | `string`[]

Defined in: [types.ts:297](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L297)

Which domain(s) should get auth credentials, when a pack is configured with multiple domains. Packs configured with only one domain or with requiresEndpointUrl set to true can omit this.

Using multiple authenticated network domains is uncommon and requires Superhuman approval.

#### Inherited from

[`BaseAuthentication`](../BaseAuthentication/).[`networkDomain`](../BaseAuthentication/#networkdomain)

______________________________________________________________________

### params

> **params**: `object`[]

Defined in: [types.ts:478](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L478)

Names and descriptions of the query parameters used for authentication.

#### description

> **description**: `string`

A description shown to the user indicating what value they should provide for this parameter.

#### name

> **name**: `string`

The name of the query parameter, e.g. "foo" if a token is passed as "foo=bar".

______________________________________________________________________

### postSetup?

> `optional` **postSetup**: [`SetEndpoint`](../SetEndpoint/)[]

Defined in: [types.ts:289](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L289)

One or more setup steps to run after the user has set up the account, before completing installation of the pack. This is not common.

#### Inherited from

[`BaseAuthentication`](../BaseAuthentication/).[`postSetup`](../BaseAuthentication/#postsetup)

______________________________________________________________________

### requiresEndpointUrl?

> `optional` **requiresEndpointUrl**: `boolean`

Defined in: [types.ts:274](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L274)

If true, indicates this pack has a specific endpoint domain for each account, that is used as the basis of HTTP requests. For example, API requests are made to .example.com rather than example.com. If true, the user will be prompted to provide their specific endpoint domain when creating a new account.

#### Inherited from

[`BaseAuthentication`](../BaseAuthentication/).[`requiresEndpointUrl`](../BaseAuthentication/#requiresendpointurl)

______________________________________________________________________

### type

> **type**: [`MultiQueryParamToken`](../../enumerations/AuthenticationType/#multiqueryparamtoken)

Defined in: [types.ts:474](https://github.com/coda/packs-sdk/blob/b2b4c9dba5ca748bdbb94481cc13b5ca3c328ef6/types.ts#L474)

Identifies this as MultiQueryParamToken authentication.
