> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seasonlabs.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Web SDK types

> Options and verification types exported by the Web SDK.

## EraWebOptions

Configuration passed to the `EraWeb` constructor.

```typescript theme={null}
interface EraWebOptions {
  baseUrl: string;
  publishableKey: string;
}
```

<ParamField path="baseUrl" type="string" required>
  Base URL of the Era service. Trailing slashes are removed.
</ParamField>

<ParamField path="publishableKey" type="string" required>
  Publishable key for browser identity and verification requests.
</ParamField>

## VerificationType

```typescript theme={null}
type VerificationType = "email" | "phone";
```

Use `"email"` with an email address. Use `"phone"` with an E.164 phone number.

## VerificationChallenge

Returned by `startVerification()` and `resendVerification()`.

```typescript theme={null}
interface VerificationChallenge {
  challengeId: string;
  maskedIdentifier: string;
  expiresAt: string;
}
```

| Field              | Meaning                                              |
| ------------------ | ---------------------------------------------------- |
| `challengeId`      | Opaque ID used to confirm or resend the challenge    |
| `maskedIdentifier` | Safe email address or phone number to show in the UI |
| `expiresAt`        | Challenge expiry returned by Era                     |

## VerificationStatus

Returned by `getVerification()`.

```typescript theme={null}
interface VerificationStatus {
  eraEndUserId: string | null;
}
```

`eraEndUserId` is an opaque continuity ID. Do not use it to authorize access.

## VerificationConfirmation

Returned by `confirmVerification()`.

```typescript theme={null}
interface VerificationConfirmation {
  verified: true;
  eraEndUserId: string;
}
```

A successful confirmation proves control of the email address or phone number.
It does not sign the user in to your application.
