{
  "name": "Apipunt",
  "description": "API betting tips for the agent era. Pull subscription-gated racing tips, source metadata, runner context, and demo data for local betting agents and Telegram approval workflows.",
  "canonical_agent_entrypoint": "https://apipunt.com/agents.json",
  "human_agent_instructions": "https://apipunt.com/agents",
  "api_base_url": "https://api.apipunt.com",
  "openapi_url": "https://api.apipunt.com/openapi.json",
  "llms_txt_url": "https://api.apipunt.com/llms.txt",
  "authentication": {
    "production": {
      "type": "apiKey",
      "header": "X-API-Key",
      "note": "Use X-API-Key for normal integrations. API keys map to subscription tiers and source entitlements."
    },
    "browser_demo": {
      "query_parameter": "api_key",
      "demo_key": "xxx111",
      "warning": "Query-string API keys are for demos only. They can appear in logs and browser history."
    }
  },
  "recommended_first_calls": [
    {
      "purpose": "Confirm service is reachable",
      "method": "GET",
      "url": "https://api.apipunt.com/health",
      "auth_required": false
    },
    {
      "purpose": "List available source families",
      "method": "GET",
      "url": "https://api.apipunt.com/v1/sources",
      "auth_required": true
    },
    {
      "purpose": "Fetch demo tips from the last 10 days",
      "method": "GET",
      "url": "https://api.apipunt.com/v1/tips?days=10&api_key=xxx111",
      "auth_required": false,
      "demo_only": true
    },
    {
      "purpose": "Fetch source-specific tips by date window",
      "method": "GET",
      "url": "https://api.apipunt.com/v1/tips?source=tw&days=10",
      "auth_required": true
    }
  ],
  "endpoint_map": {
    "sources": "/v1/sources",
    "dates": "/v1/dates?source={source}",
    "tips": "/v1/tips?date={YYYY-MM-DD}&source={source}",
    "tips_window": "/v1/tips?days={1-60}&source={source}",
    "tip_detail": "/v1/tips/{id}",
    "runners": "/v1/runners?date={YYYY-MM-DD}&track={track}&race_number={race_number}",
    "cross_referenced": "/v1/cross-referenced?date={YYYY-MM-DD}"
  },
  "source_aliases": {
    "tw": "TW",
    "tom-waterhouse": "TW",
    "elite": "Elite",
    "nationwide": "Nationwide",
    "nationwide-ratings": "Nationwide Ratings",
    "rs": "R&S",
    "r&s": "R&S",
    "r-and-s": "R&S"
  },
  "response_shape": {
    "envelope": {
      "data": "array or object"
    },
    "tip_fields": [
      "id",
      "date",
      "track",
      "race_number",
      "time",
      "horse_number",
      "horse_name",
      "selection_type",
      "stake",
      "provider",
      "odds_rated",
      "odds_market",
      "comment",
      "special_flag",
      "source_code"
    ],
    "include_raw": "Append include_raw=true to /v1/tips when raw provider payloads are needed and the key has access."
  },
  "agent_policy": {
    "intended_use": "Information retrieval and downstream betting workflow automation under the user's subscription and account controls.",
    "execution_note": "Apipunt provides tips and context. Bet placement should remain behind the user's Telegram approval or account-specific controls.",
    "subscription_note": "API keys determine which providers, fields, raw data, and request limits an agent can access."
  },
  "examples": {
    "curl_header_auth": "curl 'https://api.apipunt.com/v1/tips?source=tw&days=10' -H 'X-API-Key: $APIPUNT_KEY'",
    "browser_demo_all": "https://api.apipunt.com/v1/tips?days=10&api_key=xxx111",
    "browser_demo_tw": "https://api.apipunt.com/v1/tips?days=10&source=tw&api_key=xxx111"
  }
}