# How to Pull College Basketball Odds and Player Props
URL: https://sportsgameodds.com/blog/college-basketball-odds-api-guide

> A practical walkthrough of querying college basketball odds from the SportsGameOdds API: the NCAAB leagueID, why period markets use halves rather than quarters, prop oddIDs, and pulling the NBA and college board together.

If you have already built against the [NBA](/leagues/nba-odds-api), most of your college basketball integration is done. One thing will break, though, and it breaks quietly rather than loudly: **college basketball is played in halves, not quarters.**

This guide covers the query patterns. For coverage and pricing, see the [college basketball odds API](/leagues/ncaab-odds-api) page.

## The leagueID is NCAAB

College basketball is `NCAAB`, and it sits under `sportID=BASKETBALL` alongside the NBA.

```bash
curl "https://api.sportsgameodds.com/v2/events?leagueID=NCAAB&oddsAvailable=true&limit=10" \
  -H "x-api-key: YOUR_API_KEY"
```

That returns upcoming college basketball events with every open market attached.

## Halves, not quarters

Here is the thing that catches people porting NBA code across.

| League | Period IDs |
| --- | --- |
| NBA | `1q`, `2q`, `3q`, `4q`, `ot` |
| NCAAB | `1h`, `2h`, `ot` |

An `oddID` built with `-1q-` has no college equivalent. The request does not error — it comes back empty, which is harder to debug than a failure would be. If a first-quarter query that works for the NBA returns nothing for college, this is why.

```bash
# First-half points total for a college game
curl "https://api.sportsgameodds.com/v2/events?leagueID=NCAAB&oddsAvailable=true&oddIDs=points-all-1h-ou-over&includeOpposingOdds=true" \
  -H "x-api-key: YOUR_API_KEY"
```

Full-game markets use `game` and behave identically across both leagues. It is only the period splits that differ.

## Player props

The stat vocabulary is shared with the NBA, so props port straight across:

```bash
curl "https://api.sportsgameodds.com/v2/events?leagueID=NCAAB&oddsAvailable=true&oddIDs=points-PLAYER_ID-game-ou-over,rebounds-PLAYER_ID-game-ou-over,assists-PLAYER_ID-game-ou-over&includeOpposingOdds=true" \
  -H "x-api-key: YOUR_API_KEY"
```

Common basketball statIDs are `points`, `assists`, `rebounds`, `threePointersMade`, `blocks`, `steals`, `fieldGoalsMade` and `freeThrowsMade`, plus the combination markets `points+rebounds+assists`, `points+assists`, `points+rebounds`, `rebounds+assists` and `blocks+steals`.

Two details worth pinning down, because both cost people time:

- Combination stats use **plus signs**, not underscores. It's `points+rebounds+assists`, not `points_rebounds_assists`.
- Three-pointers are `threePointersMade`, in camel case.

`PLAYER_ID` is a wildcard for any player; swap in a specific player ID to narrow to one.

## Pulling the NBA and college board together

Drop `leagueID` and pass `sportID=BASKETBALL` to get both in one request:

```bash
curl "https://api.sportsgameodds.com/v2/events?sportID=BASKETBALL&oddsAvailable=true&limit=25" \
  -H "x-api-key: YOUR_API_KEY"
```

Each event carries its own `leagueID`, so you can split them apart on your side. Just remember the period difference when parsing: NBA markets come back on quarters, college markets on halves. If you are normalising both into one schema, that is the field to branch on.

## Coverage varies by game

As with college football, market depth is not uniform. Ranked and major-conference matchups carry the most markets; smaller games reliably carry spread, moneyline and total, with props where individual books price them. Check `byBookmaker` on each odd rather than assuming a market is present.

Read More: [College football odds API guide](/blog/college-football-odds-api-guide) | [NBA betting markets](/blog/nba-betting-markets-api) | [How to fetch NBA player props and odds](/blog/nba-odds-api-guide-fetch-nba-player-props-and-odds) | [Best player prop odds API](/blog/best-player-prop-odds-api-for-developers)

## Frequently asked questions

### What is the leagueID for college basketball?

NCAAB. Pass leagueID=NCAAB to /v2/events. The league is NCAA Men's Basketball in our config, and it sits under sportID=BASKETBALL alongside the NBA.

### Why do my NBA period queries return nothing for college basketball?

Because college basketball is played in halves. NCAAB uses the periods 1h and 2h plus ot, while the NBA uses 1q through 4q. An oddID built with -1q- has no college equivalent, so the request comes back empty rather than erroring. Swap the period segment to 1h or 2h.

### Can I pull NBA and college basketball together?

Yes. Pass sportID=BASKETBALL instead of a leagueID and one request covers both. Just remember the period difference when you parse the results: NBA markets come back on quarters, college markets on halves.

### Which player prop statIDs does college basketball use?

The same basketball vocabulary as the NBA: points, assists, rebounds, threePointersMade, blocks, steals, fieldGoalsMade, freeThrowsMade, and the combination stats points+rebounds+assists, points+assists, points+rebounds, rebounds+assists and blocks+steals. Note the combinations use plus signs, not underscores.

### How deep is prop coverage in college basketball?

It varies by game. Ranked matchups and major-conference games carry the most markets; smaller games reliably carry spread, moneyline and total with props where books choose to price them. Check byBookmaker on each odd rather than assuming a market is there.
