> For the complete documentation index, see [llms.txt](https://wiki.crosswatch.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.crosswatch.app/crosswatch/settings/connections/profiles.md).

# Profiles

Profiles let you use multiple accounts or servers for one provider (media servers, trackers, others)

{% hint style="info" %}
Start with the built-in **default** profile.

Add another profile only when you need another account or server.
{% endhint %}

{% tabs %}
{% tab title="End users" %}

### For most users

Use the **default** profile for each provider.

Set up a provider in **Settings → Connections**.

Choose the profile on each sync pair or Watcher route.

You do not need profile IDs or configuration files.

### When to add a profile

Add a profile when one provider needs separate connections.

Common examples:

* A Plex server at home and another remotely.
* A Trakt account for you and another for a partner.
* Jellyfin servers for separate libraries or households.

### Set up profiles in the UI

#### 1. Add the connection

Each profile stores its own connection details in **Settings → Connections**.

<figure><img src="/files/fhMVwQrwHuXooPkB3wI7" alt=""><figcaption></figcaption></figure>

Select **Profile** to create another connection.

Set its credentials, server URL, user, and provider options.

#### 2. Select profiles for sync pairs

Each side of a pair can use its own profile.

<figure><img src="/files/eY9p9DAO82KozQ3amAYZ" alt=""><figcaption></figcaption></figure>

#### 3. Select profiles for Watcher routes

Choose a profile for both the provider and the sink.

<figure><img src="/files/fZ3nZJ1bLt1BF88tvaeB" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Profiles are independent.

Set each profile's required token, URL, and provider options.
{% endhint %}

{% hint style="warning" %}
Pairs and Watcher routes can reference profiles directly.

Before deleting a profile, update each pair or route using it.

Otherwise runs can fail or use the wrong account or server.
{% endhint %}
{% endtab %}

{% tab title="Power users" %}
This section covers profile IDs, `config.json`, and API fields.

#### Profile IDs

* `default` is reserved.
* Extra profiles use `PROVIDER-P##`.
* Examples: `PLEX-P01`, `TRAKT-P01`, `SIMKL-P02`.

The **Profile** button always creates the next free ID.

If `PLEX-P01` already exists, the next profile is `PLEX-P02`.

#### Config and API field names

Use these fields when you edit `config.json` or call the API.

Each provider can define extra profiles in an `instances` map.

```json
{
  "plex": {
    "account_token": "...",
    "server_url": "http://plex.local:32400",
    "instances": {
      "PLEX-P01": {
        "account_token": "...",
        "server_url": "https://remote-plex.example"
      }
    }
  }
}
```

Pairs use:

* `source_instance`
* `target_instance`

Both default to `default`.

```json
{
  "pairs": [
    {
      "enabled": true,
      "source": "PLEX",
      "source_instance": "PLEX-P01",
      "target": "TRAKT",
      "target_instance": "TRAKT-P01",
      "mode": "one-way",
      "features": { "watchlist": true, "ratings": false, "history": true, "playlists": false }
    }
  ]
}
```

Watcher routes use `provider_instance` and `sink_instance`.

Each route is:

`provider(profile) → sink(profile)`

```json
{
  "scrobble": {
    "watch": {
      "routes": [
        {
          "id": "R1",
          "enabled": true,
          "provider": "plex",
          "provider_instance": "default",
          "sink": "trakt",
          "sink_instance": "TRAKT-P01",
          "filters": {}
        }
      ]
    }
  }
}
```

{% endtab %}
{% endtabs %}

### Related topics

* Connect providers: [Authentication](broken://spaces/3rh5THg1PdhVsBt3GALo/pages/XXSROEx2Yqy98k1SqJvO)
* Configure sync pairs: [Configure Pairs](/crosswatch/settings/configure-pairs.md)
* Configure real-time scrobbling: [Watcher](/crosswatch/settings/scrobbler/watcher.md)
* Scope media-server libraries per profile: [Library Whitelisting](/crosswatch/settings/connections/library-whitelisting.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.crosswatch.app/crosswatch/settings/connections/profiles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
