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

# join()

> Join a Daily room and begin sending and receiving media.

`join({properties})`

<Badge color="green">{"✓"} Prebuilt</Badge> <Badge color="green">{"✓"} Custom</Badge>

Joins a meeting. The `properties` argument is optional, but the meeting `url` must be set here if it was not set in a [factory method](/reference/daily-js/factory-methods). You can respond to a successful join either by awaiting the returned Promise or by listening for the [`joined-meeting`](/reference/daily-js/events/lifecycle-events#joined-meeting) event — the two are equivalent.

## Parameters

<ParamField body="properties" type="DailyCallOptions">
  Optional. Configuration for the meeting. The meeting `url` must be set here if it was not provided to a factory method. All other fields are optional. See the full [properties reference](/reference/daily-js/types/daily-call-options) for all available options.
</ParamField>

## Return value

Returns a `Promise<DailyParticipants>` that resolves with the local participant object once the join completes. This is the same value passed to the `joined-meeting` event. See [`participants()`](/reference/daily-js/instance-methods/participants) for the full shape of the returned object.

## Example

```javascript theme={null}
const call = Daily.createCallObject();

try {
  const participants = await call.join({ url: 'https://your-domain.daily.co/room-name' });
  console.log('Joined as', participants.local.user_name);
  showCallUI(); // update your UI state now that the call is live
} catch (err) {
  console.error('Failed to join:', err);
}
```

## See also

<CardGroup>
  <Card title="Types" icon="t" iconType="solid">
    * [DailyCallOptions](/reference/daily-js/types/daily-call-options)
  </Card>

  <Card title="Methods" icon="code" iconType="solid">
    * [leave()](/reference/daily-js/instance-methods/leave)
    * [preAuth()](/reference/daily-js/instance-methods/pre-auth)
  </Card>

  <Card title="Events" icon="bolt" iconType="solid">
    * [joined-meeting](/reference/daily-js/events/lifecycle-events#joined-meeting)
    * [left-meeting](/reference/daily-js/events/lifecycle-events#left-meeting)
  </Card>

  <Card title="Guides" icon="book-open" iconType="solid">
    * [Introduction](/docs/daily-js/introduction)
    * [Call configuration](/docs/daily-js/concepts/call-configuration)
  </Card>
</CardGroup>
