> ## Documentation Index
> Fetch the complete documentation index at: https://docs.4casters.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get graded bets

> Your settled (graded) bets whose game started inside a date window, one row per fill, plus a P&L summary.

Rows are per **fill**: an order that matched three times is three rows, each with its own `txID`. You appear as the taker (`origin: "wager"`) on orders you took and as the maker (`origin: "offer"`) on orders you posted that were taken; `bet` and `odds` are always from **your** side. Each row embeds its game.

**The window is capped at 35 days.** Omit `startDate` for your full history; an explicit window wider than 35 days is rejected with `400` rather than silently truncated. To poll for newly settled bets without guessing dates, use `getGradedSince`.

Dates match the **start time of the game**, not the settlement time, so a bet that settles late still falls in its game's window. Any ISO 8601 string is accepted.

Settlement amounts are ledger-anchored: `fee` is the commission actually charged on the fill, `risk` is stake plus fee, `win` is gross winnings minus fee, and `result` is the signed P&L. Makers pay no commission.

This endpoint is rate limited to **60 requests per minute per user** on top of the global limit; a `429` carries `Retry-After`.

Also accepts `POST` with the same parameters sent as a JSON body.



## OpenAPI

````yaml /sources/core-api.openapi.json get /user/v2/getGraded
openapi: 3.0.3
info:
  title: 4casters API
  version: 1.0.0
  description: >-
    Programmatic access to the 4casters peer-to-peer betting exchange. Generated
    from the service itself — every documented endpoint is described by the same
    schema that validates its requests.
  x-audience: public
servers:
  - url: https://api.4casters.io
security: []
paths:
  /user/v2/getGraded:
    get:
      tags:
        - Graded bets
      summary: Get graded bets
      description: >-
        Your settled (graded) bets whose game started inside a date window, one
        row per fill, plus a P&L summary.


        Rows are per **fill**: an order that matched three times is three rows,
        each with its own `txID`. You appear as the taker (`origin: "wager"`) on
        orders you took and as the maker (`origin: "offer"`) on orders you
        posted that were taken; `bet` and `odds` are always from **your** side.
        Each row embeds its game.


        **The window is capped at 35 days.** Omit `startDate` for your full
        history; an explicit window wider than 35 days is rejected with `400`
        rather than silently truncated. To poll for newly settled bets without
        guessing dates, use `getGradedSince`.


        Dates match the **start time of the game**, not the settlement time, so
        a bet that settles late still falls in its game's window. Any ISO 8601
        string is accepted.


        Settlement amounts are ledger-anchored: `fee` is the commission actually
        charged on the fill, `risk` is stake plus fee, `win` is gross winnings
        minus fee, and `result` is the signed P&L. Makers pay no commission.


        This endpoint is rate limited to **60 requests per minute per user** on
        top of the global limit; a `429` carries `Retry-After`.


        Also accepts `POST` with the same parameters sent as a JSON body.
      parameters:
        - name: startDate
          in: query
          required: false
          description: >-
            Start of the window (inclusive), matched against the game start
            time. Omit for your full history.
          schema:
            type: string
            example: '2026-08-01T00:00:00.000Z'
        - name: endDate
          in: query
          required: false
          description: >-
            End of the window (exclusive), matched against the game start time.
            Defaults to now.
          schema:
            type: string
            example: '2026-08-01T00:00:00.000Z'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      graded:
                        type: array
                        items:
                          anyOf:
                            - type: object
                              properties:
                                game:
                                  anyOf:
                                    - type: object
                                      properties:
                                        isSpecials:
                                          type: boolean
                                        eventName:
                                          type: string
                                        tournamentName:
                                          nullable: true
                                          type: string
                                        periodName:
                                          type: string
                                        id:
                                          type: string
                                          pattern: ^[0-9a-fA-F]{24}$
                                        ended:
                                          type: boolean
                                        league:
                                          type: string
                                        live:
                                          type: boolean
                                        parentGameID:
                                          nullable: true
                                          type: string
                                          pattern: ^[0-9a-fA-F]{24}$
                                        start:
                                          type: string
                                          description: ISO 8601 timestamp
                                          example: '2026-08-01T00:00:00.000Z'
                                        sport:
                                          type: string
                                        participants:
                                          type: array
                                          items:
                                            anyOf:
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    pattern: ^[0-9a-fA-F]{24}$
                                                  longName:
                                                    type: string
                                                  shortName:
                                                    type: string
                                                  mainPitcher:
                                                    type: string
                                                  homeAway:
                                                    type: string
                                                    enum:
                                                      - home
                                                      - away
                                                  score:
                                                    type: number
                                                  rotationNumber:
                                                    type: string
                                                  futuresSide:
                                                    type: string
                                                required:
                                                  - id
                                                  - longName
                                                  - shortName
                                                  - homeAway
                                                  - futuresSide
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    pattern: ^[0-9a-fA-F]{24}$
                                                  longName:
                                                    type: string
                                                  shortName:
                                                    type: string
                                                  mainPitcher:
                                                    type: string
                                                  homeAway:
                                                    type: string
                                                    enum:
                                                      - home
                                                      - away
                                                  score:
                                                    type: number
                                                  rotationNumber:
                                                    type: string
                                                  futuresSide:
                                                    type: string
                                                required:
                                                  - id
                                                  - longName
                                                  - shortName
                                                  - homeAway
                                                  - futuresSide
                                                additionalProperties: false
                                          minItems: 2
                                          maxItems: 2
                                          description: Away participant first, then home.
                                      required:
                                        - isSpecials
                                        - tournamentName
                                        - periodName
                                        - id
                                        - league
                                        - live
                                        - sport
                                        - participants
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        _id:
                                          type: string
                                        error:
                                          type: string
                                      required:
                                        - _id
                                        - error
                                      additionalProperties: false
                                      description: >-
                                        The entity could not be loaded; `_id`
                                        identifies it.
                                outcome:
                                  type: string
                                  enum:
                                    - winner
                                    - loser
                                    - half-win
                                    - half-loss
                                    - refunded
                                id:
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                  description: The order (session) id.
                                graded:
                                  type: boolean
                                type:
                                  type: string
                                  enum:
                                    - moneyline
                                    - spread
                                    - total
                                    - moneyline1x2
                                bet:
                                  type: number
                                  description: Your stake on this fill.
                                txID:
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                  description: The fill (take transaction) id.
                                closed:
                                  type: boolean
                                  enum:
                                    - false
                                createdAt:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                adminRefund:
                                  type: boolean
                                wagerRequestID:
                                  nullable: true
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                userReference:
                                  nullable: true
                                  type: string
                                isPostArb:
                                  type: boolean
                                  enum:
                                    - true
                                ticketNumber:
                                  type: string
                                odds:
                                  type: number
                                  description: American odds from your perspective.
                                matchedTime:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                settledAt:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                fee:
                                  type: string
                                  description: Commission actually charged on this fill.
                                platform:
                                  type: string
                                risk:
                                  type: string
                                  description: Stake plus commission.
                                win:
                                  type: string
                                  description: Gross winnings minus commission.
                                result:
                                  description: >-
                                    Signed settled P&L; absent when the outcome
                                    is unknown.
                                  type: string
                                origin:
                                  type: string
                                  enum:
                                    - wager
                                  description: You took this order.
                                cancelled:
                                  type: boolean
                                  enum:
                                    - false
                                participantID:
                                  nullable: true
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                spread:
                                  type: number
                                total:
                                  type: number
                                OU:
                                  type: string
                                  enum:
                                    - over
                                    - under
                                side:
                                  type: string
                                  enum:
                                    - 'yes'
                                    - 'no'
                                market:
                                  type: string
                              required:
                                - game
                                - id
                                - type
                                - bet
                                - txID
                                - closed
                                - ticketNumber
                                - odds
                                - fee
                                - risk
                                - win
                                - origin
                                - cancelled
                              additionalProperties: false
                            - type: object
                              properties:
                                game:
                                  anyOf:
                                    - type: object
                                      properties:
                                        isSpecials:
                                          type: boolean
                                        eventName:
                                          type: string
                                        tournamentName:
                                          nullable: true
                                          type: string
                                        periodName:
                                          type: string
                                        id:
                                          type: string
                                          pattern: ^[0-9a-fA-F]{24}$
                                        ended:
                                          type: boolean
                                        league:
                                          type: string
                                        live:
                                          type: boolean
                                        parentGameID:
                                          nullable: true
                                          type: string
                                          pattern: ^[0-9a-fA-F]{24}$
                                        start:
                                          type: string
                                          description: ISO 8601 timestamp
                                          example: '2026-08-01T00:00:00.000Z'
                                        sport:
                                          type: string
                                        participants:
                                          type: array
                                          items:
                                            anyOf:
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    pattern: ^[0-9a-fA-F]{24}$
                                                  longName:
                                                    type: string
                                                  shortName:
                                                    type: string
                                                  mainPitcher:
                                                    type: string
                                                  homeAway:
                                                    type: string
                                                    enum:
                                                      - home
                                                      - away
                                                  score:
                                                    type: number
                                                  rotationNumber:
                                                    type: string
                                                  futuresSide:
                                                    type: string
                                                required:
                                                  - id
                                                  - longName
                                                  - shortName
                                                  - homeAway
                                                  - futuresSide
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    pattern: ^[0-9a-fA-F]{24}$
                                                  longName:
                                                    type: string
                                                  shortName:
                                                    type: string
                                                  mainPitcher:
                                                    type: string
                                                  homeAway:
                                                    type: string
                                                    enum:
                                                      - home
                                                      - away
                                                  score:
                                                    type: number
                                                  rotationNumber:
                                                    type: string
                                                  futuresSide:
                                                    type: string
                                                required:
                                                  - id
                                                  - longName
                                                  - shortName
                                                  - homeAway
                                                  - futuresSide
                                                additionalProperties: false
                                          minItems: 2
                                          maxItems: 2
                                          description: Away participant first, then home.
                                      required:
                                        - isSpecials
                                        - tournamentName
                                        - periodName
                                        - id
                                        - league
                                        - live
                                        - sport
                                        - participants
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        _id:
                                          type: string
                                        error:
                                          type: string
                                      required:
                                        - _id
                                        - error
                                      additionalProperties: false
                                      description: >-
                                        The entity could not be loaded; `_id`
                                        identifies it.
                                outcome:
                                  type: string
                                  enum:
                                    - winner
                                    - loser
                                    - half-win
                                    - half-loss
                                    - refunded
                                id:
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                  description: The order (session) id.
                                graded:
                                  type: boolean
                                type:
                                  type: string
                                  enum:
                                    - moneyline
                                    - spread
                                    - total
                                    - moneyline1x2
                                bet:
                                  type: number
                                  description: Your stake on this fill.
                                txID:
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                  description: The fill (take transaction) id.
                                closed:
                                  type: boolean
                                  enum:
                                    - false
                                createdAt:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                adminRefund:
                                  type: boolean
                                wagerRequestID:
                                  nullable: true
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                userReference:
                                  nullable: true
                                  type: string
                                isPostArb:
                                  type: boolean
                                  enum:
                                    - true
                                ticketNumber:
                                  type: string
                                odds:
                                  type: number
                                  description: American odds from your perspective.
                                matchedTime:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                settledAt:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                fee:
                                  type: string
                                  description: Commission actually charged on this fill.
                                platform:
                                  type: string
                                risk:
                                  type: string
                                  description: Stake plus commission.
                                win:
                                  type: string
                                  description: Gross winnings minus commission.
                                result:
                                  description: >-
                                    Signed settled P&L; absent when the outcome
                                    is unknown.
                                  type: string
                                origin:
                                  type: string
                                  enum:
                                    - offer
                                  description: You posted the order that was taken.
                                takenRatio:
                                  type: number
                                  description: >-
                                    How much of the order's full volume has been
                                    filled, 0–1.
                                cancelled:
                                  type: boolean
                                expiry:
                                  nullable: true
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                spread:
                                  nullable: true
                                  type: number
                                total:
                                  nullable: true
                                  type: number
                                participantID:
                                  nullable: true
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                OU:
                                  type: string
                                  enum:
                                    - over
                                    - under
                                side:
                                  type: string
                                  enum:
                                    - 'yes'
                                    - 'no'
                                market:
                                  type: string
                              required:
                                - game
                                - id
                                - type
                                - bet
                                - txID
                                - closed
                                - ticketNumber
                                - odds
                                - fee
                                - risk
                                - win
                                - origin
                                - takenRatio
                                - spread
                                - total
                              additionalProperties: false
                            - type: object
                              properties:
                                txID:
                                  type: string
                                  pattern: ^[0-9a-fA-F]{24}$
                                ticketNumber:
                                  type: string
                                id:
                                  type: object
                                  properties:
                                    _id:
                                      type: string
                                    error:
                                      type: string
                                  required:
                                    - _id
                                    - error
                                  additionalProperties: false
                                  description: >-
                                    The entity could not be loaded; `_id`
                                    identifies it.
                                game:
                                  anyOf:
                                    - type: object
                                      properties:
                                        isSpecials:
                                          type: boolean
                                        eventName:
                                          type: string
                                        tournamentName:
                                          nullable: true
                                          type: string
                                        periodName:
                                          type: string
                                        id:
                                          type: string
                                          pattern: ^[0-9a-fA-F]{24}$
                                        ended:
                                          type: boolean
                                        league:
                                          type: string
                                        live:
                                          type: boolean
                                        parentGameID:
                                          nullable: true
                                          type: string
                                          pattern: ^[0-9a-fA-F]{24}$
                                        start:
                                          type: string
                                          description: ISO 8601 timestamp
                                          example: '2026-08-01T00:00:00.000Z'
                                        sport:
                                          type: string
                                        participants:
                                          type: array
                                          items:
                                            anyOf:
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    pattern: ^[0-9a-fA-F]{24}$
                                                  longName:
                                                    type: string
                                                  shortName:
                                                    type: string
                                                  mainPitcher:
                                                    type: string
                                                  homeAway:
                                                    type: string
                                                    enum:
                                                      - home
                                                      - away
                                                  score:
                                                    type: number
                                                  rotationNumber:
                                                    type: string
                                                  futuresSide:
                                                    type: string
                                                required:
                                                  - id
                                                  - longName
                                                  - shortName
                                                  - homeAway
                                                  - futuresSide
                                                additionalProperties: false
                                              - type: object
                                                properties:
                                                  id:
                                                    type: string
                                                    pattern: ^[0-9a-fA-F]{24}$
                                                  longName:
                                                    type: string
                                                  shortName:
                                                    type: string
                                                  mainPitcher:
                                                    type: string
                                                  homeAway:
                                                    type: string
                                                    enum:
                                                      - home
                                                      - away
                                                  score:
                                                    type: number
                                                  rotationNumber:
                                                    type: string
                                                  futuresSide:
                                                    type: string
                                                required:
                                                  - id
                                                  - longName
                                                  - shortName
                                                  - homeAway
                                                  - futuresSide
                                                additionalProperties: false
                                          minItems: 2
                                          maxItems: 2
                                          description: Away participant first, then home.
                                      required:
                                        - isSpecials
                                        - tournamentName
                                        - periodName
                                        - id
                                        - league
                                        - live
                                        - sport
                                        - participants
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        _id:
                                          type: string
                                        error:
                                          type: string
                                      required:
                                        - _id
                                        - error
                                      additionalProperties: false
                                      description: >-
                                        The entity could not be loaded; `_id`
                                        identifies it.
                                settledAt:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                                matchedTime:
                                  type: string
                                  description: ISO 8601 timestamp
                                  example: '2026-08-01T00:00:00.000Z'
                              required:
                                - txID
                                - ticketNumber
                                - id
                                - game
                              additionalProperties: false
                      summary:
                        type: object
                        properties:
                          pnl:
                            type: number
                            description: Sum of `result` over the rows, whole dollars.
                          volume:
                            type: number
                            description: >-
                              Sum of min(risk, win) over the rows, whole
                              dollars.
                        required:
                          - pnl
                          - volume
                        additionalProperties: false
                    required:
                      - graded
                      - summary
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid auth token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The account may not perform this action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limited — see Retry-After
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - authToken: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
      additionalProperties: false
  securitySchemes:
    authToken:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        The auth token returned by `POST /user/login` (`data.user.auth`), sent
        as the raw header value — no `Bearer` prefix.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.