Skip to main content
Glama
proplineapi

PropLine

Official

propline_get_odds_history

Retrieve historical line-movement snapshots for any event, showing every recorded price change per outcome over its lifetime.

Instructions

Pro-tier endpoint. Returns the historical line-movement snapshot series for an event (every recorded price/point change per outcome over the event's lifetime). Free tier returns market structure with redacted snapshots and an upgrade pointer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sport_keyYes
event_idYes
marketsNo

Implementation Reference

  • src/index.ts:172-195 (registration)
    Tool definition (name, description, inputSchema) and inline handler that delegates to client().getOddsHistory().
    {
      name: "propline_get_odds_history",
      description:
        "Pro-tier endpoint. Returns the historical line-movement snapshot " +
        "series for an event (every recorded price/point change per " +
        "outcome over the event's lifetime). Free tier returns market " +
        "structure with redacted snapshots and an upgrade pointer.",
      inputSchema: {
        type: "object",
        properties: {
          sport_key: { type: "string" },
          event_id: { type: ["string", "number"] },
          markets: { type: "string" },
        },
        required: ["sport_key", "event_id"],
        additionalProperties: false,
      },
      handler: (args) =>
        client().getOddsHistory(
          args.sport_key as string,
          args.event_id as string | number,
          { markets: args.markets as string | undefined },
        ),
    },
  • Input schema for propline_get_odds_history: requires sport_key (string) and event_id (string|number), optional markets (string).
    inputSchema: {
      type: "object",
      properties: {
        sport_key: { type: "string" },
        event_id: { type: ["string", "number"] },
        markets: { type: "string" },
      },
      required: ["sport_key", "event_id"],
      additionalProperties: false,
    },
  • Actual HTTP client method getOddsHistory that makes a GET request to /v1/sports/{sportKey}/events/{eventId}/odds/history with optional markets query param.
    getOddsHistory(
      sportKey: string,
      eventId: string | number,
      opts: { markets?: string } = {},
    ): Promise<unknown> {
      return this.request(
        `/v1/sports/${sportKey}/events/${eventId}/odds/history`,
        { markets: opts.markets },
      );
    }
Behavior3/5

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

With no annotations, the description explains the data returned (snapshot series) and tier differences, but lacks details on rate limits, authentication, or error handling. Some behavioral info is present but incomplete.

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?

Two concise sentences, front-loaded with purpose and supplemented with tier context. No wasted words.

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

Completeness2/5

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

For a tool with three undocumented parameters and no output schema, the description lacks detail on parameter usage, return format, pagination, or limits. Incomplete for correct invocation.

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 has 0% description coverage and the tool description does not explain any of the three parameters (sport_key, event_id, markets). Only implicit understanding from context. Description fails to compensate.

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

Purpose5/5

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

Description clearly states it returns historical line-movement snapshots for an event, distinguishing it from sibling tools like propline_get_odds (current odds).

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

Usage Guidelines4/5

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

Mentions it's a Pro-tier endpoint and describes free tier behavior, giving context on when to use. No explicit exclusions or alternatives, but the tier distinction provides guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/proplineapi/propline-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server