# BetRivers Pennsylvania native market prices

Read genuine BetRivers US-PA pregame prices with explicit source grants, native market definitions, player identifiers and per-outcome update clocks.

Canonical page: https://getoddsapi.com/docs/betrivers

## Free API key

Get a free GetOdds API key: **1,000 requests per UTC day and 60 per minute, no card**. One key covers REST and the hosted MCP server.

Sign up: https://getoddsapi.com/sign-up?ref=ai-claudebot

## Quickstart

1. Create an account at https://getoddsapi.com/sign-up?ref=ai-claudebot, open https://getoddsapi.com/dashboard and issue a key with the sources you need (draftkings, fanduel, betrivers, prizepicks or underdog). Keep it in a server environment variable named GETODDS_API_KEY.
2. Read current DraftKings NBA spreads with curl:

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

3. The same request in Python (standard library only):

```python
import json, os, urllib.request

req = urllib.request.Request(
    "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50",
    headers={"Authorization": "Bearer " + os.environ["GETODDS_API_KEY"]},
)
with urllib.request.urlopen(req) as res:
    rows = json.load(res)["data"]
for row in rows:
    print(row["away"], "at", row["home"], row["side"], row["line"], row["american"], row["observed_at"])
```

4. Check `observed_at`, `age_seconds` and `stale` on every row before using a price. Full reference: https://getoddsapi.com/docs

## Use with Claude (MCP)

```bash
claude mcp add --transport http getodds https://getoddsapi.com/api/mcp \
  --header "Authorization: Bearer $GETODDS_API_KEY"
```

The MCP tools follow the key's source grants and share its allowance. Setup guide: https://getoddsapi.com/use-with-claude

## Pricing

| Plan | Allowance | Price |
| --- | --- | --- |
| Free key | 1,000 requests a day, 60 a minute | $0, no card |
| Developer Bundle | 10,000 requests or credits a month on each of four sources | $149 a month |

Free development allowance: 1,000 requests per UTC day and 60 per minute per account, with no payment step. Paid: the Developer Bundle at $149 per month, with 10,000 monthly requests or credits on each of four sources.
Details: https://getoddsapi.com/bundle

## Guide


Canonical: https://getoddsapi.com/docs/betrivers
Reviewed: 2026-11-07 UTC

Read genuine BetRivers US-PA pregame prices with explicit source grants, native market definitions, player identifiers and per-outcome update clocks.

## Grant and select BetRivers explicitly

GET /api/v1/betrivers/markets requires a bearer key with the betrivers source grant and BetRivers selected in the customer bookmaker preferences. Existing keys do not gain this source automatically. A PrizePicks, DraftKings or FanDuel grant alone does not authorize this feed. Both admission checks run under the customer lock before upstream access.

A successful page costs one shared API credit. Source failures are errors, not successful empty boards. This dedicated priced-market route is separate from the threshold-projection /api/v1/markets route.

```bash
curl --fail-with-body -X PUT "https://getoddsapi.com/api/v1/bookmakers/selected/select?bookmakers=betrivers" -H "Authorization: Bearer $GETODDS_API_KEY"

curl --fail-with-body "https://getoddsapi.com/api/v1/betrivers/markets?league=NFL&limit=50" -H "Authorization: Bearer $GETODDS_API_KEY"
```

## Discover league offers, then inspect a native event

league accepts NBA, NFL or NHL and defaults to NBA. League list views contain the offers supplied by the native list endpoint; they are not the full event board. Use a returned event.id as event_id to inspect that event’s native offers. Do not combine league with event_id.

Optional market_id filters a single native market within an event and requires event_id. limit accepts 1–100, default 50; offset accepts 0–5000. Sorting uses scheduled start, native event ID and market ID. Pagination slices the current upstream response, not a retained snapshot, so markets can change between requests. Unknown and repeated parameters return 400.

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/betrivers/markets?event_id=$BETRIVERS_EVENT_ID&limit=100" -H "Authorization: Bearer $GETODDS_API_KEY"
```

## Preserve source identity and native contract evidence

The source is BetRivers Pennsylvania, jurisdiction US-PA, through its current Kambi rsi2uspa public offering feed. Every response identifies the fixed upstream URL, provider and brand. Event IDs, market IDs, outcome IDs and participant IDs remain native; they are not universal identifiers or cross-book mappings.

Each market carries the source criterion label, English label, lifetime, occurrence type and number, plus native market type and tags. Missing lifetime information remains null. The service does not guess full-game, regulation, quarter or overtime equivalence from incomplete labels. Native scheduled_close_at is a scheduled close timestamp, not proof that a market settled.

Only OPEN outcomes with an actual native decimal price are returned, and only for future NOT_STARTED events. Suspended and unpriced outcomes, and offers past their scheduled close, are excluded with coverage counts. An elapsed scheduled close is not an official settlement result. partial_outcomes indicates whether a returned market omits any listed outcomes; do not compute a complete-market probability from an incomplete set.

## Use real prices and distinct clocks

price_decimal comes directly from native decimal-thousandths; price_american is the separately supplied native American display value or null. Those display formats can use different rounding, so neither is fabricated from the other. Native handicap thousandths become the numeric line. Native participant names and IDs are preserved; no player-name matching is performed.

Each outcome retains source_updated_at from native changedDate when present. observed_at is this API’s receipt time; it does not refresh a historical changedDate or prove immediate price availability. The response also exposes the HTTP Date and Age headers when provided. These are different clocks with different meanings.

The feed does not guarantee execution, price availability, complete coverage, historical retention or equivalent settlement across sportsbooks. complete=false, capture_complete=false, snapshot_consistent=false and market_contract_comparability=false are explicit. BetRivers is not silently added to the existing two-source conditional arbitrage calculations.

## Bounded upstream access and errors

Each admitted request makes one fetch to the fixed current Pennsylvania offering host and brand, with no customer-controlled URL, credentials, cookies, redirects or retry loop. Requests have an eight-second timeout and four-megabyte response limit. Native arrays are bounded to 1,000 events, 5,000 markets and 200 outcomes per market.

400 indicates invalid query; 401/403 indicates key or bookmaker access denial; 429 indicates the shared API quota; 502 indicates unsupported or oversized native data; 503 indicates upstream unavailability or rate limiting; 504 indicates timeout. A native empty response remains an explicitly partial observation.

## Questions

### Does an existing DraftKings or FanDuel key include BetRivers?

No. Create a key explicitly granted betrivers and select BetRivers in the bookmaker preferences.

### Are these fabricated or converted odds?

No. Decimal and American display prices are preserved independently from the native feed. Missing American prices remain null.

### Does this prove BetRivers markets match another bookmaker’s contracts?

No. Native identity, market lifetime and jurisdiction are preserved without a settlement-equivalence claim.

### Is the league view the full player-prop board?

No. Use the returned native event ID for event detail; even event responses remain explicitly partial observations.

## Sources

- [BetRivers Pennsylvania](https://pa.betrivers.com/)
- [Kambi sportsbook technology](https://www.kambi.com/)
- [Gateway OpenAPI](https://getoddsapi.com/openapi.json)
- [Bookmaker preferences](https://getoddsapi.com/docs/bookmaker-selection)

Independent product; not affiliated with the operators named. No picks or predicted profits.

---

GetOdds is an independent developer product and is not affiliated with any sportsbook or pick’em operator. Prices describe data, not betting advice.
