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

# requestAccess()

> Requests full access to a call from the lobby.

`requestAccess({ access?, name })`

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

Requests full access to a call when the participant is currently in the lobby. Causes the participant to appear in the meeting admins' [`waitingParticipants()`](/reference/daily-js/instance-methods/waiting-participants) set, triggering a [`waiting-participant-added`](/reference/daily-js/events/participant-events#waiting-participant-added) event for admins.

Calling `requestAccess()` again with a new `name` updates the participant's entry in `waitingParticipants()`, triggering [`waiting-participant-updated`](/reference/daily-js/events/participant-events#waiting-participant-updated).

<Note>
  Currently, the only valid request is `{ level: 'full' }`, and it can only be made from `{ level: 'lobby' }`. If access is denied, the response will show `{ level: 'lobby' }` but the participant will be immediately ejected with an [`error`](/reference/daily-js/events/error-events#error) event.
</Note>

## Parameters

<ParamField body="access" type="object">
  Optional. The access level to request. Currently must be `{ level: 'full' }` if provided.
</ParamField>

<ParamField body="name" type="string" required>
  The participant's display name shown to the meeting admins in the waiting room.
</ParamField>

## Return value

Returns `Promise<{ access: DailyAccess, granted: boolean }>`:

<ResponseField name="access" type="DailyAccess">
  The new access level: `{ level: 'none' | 'lobby' | 'full' }`.
</ResponseField>

<ResponseField name="granted" type="boolean">
  Whether the access request was granted.
</ResponseField>

## Example

```javascript theme={null}
const { granted } = await call.requestAccess({
  access: { level: 'full' },
  name: 'Jane Smith',
});

if (granted) {
  console.log('Access granted — joining call');
} else {
  console.log('Access denied');
}
```

## See also

<CardGroup>
  <Card title="Methods" icon="code" iconType="solid">
    * [accessState()](/reference/daily-js/instance-methods/access-state)
    * [waitingParticipants()](/reference/daily-js/instance-methods/waiting-participants)
    * [preAuth()](/reference/daily-js/instance-methods/pre-auth)
  </Card>

  <Card title="Events" icon="bolt" iconType="solid">
    * [access-state-updated](/reference/daily-js/events/lifecycle-events#access-state-updated)
    * [waiting-participant-added](/reference/daily-js/events/participant-events#waiting-participant-added)
    * [waiting-participant-updated](/reference/daily-js/events/participant-events#waiting-participant-updated)
  </Card>

  <Card title="Guides" icon="book-open" iconType="solid">
    * [Waiting room](/docs/daily-js/guides/waiting-room)
  </Card>
</CardGroup>
