Will Congress enact a ban on congressional stock trading before January 3, 2027?YES 34% 3%Will cannabis be federally legalized or descheduled before January 1, 2029?YES 58% 2%Will there be a federal government shutdown before October 1, 2026?YES 41% 5%Will Republicans keep control of the U.S. House in the 2026 midterms?YES 52% 1%Will the Senate confirm a Supreme Court nominee in 2026?YES 71% 2%Will a federal minimum wage increase be enacted before January 1, 2028?YES 22% 1%Will Congress enact a comprehensive federal AI framework law before January 1, 2028?YES 47% 4%Will a comprehensive border security bill become law before January 2027?YES 62% 1%Will Democrats win control of the U.S. Senate in the 2026 midterms?YES 44% 2%Will the Republican candidate win Ohio's 2026 U.S. Senate race?YES 58% 3%Will the Federal Reserve cut its policy rate at the July 2026 FOMC meeting?YES 68% 9%Will the NBER declare a U.S. recession beginning in 2026?YES 24% 3%Will Medicare drug-price negotiation be expanded to 30+ drugs before 2028?YES 36% 2%Will pandemic-era Medicare telehealth flexibilities be made permanent before 2027?YES 74% 1%Will Congress enact a ban on congressional stock trading before January 3, 2027?YES 34% 3%Will cannabis be federally legalized or descheduled before January 1, 2029?YES 58% 2%Will there be a federal government shutdown before October 1, 2026?YES 41% 5%Will Republicans keep control of the U.S. House in the 2026 midterms?YES 52% 1%Will the Senate confirm a Supreme Court nominee in 2026?YES 71% 2%Will a federal minimum wage increase be enacted before January 1, 2028?YES 22% 1%Will Congress enact a comprehensive federal AI framework law before January 1, 2028?YES 47% 4%Will a comprehensive border security bill become law before January 2027?YES 62% 1%Will Democrats win control of the U.S. Senate in the 2026 midterms?YES 44% 2%Will the Republican candidate win Ohio's 2026 U.S. Senate race?YES 58% 3%Will the Federal Reserve cut its policy rate at the July 2026 FOMC meeting?YES 68% 9%Will the NBER declare a U.S. recession beginning in 2026?YES 24% 3%Will Medicare drug-price negotiation be expanded to 30+ drugs before 2028?YES 36% 2%Will pandemic-era Medicare telehealth flexibilities be made permanent before 2027?YES 74% 1%

API & Data Platform

Programmatic access to polling averages, forecast-market probabilities, representative scorecards, and the representation-gap index — the same data that powers every chart on Quorly.

Demonstration data — not a live government record
Public endpoints
10
Uptime (90d)
99.97%
Median latency
41 ms
Requests served / mo
38M9%

Demo API key

Generate a sandbox key to explore the demonstration endpoints. Sandbox keys are rate-limited to Developer-tier quotas and return demonstration data only.

Endpoint Reference

3 endpoints live in this demo
MethodEndpointDescriptionQuery paramsExample
GET
/api/polls TRY IT
Poll studies with full methodology metadata and transparency scorestopic, pollster, population, limit
/api/polls?topic=cannabis&limit=10
GET
/api/pollsters
Pollster directory: ratings, historical error, AAPOR membershiporientation, minTransparency
/api/pollsters?minTransparency=70
GET
/api/averages TRY IT
Weighted polling averages with Pulse and market comparisonstopic, limit
/api/averages?topic=approval
GET
/api/trends
Time-series for any average, market, or Pulse questionid, from, to, interval
/api/trends?id=m-shutdown&interval=1d
GET
/api/markets TRY IT
Forecast markets: probabilities, 24h change, participation, resolution criteriacategory, status, limit
/api/markets?category=Congress&status=open
GET
/api/markets/:id
Single market with full history, order-book summary, and evidence linksid (path)
/api/markets/m-stock-ban
GET
/api/representatives
Representative scorecards: alignment, attendance, transparency, promisesstate, party, office
/api/representatives?state=OH
GET
/api/gap
Representation-gap index: constituent sentiment vs. recorded actionminGap, state, issue
/api/gap?minGap=20
GET
/api/pulse
Public Pulse questions with verified-respondent breakdownscategory, relatedBill
/api/pulse?category=Ethics
GET
/api/bills
Legislation tracker: status, timeline, votes, community sentimentstatus, policyArea, sponsor
/api/bills?status=In%20Committee

Example: GET /api/markets

200 OK · application/json
JSON
{
  "data": [
    {
      "id": "m-stock-ban",
      "question": "Will Congress enact a stock trading ban for members before 2027?",
      "category": "Congress",
      "yesProb": 34,
      "change24h": 2,
      "participants": 8412,
      "status": "open",
      "closesAt": "2026-12-31",
      "resolutionCriteria": "Resolves YES if a statute banning individual stock trading by members is signed into law…"
    }
  ],
  "meta": {
    "version": "v1",
    "attribution": "Quorly demonstration data",
    "generatedAt": "2026-07-03T12:00:00.000Z"
  }
}

Example: GET /api/averages

200 OK · application/json
JSON
{
  "data": [
    {
      "id": "avg-approval",
      "topic": "Presidential approval",
      "label": "National Polling Average",
      "value": 44.2,
      "change30d": -1.3,
      "pollsIncluded": 18,
      "pulseValue": 43.0,
      "forecastProb": 41.0
    }
  ],
  "meta": {
    "version": "v1",
    "attribution": "Quorly demonstration data",
    "generatedAt": "2026-07-03T12:00:00.000Z"
  }
}
Authenticated request
cURL
curl -s "https://api.quorly.example/v1/markets?category=Congress" \
  -H "Authorization: Bearer $QUORLY_API_KEY" \
  -H "Accept: application/json"

Plan Limits

Matches platform pricing

Developer

Start here
25,000
API requests / month
  • 60 req/min burst rate
  • 90 days historical data
  • Attribution-locked widgets
  • Public read endpoints
  • Community forum
See pricing

Professional

Most popular
250,000
API requests / month
  • 300 req/min burst rate
  • 3 years historical data
  • White-label widgets
  • All read endpoints + bulk export
  • Email, 2-business-day SLA
See pricing

Business

Scale
1,500,000
API requests / month
  • 1,200 req/min burst rate
  • Full archive historical data
  • White-label + custom themes widgets
  • All endpoints + webhooks + streaming
  • Dedicated manager, 4-hour SLA
See pricing

Authentication

  • • All requests require Authorization: Bearer <key>.
  • • Keys are scoped per project and can be rotated at any time without downtime (old key valid for 24h).
  • • Server-side use only — never ship a key in client-side code. Use widgets for browser embeds.

Rate limits

  • • Limits apply per key, per minute, with monthly quotas per plan.
  • • Every response includes X-RateLimit-Remaining and X-RateLimit-Reset.
  • • Exceeding a limit returns 429 with a Retry-After header — back off exponentially.

Attribution

  • • Public displays of API data must show “Data: Quorly” with a link, visible without interaction.
  • • The meta.attribution field ships with every response — render it as delivered.
  • • Widgets include attribution automatically; removing or obscuring it violates the terms.
Licensed data boundary: the Quorly API never exposes licensed third-party data beyond its permitted usage. Poll results from external pollsters are redistributed only as aggregates and derived averages under our redistribution agreements; raw microdata, respondent-level records, and full question-level crosstabs from licensed sources are not available through any endpoint or tier. Forecast markets use virtual Q Credits with no cash value — API consumers may not present market probabilities as gambling odds or financial advice.

Embeddable Widgets

No API key required

Drop a live market probability, polling average, or representation-gap card into any site. Widgets are served from an isolated origin, theme-aware, and update automatically. Attribution renders inside the widget frame.

Iframe embed — market card
HTML
<!-- Market probability widget -->
<iframe
  src="https://widgets.quorly.example/market/m-stock-ban?theme=dark"
  width="360" height="200" frameborder="0"
  title="Quorly market: congressional stock trading ban">
</iframe>
<!-- Attribution is rendered inside the widget and must remain visible -->
Script embed — polling average
HTML
<!-- Polling average embed -->
<div data-quorly-widget="average" data-topic="approval" data-theme="dark"></div>
<script async src="https://widgets.quorly.example/embed.js"></script>