# `plandalf.promo()`

Open a live promo handle.

Implemented by the [browser object](https://github.com/plandalf/numi/blob/fc6f42b5ade3d63b71623934838a6509f17203e2/packages/sdk/src/browser.ts#L456); parameter and return types follow the [delegated class declaration](https://github.com/plandalf/numi/blob/fc6f42b5ade3d63b71623934838a6509f17203e2/packages/sdk/src/core/sdk.ts#L712).

Call this after `plandalf.ready()`. The browser wrapper can return `undefined` before initialization.

## Signature

```typescript
plandalf.promo(slug: string): PromoHandle
```

## Arguments

| Name | Type | Meaning |
| --- | --- | --- |
| `slug` | `string` | Promo slug to monitor. |

## Example

```javascript title="promo.js" lineNumbers lineNumberStart=1
plandalf.ready(async () => {
  const handle = plandalf.promo('early-bird')
  const state = await handle
  console.log(state?.remaining)
})
```

## Returns

[`PromoHandle`](https://plandalf.com/docs/packages/sdk/referenced-types/PromoHandle)

## Behaviour

The browser object forwards only the slug. The ES module class accepts additional `PromoHandleOptions`, which are not forwarded here.

[All plandalf methods](https://plandalf.com/docs/sdk)

Source: https://plandalf.com/docs/sdk/promo
