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

# List arguments for a debate

> Returns structured arguments for a debate. Each argument is tied to a position (answer option) and includes upvote counts.

This is the core "why" data — the reasoning behind opinions.




## OpenAPI

````yaml /openapi.yaml get /debates/{slug}/arguments
openapi: 3.1.0
info:
  title: Thinkbase Data API
  version: 1.0.0
  description: >
    Structured opinion data, arguments, and voting percentages via REST API.


    Thinkbase captures **what** people think (voting percentages) and **why**
    they think it (structured arguments tied to positions). This data is
    available across 14 categories including Politics, Ethics, Technology, and
    more.


    ## Authentication

    All endpoints require an API key passed in the `X-API-Key` header.


    ## Tiers

    Usage-based pricing at $0.003/call with no base fees. Tiers auto-graduate
    based on lifetime spend.

    - **Free** ($0 spent, 100 calls/day): Debates, categories, trending, live
    percentages

    - **Tier 1** ($5 spent, 1K calls/day): + Arguments, search, historical
    snapshots

    - **Tier 2** ($50 spent, 10K calls/day): Higher rate limits

    - **Tier 3** ($250 spent, 100K calls/day): Production-scale access

    - **Tier 4** ($1,000 spent, 1M calls/day): Maximum throughput
servers:
  - url: https://api.trythinkbase.com/v1
    description: Production
security:
  - apiKey: []
tags:
  - name: Debates
    description: Browse and filter debates with live voting percentages.
  - name: Arguments
    description: >-
      Access structured arguments — the reasoning behind opinions. Requires
      **Tier 1+**.
  - name: History
    description: View prediction percentage changes over time. Requires **Tier 1+**.
  - name: Categories
    description: List debate categories.
  - name: Trending
    description: Get currently trending debates.
  - name: Search
    description: Search debates by keyword. Requires **Tier 1+**.
paths:
  /debates/{slug}/arguments:
    get:
      tags:
        - Arguments
      summary: List arguments for a debate
      description: >
        Returns structured arguments for a debate. Each argument is tied to a
        position (answer option) and includes upvote counts.


        This is the core "why" data — the reasoning behind opinions.
      operationId: listArguments
      parameters:
        - name: slug
          in: path
          required: true
          schema:
            type: string
          example: should-the-us-ban-tiktok
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/LimitParam'
        - name: option_id
          in: query
          schema:
            type: string
            format: uuid
          description: Filter to arguments for a specific answer option.
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - top
              - recent
            default: top
          description: Sort by upvotes (`top`) or creation time (`recent`).
      responses:
        '200':
          description: Paginated list of arguments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Argument'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TierRequired'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    PageParam:
      name: page
      in: query
      schema:
        type: integer
        default: 1
        minimum: 1
      description: Page number.
    LimitParam:
      name: limit
      in: query
      schema:
        type: integer
        default: 50
      description: >-
        Results per page. Maximum depends on your tier (free=100, tier_1=250,
        tier_2=500, tier_3=1000, tier_4=1000).
  schemas:
    Argument:
      type: object
      properties:
        id:
          type: string
          format: uuid
        position:
          type: string
          description: The answer option text this argument supports.
          example: 'Yes'
        position_emoji:
          type: string
          nullable: true
          example: ✅
        body:
          type: string
          description: The full argument text.
          example: >-
            The real question isn't whether to ban it — it's whether a forced
            divestiture achieves the same security goals without the free speech
            implications.
        upvote_count:
          type: integer
          description: Number of upvotes this argument received.
          example: 89
        created_at:
          type: string
          format: date-time
      required:
        - id
        - position
        - body
        - upvote_count
        - created_at
    Pagination:
      type: object
      properties:
        page:
          type: integer
          example: 1
        limit:
          type: integer
          example: 50
        total:
          type: integer
          example: 1648
        has_more:
          type: boolean
          example: true
      required:
        - page
        - limit
        - total
        - has_more
    AuthError:
      type: object
      properties:
        error:
          type: string
          example: Missing API key
        message:
          type: string
          example: Include your API key in the X-API-Key header.
        docs:
          type: string
          example: https://docs.trythinkbase.com/authentication
    TierError:
      type: object
      properties:
        error:
          type: string
          example: Tier upgrade required
        message:
          type: string
        current_tier:
          type: string
          example: free
        required_tier:
          type: string
          example: tier_1
        upgrade_url:
          type: string
          example: https://docs.trythinkbase.com/pricing
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
    RateLimitError:
      type: object
      properties:
        error:
          type: string
          example: Rate limit exceeded
        message:
          type: string
          example: Daily limit of 10000 requests exceeded.
        limit:
          type: integer
          example: 10000
        upgrade_url:
          type: string
          example: https://docs.trythinkbase.com/pricing
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthError'
    TierRequired:
      description: Tier upgrade required (Tier 1 or higher).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TierError'
    NotFound:
      description: Debate not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Daily rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your Thinkbase API key. Get one at https://platform.trythinkbase.com.
      x-default: your-api-key-here

````