Skip to main content
Glama
TheRundown

therundown-data

Official

List futures

list_futures
Read-onlyIdempotent

Retrieve futures competition data for a specific sport via cursor pagination. Requires Ultra plan or higher.

Instructions

Read one sport's scoped futures competition page. Do not use this for dated event discovery or treat a partial page as a complete listing. Futures require an eligible Ultra plan or higher and use opaque cursor pagination.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
sport_idYes
market_idsNoCanonical futures market IDs; defaults to 1141. Discover with list_markets.
affiliate_idsNoCanonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates.
include_settledNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "events": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "event_date": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "event_id": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "event_status": {
      +                "type": [
      +                  "string",
      +                  "number",
      +                  "boolean",
      +                  "null"
      +                ]
      +              },
      +              "main_lines": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "affiliate_id": {
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 2147483647,
      +                      "type": "integer"
      +                    },
      +                    "is_main_line": {
      +                      "const": true,
      +                      "type": "boolean"
      +                    },
      +                    "line_value": {
      +                      "type": [
      +                        "string",
      +                        "number",
      +                        "boolean",
      +                        "null"
      +                      ]
      +                    },
      +                    "market_id": {
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 2147483647,
      +                      "type": "integer"
      +                    },
      +                    "market_name": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "participant": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "id": {
      +                          "type": [
      +                            "string",
      +                            "number",
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "name": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "type": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    "period_id": {
      +                      "anyOf": [
      +                        {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "price": {
      +                      "type": "number"
      +                    },
      +                    "updated_at": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "participant",
      +                    "line_value",
      +                    "affiliate_id",
      +                    "price",
      +                    "is_main_line"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "market_ids": {
      +                "items": {
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 2147483647,
      +                  "type": "integer"
      +                },
      +                "type": "array"
      +              },
      +              "schedule": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "event_name": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "league_name": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "season_year": {
      +                    "type": [
      +                      "string",
      +                      "number",
      +                      "boolean",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "settle_by": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "settlement": {
      +                "additionalProperties": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "settled_at": {
      +                      "type": [
      +                        "string",
      +                        "number",
      +                        "boolean",
      +                        "null"
      +                      ]
      +                    },
      +                    "status": {
      +                      "type": [
      +                        "string",
      +                        "number",
      +                        "boolean",
      +                        "null"
      +                      ]
      +                    },
      +                    "winning_line": {
      +                      "type": [
      +                        "string",
      +                        "number",
      +                        "boolean",
      +                        "null"
      +                      ]
      +                    },
      +                    "winning_participant_id": {
      +                      "type": [
      +                        "string",
      +                        "number",
      +                        "boolean",
      +                        "null"
      +                      ]
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "propertyNames": {
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              },
      +              "sport_id": {
      +                "exclusiveMinimum": 0,
      +                "maximum": 2147483647,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "market_ids",
      +              "main_lines"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "meta": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "count": {
      +              "type": [
      +                "string",
      +                "number",
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "has_more": {
      +              "type": [
      +                "string",
      +                "number",
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "next_cursor": {
      +              "type": [
      +                "string",
      +                "number",
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "total": {
      +              "type": [
      +                "string",
      +                "number",
      +                "boolean",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "events",
      +        "meta"
      +      ],
      +      "type": "object"
      +    },
      +    "empty": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "code": {
      +          "enum": [
      +            "page_out_of_range",
      +            "no_results"
      +          ],
      +          "type": "string"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message",
      +        "scope"
      +      ],
      +      "type": "object"
      +    },
      +    "error": {
      +      "type": "string"
      +    },
      +    "event_id": {
      +      "type": "string"
      +    },
      +    "limit_reason": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "missing_entitlement": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "monthly_remaining_points": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "plan": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "remaining_points": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "required_plan": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "retrieved_at": {
      +      "type": "string"
      +    },
      +    "retry_after": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "source_url": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "status": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "usage": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.2.1

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive/openWorld, but the description adds real behavioral context beyond them: a plan-tier eligibility gate (Ultra or higher), opaque cursor pagination, and a warning that a partial page must not be treated as a full listing. These are non-obvious operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, all front-loaded: scope first, then exclusions, then plan/pagination constraints. No filler, every sentence carries a distinct constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers scope, exclusions, plan gating, and pagination. The remaining gap is per-parameter semantics for the four undocumented parameters, which is minor but not fully closed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%; only market_ids and affiliate_ids carry inline descriptions. The description mentions cursor pagination but adds no meaning for sport_id, limit, include_settled, or the semantics of cursor values, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('read one sport's scoped futures competition page'), which is concrete and distinguishes the tool's domain from generic listing. It implicitly separates itself from dated-event tools by calling out 'dated event discovery', though it doesn't name the sibling (list_events) directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when NOT to use it ('Do not use this for dated event discovery') and adds two further caveats: partial pages are not complete listings, and futures require an eligible Ultra plan. This is concrete when/when-not guidance not derivable from the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.