Api Endpoint

Horizon Pulse

Hacker News and Bluesky opinion split, NOT a poll: how public posts divide on a question. GET q; optional sides (2-4, default yes,no), window (1-30d). Returns JSON: per-side share with 95% interval and n, counts per source, links only (no text or usernames; Bluesky links include the account's public ID, DID), caveats. Refuses elections, health and a named person's conduct. Under 30 decided posts, refusals and errors: not charged on Base (other rails may charge).

Open interactive test console

Offering

Provider
horizonpulse.dev
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Social Intelligence
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://horizonpulse.dev/api/discourse/split
MIME type
application/json
First seen
2026-10-16T01:50:24.663Z
Last seen
Tags
Research, discourse, opinion-split, hacker-news-bluesky, not-a-poll

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.03 USDC
Atomic price: 30000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 2
0.03 USDC
Atomic price: 30000 · Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: USDC · Scheme: exact
Payment option 3
0.03 USDC
Atomic price: 30000 · Network: eip155:137 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "30000",
    "payTo": "0x5b32c973596078a967562ca652761404f19be0e9"
  },
  {
    "scheme": "exact",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "amount": "30000",
    "payTo": "BjY98A6dS3GGLZdz2zHy8wK7XAwnQgNhCc66mfmBTRPz"
  },
  {
    "scheme": "exact",
    "network": "eip155:137",
    "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
    "amount": "30000",
    "payTo": "0x5b32c973596078a967562ca652761404f19be0e9"
  }
]

Observed health

Status
Healthy
Latest latency
92 ms
Average latency
98 ms
HTTP status
402
Last checked
Reachability
100% over 13 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "description": "Question or topic, 3-200 chars (required). Elections/candidates, health, and a named person's conduct are refused (Base: not charged; other rails may charge)."
        },
        "sides": {
          "type": "string",
          "description": "2-4 comma-separated side labels (default yes,no)."
        },
        "window": {
          "type": "string",
          "description": "Look-back window 1-30 days, e.g. 7d (default 30d)."
        }
      },
      "required": [
        "q"
      ]
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "q": {
              "description": "Question or topic, 3-200 chars (required). Elections/candidates, health, and a named person's conduct are refused (not charged).",
              "type": "string"
            },
            "sides": {
              "description": "2-4 comma-separated side labels (default yes,no).",
              "type": "string"
            },
            "window": {
              "description": "Look-back window 1-30 days, e.g. 7d (default 30d).",
              "type": "string"
            }
          },
          "required": [
            "q"
          ],
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "description": "Horizon Pulse online discourse split (NOT a poll): shares with 95% intervals, counts and source links. The example is a trimmed real response recorded from GET /api/demo/discourse-split at 2026-10-16T17:16Z UTC; live values differ on every call.",
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}