> For the complete documentation index, see [llms.txt](https://docs.rivalryze.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rivalryze.com/connecting-gaming-platforms/steam.md).

# Steam

Linking Steam lets RivalRyze track your achievements, game library, playtime, completion percentage, and (if you play it) Dota 2 match data.

You have two ways to connect: through Discord (faster if Discord is already connected) or directly with Steam.

## Option 1 — Connect via Discord (recommended if Discord is linked)

If you've already linked Steam to your Discord account (User Settings → Connections), RivalRyze can pull it from there in one click.

1. Open **Account Settings → Connections** on RivalRyze.
2. Find **Steam** and click **Connect via Discord**.
3. RivalRyze reads your Steam ID from your Discord connection.
4. Your initial sync starts immediately.

For this to work, the Steam connection on Discord must have **"Display on profile"** toggled **ON**. See [Connecting Discord](/connecting-gaming-platforms/discord.md) for the Discord-side setup.

## Option 2 — Direct sign-in

If you don't have Discord set up, you can connect Steam directly.

1. Open **Account Settings → Connections** on RivalRyze.
2. Find **Steam** and click **Connect**.
3. You'll be redirected to Steam's official sign-in page. Sign in with your Steam account.
4. Approve the connection. You'll be sent back to RivalRyze.
5. Your initial sync starts immediately — games appear within a few minutes.

{% hint style="info" %}
RivalRyze uses Steam's official **OpenID** sign-in. We never see your Steam password.
{% endhint %}

## Make your Steam profile public

This is the most common reason syncing fails. Your Steam profile and game details must be public for RivalRyze to read your achievements.

1. Open Steam (client or [steamcommunity.com](https://steamcommunity.com)).
2. Click your username (top-right) → **Profile**.
3. Click **Edit Profile** (right side, below your level).
4. In the left menu, click **Privacy Settings**.
5. Set **My profile** to **Public**.
6. Set **Game details** to **Public**.

This ensures your game list, achievements, and playtime are all visible.

### Verifying it worked

The blog method: **log out of Steam** and view your own profile from a browser. You should see your game list and achievements without being logged in. If you do, RivalRyze can too.

## Dota 2: also expose match details

If you play Dota 2 and want to compete in Dota 2 Battles, you need one more setting **inside Dota 2 itself**.

1. Launch Dota 2.
2. Click the **cog icon** at the top-left to open Settings.
3. Go to the **Social** tab.
4. Enable **Expose Public Match Data**.

This makes your match history readable. Without it, your Steam profile can be fully public and Dota 2 Battles still won't score correctly because match data is gated separately.

{% hint style="info" %}
Both settings are needed for Dota 2 Contests: **(1)** Steam profile + game details public, **(2)** Dota 2 "Expose Public Match Data" enabled.
{% endhint %}

## What gets synced

* **Game library** — every game on your Steam account.
* **Achievements** — unlock status, rarity, and date unlocked.
* **Playtime** — total hours per game.
* **Completion percentage** — for games with achievements.
* **Dota 2 profile** — match history, MMR, stats (if Dota 2 settings are configured).

## How often does it sync?

| Tier      | Steam sync frequency |
| --------- | -------------------- |
| Free      | Every 4 hours        |
| Supporter | Every hour           |
| Pro       | Every 30 minutes     |

You can also trigger an **on-demand sync** from your profile page any time. Use it right after a big play session to refresh immediately.

## What Contests can I join with Steam?

All achievement and completion-based Objective Modes are supported on Steam:

**Battles** (leaderboard):

* Achievement Points
* Completion Achievement Points
* Dota 2 Points Battle (Dota 2 specifically)

**Bounties** (objective):

* Achievement Hunter
* Completion Hunter

See [Objective Modes](/contests/objective-modes.md).

## Disconnecting Steam

Open **Account Settings → Connections** and unlink Steam. Your synced data stays on your profile for a grace period in case you reconnect, but you're removed from active Steam-based Contests.

If you linked via Discord and want to disconnect at the Discord layer instead, open Discord → **User Settings → Connections** → remove the Steam connection. RivalRyze loses access on the next sync.

## Troubleshooting

### "This profile is private"

Follow the privacy steps above (profile **Public**, game details **Public**). Then trigger an on-demand sync.

### My new achievement isn't showing

* Wait for the next scheduled sync, or trigger an on-demand sync.
* Confirm the achievement is properly unlocked on Steam (visible on your Steam profile when logged out).
* If it's still missing after an on-demand sync, contact [support](/help-and-faq/contact-support.md).

### Dota 2 stats aren't appearing

Confirm both required settings:

* Steam profile: profile + game details **Public**.
* Dota 2 in-game: **Expose Public Match Data** enabled.

If both are set correctly, trigger an on-demand sync. Dota 2's match API can take 10–15 minutes to reflect new matches.

### "Account already attached to another user"

The Steam account you're trying to connect is already linked to a different RivalRyze account. Sign in to that account, or contact [support](/help-and-faq/contact-support.md) if you can't access it.

## Fair Play and historical achievements

When you first connect Steam, RivalRyze imports your full achievement history. If you have achievements that also exist on a linked PSN account (or another platform), [Fair Play](/fair-play/auto-pop-and-fair-play.md) may flag them as cross-platform auto-pops. This affects how they count in Contests but doesn't penalize ongoing organic play.

## Related

* [Connecting Discord](/connecting-gaming-platforms/discord.md)
* [Troubleshooting Sync Issues](/connecting-gaming-platforms/troubleshooting-sync.md)
* [Fair Play](/fair-play/auto-pop-and-fair-play.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://docs.rivalryze.com/connecting-gaming-platforms/steam.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.
