# J1 League Odds API: Live Odds from 5 Bookmakers

> Live J1 League odds from Bet365, Pinnacle, Betfair Exchange, Paddy Power and BetMGM UK side by side, with best prices and margins. Pull the same odds as JSON from one API. Free trial.

Canonical: https://www.oddsapi.dev/odds/j1-league  
Live data updated: 7 Nov 2026, 07:03 UTC (refreshed every 30 minutes)

## TL;DR

- J1 League odds are in the API from 5 bookmakers: Bet365, Pinnacle, Betfair Exchange, Paddy Power and BetMGM UK, in one JSON schema.
- 9 open matches right now; the table compares the next 4, starting with Vissel Kobe v Urawa Red Diamonds (Sun 8 Nov, 05:00 UTC).
- Lowest bookmaker margin on those matches: Pinnacle at 4.3%; highest: Paddy Power at 9.6%.
- Get them as JSON: GET /v1/bet365/events?league_id=lg_86402, then GET /v1/bet365/events/{event_id}/odds. Each bookmaker has its own league id.
- 7-day free trial on every plan; every plan includes all five bookmakers.

## J1 League odds right now

Every upcoming match at least two books price. Decimal odds, full time. Betfair Exchange is shown for reference, before commission. Margin is the overround on the match result. Refreshed every 30 minutes. Best bookmaker price per outcome in **bold**.

### Vissel Kobe v Urawa Red Diamonds

Sun 8 Nov, 05:00 UTC

| Bookmaker | 1 | X | 2 | Over 2.5 | Under 2.5 | Margin |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Pinnacle | **2.18** | **3.55** | **3.33** | **1.85** | **2.01** | 4.1% |
| Paddy Power | 2.10 | 3.40 | 3.10 | 1.75 | 1.95 | 9.3% |
| BetMGM UK | **2.18** | 3.35 | 3.00 | 1.73 | 1.95 | 9.1% |

### Machida Zelvia v Sanfrecce Hiroshima

Sun 8 Nov, 05:00 UTC

| Bookmaker | 1 | X | 2 | Over 2.5 | Under 2.5 | Margin |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Pinnacle | **2.96** | **3.47** | **2.42** | **1.88** | **1.97** | 3.9% |
| Paddy Power | 2.80 | 3.30 | 2.30 | 1.80 | 1.91 | 9.5% |
| BetMGM UK | 2.80 | 3.35 | 2.30 | 1.77 | 1.91 | 9.0% |

### Gamba Osaka v Cerezo Osaka

Sun 8 Nov, 06:00 UTC

| Bookmaker | 1 | X | 2 | Over 2.5 | Under 2.5 | Margin |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Pinnacle | **2.30** | **3.59** | **3.06** | **1.74** | **2.15** | 4.0% |
| Paddy Power | 2.20 | 3.40 | 2.88 | 1.65 | 2.10 | 9.6% |
| BetMGM UK | 2.25 | 3.40 | 2.88 | 1.64 | 2.05 | 8.6% |

### JEF United Chiba v Mito HollyHock

Sun 8 Nov, 08:00 UTC

| Bookmaker | 1 | X | 2 | Over 2.5 | Under 2.5 | Margin |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Pinnacle | **1.96** | **3.53** | **3.84** | **1.97** | **1.87** | 5.4% |
| Paddy Power | 1.95 | 3.30 | 3.50 | 1.91 | 1.80 | 10.2% |
| BetMGM UK | 1.95 | 3.40 | 3.50 | 1.90 | 1.77 | 9.3% |

## League id per bookmaker

Bookmakers name and group leagues their own way, so each book has its own league id.

| Bookmaker | Name it sends | league_id |
| --- | ---: | ---: |
| Bet365 | Japan J-League | `lg_86402` |
| Pinnacle | Japan - J League | `lg_20630` |
| Betfair Exchange | Japanese J League | `lg_48922` |
| Paddy Power | Japanese J League | `lg_48999` |
| BetMGM UK | J League | `lg_67220` |

## Example request

The response is a real Pinnacle board for Vissel Kobe v Urawa Red Diamonds, trimmed to two markets.

```bash
curl "https://api.oddsapi.dev/v1/pinnacle/events?league_id=lg_20630" \
  -H "Authorization: Bearer $ODDS_API_KEY"

curl "https://api.oddsapi.dev/v1/pinnacle/events/ev_3909673/odds?markets=match_result,total_goals" \
  -H "Authorization: Bearer $ODDS_API_KEY"
```

```json
{
  "data": {
    "event_id": "ev_3909673",
    "bookmaker": "pinnacle",
    "type": "prematch",
    "updated_at": "2026-11-07T06:07:12.656Z",
    "markets": [
      {
        "key": "match_result",
        "period": "full_time",
        "outcomes": [
          {
            "key": "home",
            "price": 2.18
          },
          {
            "key": "draw",
            "price": 3.55
          },
          {
            "key": "away",
            "price": 3.33
          }
        ]
      },
      {
        "key": "total_goals",
        "period": "full_time",
        "outcomes": [
          {
            "key": "over",
            "line": 2.5,
            "price": 1.847
          },
          {
            "key": "under",
            "line": 2.5,
            "price": 2.01
          }
        ]
      }
    ]
  }
}
```

```python
import os, requests

API = "https://api.oddsapi.dev/v1/pinnacle"
headers = {"Authorization": f"Bearer {os.environ['ODDS_API_KEY']}"}

events = requests.get(f"{API}/events", params={"league_id": "lg_20630"}, headers=headers).json()["data"]
for event in events:
    odds = requests.get(
        f"{API}/events/{event['id']}/odds",
        params={"markets": "match_result"},
        headers=headers,
    ).json()["data"]
    prices = {o["key"]: o["price"] for o in odds["markets"][0]["outcomes"]}
    print(event["home_team"]["name"], "v", event["away_team"]["name"], prices)
```

## About J1 League odds

Japan's top flight: 20 clubs and 38 matchdays.

For every match a book prices you get its whole board: match result, totals, both teams to score, Asian and European handicaps, correct score and, on the books that offer them, corners, cards and player props. Each board carries an `updated_at` timestamp, and the pre-match board stays available after kickoff as the closing line.

Average match-result margins on the matches above: Pinnacle 4.3%, BetMGM UK 9.0%, Paddy Power 9.6%.

## FAQ

### Which bookmakers have J1 League odds in the API?

Bet365, Pinnacle, Betfair Exchange, Paddy Power and BetMGM UK price the J1 League, all in the same JSON schema. Each book is its own endpoint: swap the bookmaker slug in the URL.

### What is the J1 League league id?

Each bookmaker has its own id, because books name and group leagues differently. Bet365: lg_86402, Pinnacle: lg_20630, Betfair Exchange: lg_48922, Paddy Power: lg_48999, BetMGM UK: lg_67220. You can also find it with GET /v1/{bookmaker}/leagues?search=j1%20league.

### How do I get J1 League odds as JSON?

List the league's matches with GET /v1/bet365/events?league_id=lg_86402, then call GET /v1/bet365/events/{event_id}/odds for each match. Add ?markets=match_result,total_goals to keep the response small, or leave it out for every market the book prices.

### Are live in-play J1 League odds available?

Yes. While a match is in play, GET /v1/{bookmaker}/events/{event_id}/odds/live returns the in-play board. The pre-match board stays available after kickoff, so you can keep the closing line.

### Which bookmaker has the lowest J1 League margin?

On the 4 matches in the live table, Pinnacle had the lowest average match-result margin at 4.3%, and Paddy Power the highest at 9.6%. Betfair Exchange runs lower still, but its prices are before commission. The table refreshes every 30 minutes, so these numbers move with the market.

### Can I try the J1 League odds API for free?

Yes. Every plan starts with a 7-day free trial with 10% of the plan's monthly requests at the full rate limit, and every plan includes all bookmakers.

## More leagues

- [Every league](https://www.oddsapi.dev/odds) ([markdown](https://www.oddsapi.dev/odds.md))
- [Bookmaker margins](https://www.oddsapi.dev/bookmaker-margins) ([markdown](https://www.oddsapi.dev/bookmaker-margins.md))

## Pricing

Every plan starts with a 7-day free trial (10% of the plan's monthly requests) and includes all 5 bookmakers.

| Plan | Price | Requests | Rate limit |
| --- | ---: | ---: | ---: |
| Starter | $50/month | 100,000 requests/mo | 120/minute |
| Growth | $129/month | 500,000 requests/mo | 300/minute |
| Scale | $379/month | 5,000,000 requests/mo | 1000/minute |

Start a trial: https://www.oddsapi.dev/auth?mode=signup
