# Interface: CodaApiBearerTokenAuthentication

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

Authenticate using a Coda REST API token, sent as an HTTP header.

This is identical to [AuthenticationType.HeaderBearerToken](../../enumerations/AuthenticationType/#headerbearertoken) except the user will be presented with a UI to generate an API token rather than needing to paste an arbitrary API token into a text input.

This is primarily for use by Superhuman-authored packs, as it is only relevant for interacting with the Coda REST API.

## Example

```
pack.setUserAuthentication({
  type: sdk.AuthenticationType.CodaApiHeaderBearerToken,
});
```

## See

- [Authenticating with other services - Coda API token](https://head.coda.io/packs/build/latest/guides/basics/authentication/#coda-api-token)
- [Authentication samples - Coda API token](https://head.coda.io/packs/build/latest/samples/topic/authentication/#coda-api-token)

## Extends

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

## Properties

### ~~deferConnectionSetup?~~

> `optional` **deferConnectionSetup**: `boolean`

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

#### Deprecated

______________________________________________________________________

### 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)

______________________________________________________________________

### 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)

______________________________________________________________________

### shouldAutoAuthSetup?

> `optional` **shouldAutoAuthSetup**: `boolean`

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

If true, automatically creates and configures an account with a Coda API token with default settings when installing the pack: a read-write token, added to the doc as a shared account that allows actions.

______________________________________________________________________

### type

> **type**: [`CodaApiHeaderBearerToken`](../../enumerations/AuthenticationType/#codaapiheaderbearertoken)

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

Identifies this as CodaApiHeaderBearerToken authentication.
