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

# Room URL vs conversation URL

> Choose the URL for testing and sharing a call, or for joining it from your own code.

Use `room_url` to open the Tavus-hosted room page, to test a PAL or share a call link.
Use `conversation_url` to join the call programmatically with an SDK.

Both fields come back from [POST /v2/conversations](https://docs.tavus.io/api-reference/conversations/create-conversation.md).

| Field | What it is | Use it for |
| - | - | - |
| `room_url` | A link to the Tavus-hosted room page | Testing a PAL or sharing a link with a participant |
| `conversation_url` | The call URL | Joining the call programmatically with an SDK |

## Use room\_url for the hosted room

The hosted room opens in any browser without an SDK.
It supports all Tavus conversation features, including Magic Canvas cards, screen sharing, and captions.
Use it to test a PAL quickly or send a call link to a participant.
After the call ends, the page shows that the call has ended.

The API returns `room_url` for any call in a Daily room, including your own room passed as `properties.daily_room`.
It does not return `room_url` when the conversation joins an external meeting through `meeting_url` or uses LiveKit.

## Add a call to your website

The hosted room is for testing and sharing links, not for embedding in your site.
To put a conversation on your website, use one of these instead:

* [Embed](https://docs.tavus.io/sections/deployments/embed.md) renders a conversation inline in your page.
* [Widget](https://docs.tavus.io/sections/deployments/widget.md) adds a floating conversation launcher.
* The [CVI UI component library](https://docs.tavus.io/sections/conversational-video-interface/component-library/overview.md) gives you React components for your own layout.

## Use conversation\_url with an SDK

`conversation_url` is the call URL, such as `https://tavus.daily.co/c123456`.
If you pass `properties.daily_room`, it points to your own Daily room.
This field is unchanged. Your existing integrations keep working.

For example, join with daily-js.
Replace the example URL with `conversation_url` from your response:

```html theme={null}
<html>
  <script crossorigin src="https://unpkg.com/@daily-co/daily-js"></script>
  <body>
    <script>
      const call = window.Daily.createFrame();
      call.join({ url: "https://tavus.daily.co/c123456" });
    </script>
  </body>
</html>
```

## Join a private room

> [!NOTE]
>
> For a private room created with `require_auth: true`, use the `meeting_token` from the response.
> For `room_url`, append it as `?t=<meeting_token>`.
> For `conversation_url`, pass it when you join: `call.join({ url: conversation_url, token: meeting_token });`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.