GET
/
api
/
markets
curl --request GET \
  --url https://api.data.adj.news/api/markets \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "market_id": "<string>",
      "platform_id": "<string>",
      "ticker": "<string>",
      "adj_ticker": "<string>",
      "market_slug": "<string>",
      "platform": "<string>",
      "market_type": "<string>",
      "question": "<string>",
      "description": "<string>",
      "rules": "<string>",
      "result": "<string>",
      "link": "<string>",
      "status": "<string>",
      "reported_date": "<string>",
      "created_at": "<string>",
      "updated_at": "<string>",
      "end_date": "<string>",
      "resolution_date": "<string>",
      "probability": 123,
      "volume": 123,
      "open_interest": 123,
      "liquidity": 123,
      "category": "<string>",
      "tags": [
        "<string>"
      ],
      "platform_ids": {},
      "status_details": {},
      "settlement_sources": [
        "<string>"
      ],
      "comments_count": 123,
      "has_comments": 123,
      "trades_count": 123,
      "event": "<string>"
    }
  ],
  "meta": {
    "count": 123,
    "limit": 123,
    "offset": 123,
    "hasMore": true
  }
}

Comprehensive Market Discovery & Filtering

This endpoint is your gateway to exploring prediction markets across multiple platforms with unprecedented flexibility and control. Whether you’re building market dashboards, conducting research, or developing trading applications, this endpoint provides powerful filtering, sorting, and pagination capabilities to help you find exactly the markets you need.

Key Features & Capabilities

🎯 Multi-Platform Access

Access markets from all major prediction market platforms:

  • Kalshi - Regulated US prediction markets
  • Polymarket - Crypto-based prediction markets
  • Manifold Markets - Community-driven forecasting
  • Metaculus - Research-focused forecasting platform

🔍 Advanced Filtering

Filter markets by virtually any attribute:

  • Platform & Type: Specific platforms, market types
  • Content: Keywords in questions, descriptions, rules
  • Status & Dates: Active, resolved, creation dates, end dates
  • Numerical Values: Probability ranges, volume thresholds, liquidity levels
  • Categories: Politics, economics, technology, sports, entertainment
  • Geography: Region-specific markets

📊 Flexible Sorting

Sort results by any field in ascending or descending order:

  • Recency: created_at, updated_at
  • Activity: volume, trades_count
  • Market Metrics: probability, liquidity, open_interest
  • Engagement: comments_count

📄 Smart Pagination

Efficient pagination with metadata for building interfaces:

  • Total count information
  • Pagination state tracking
  • “Has more” indicators
  • Configurable page sizes

Query Parameters Reference

Core Parameters

limit
integer
default:50

Maximum number of markets to return per request.

  • Range: 1-1000 (unauthenticated max: 100)
  • Default: 50
  • Tip: Use 10-20 for UI components, 100-500 for data analysis
offset
integer
default:0

Number of markets to skip (for pagination).

  • Usage: offset = page * limit
  • Example: Page 3 with 50 per page = offset=100
sort
string
default:"created_at:desc"

Sort order for results.

Format: field:direction

Popular Sort Options:

  • created_at:desc - Newest first (default)
  • updated_at:desc - Recently updated
  • volume:desc - Highest volume
  • probability:desc - Highest probability
  • end_date:asc - Ending soonest
  • liquidity:desc - Most liquid

Platform & Type Filters

platform
string

Filter by specific platforms.

Supported Values:

  • kalshi - Kalshi markets
  • polymarket - Polymarket
  • manifold - Manifold Markets
  • metaculus - Metaculus

Format: "kalshi,polymarket" for multiple platforms

market_type
string

Filter by market type.

Common Types:

  • binary - Yes/No markets
  • multiple_choice - Multiple outcome markets
  • numerical - Numerical prediction markets
  • conditional - Conditional prediction markets

Status & Date Filters

status
string

Filter by market status.

Status Values:

  • active - Currently active for trading
  • resolved - Market has been resolved
  • closed - Closed but not yet resolved
  • suspended - Temporarily suspended
  • cancelled - Cancelled market
created_after
string

Include markets created after this date.

Format: ISO 8601 date string (2024-01-01T00:00:00Z) Example: created_after=2024-01-01 for markets from 2024

created_before
string

Include markets created before this date.

Format: ISO 8601 date string Use Case: Historical analysis, specific time periods

end_date_after
string

Include markets ending after this date.

Format: ISO 8601 date string Use Case: Find markets ending in a specific timeframe

end_date_before
string

Include markets ending before this date.

Format: ISO 8601 date string Use Case: Find markets ending soon or in the past

Content Search Filters

q
string

Search within market questions, descriptions, and rules.

Search Capabilities:

  • Full-text search across all market content
  • Supports partial matches and stemming
  • Case-insensitive search

Examples:

  • q=presidential election - Find election-related markets
  • q=climate change - Environmental markets
  • q=AI artificial intelligence - Technology markets
question_contains
string

Search specifically within market questions.

Use Case: More targeted search than general q parameter Example: question_contains=Will Trump for specific question patterns

Numerical Filters

probability_min
number

Minimum probability (0.0 to 1.0).

Example: probability_min=0.7 for high-probability markets Use Case: Find markets with strong conviction

probability_max
number

Maximum probability (0.0 to 1.0).

Example: probability_max=0.3 for low-probability markets Use Case: Find contrarian opportunities

volume_min
number

Minimum trading volume.

Use Case: Filter for liquid, actively traded markets Example: volume_min=10000 for markets with significant activity

liquidity_min
number

Minimum liquidity/open interest.

Use Case: Ensure markets have sufficient depth for trading Example: liquidity_min=5000 for well-funded markets

Category & Tag Filters

category
string

Filter by market category.

Common Categories:

  • politics - Political events and elections
  • economics - Economic indicators and markets
  • technology - Tech developments and innovation
  • sports - Sports outcomes and championships
  • entertainment - Media, celebrity, and cultural events
  • science - Scientific developments and discoveries
  • weather - Weather and climate predictions
tags
string

Filter by market tags.

Format: Comma-separated list of tags Example: tags=election,politics,2024 for 2024 election markets

Response Format

Successful Response Structure

{
  "data": [
    {
      "market_id": "kalshi_KXSECPRESSMENTION-25JUN30-HOAX",
      "platform": "kalshi",
      "platform_id": "KXSECPRESSMENTION-25JUN30-HOAX",
      "adj_ticker": "HOAX-MENTION-JUNE-2025",
      "question": "Will the White House Press Secretary say 'Hoax' at her next press briefing?",
      "description": "This market resolves to 'Yes' if the White House Press Secretary uses the word 'hoax' during any official press briefing...",
      "rules": "Market resolves based on official White House press briefing transcripts...",
      "status": "active",
      "market_type": "binary",
      "category": "politics",
      "probability": 0.23,
      "volume": 45000,
      "liquidity": 8500,
      "open_interest": 12000,
      "trades_count": 156,
      "comments_count": 89,
      "created_at": "2025-01-15T10:30:00Z",
      "updated_at": "2025-01-24T14:22:00Z",
      "end_date": "2025-06-30T23:59:59Z",
      "resolution_date": null,
      "link": "https://kalshi.com/events/KXSECPRESSMENTION-25JUN30-HOAX",
      "tags": ["politics", "white-house", "press-briefing", "communication"],
      "event": "White House Communications",
      "settlement_sources": ["whitehouse.gov", "c-span.org"]
    }
    // ... more markets
  ],
  "meta": {
    "count": 1247,        // Total matching markets
    "limit": 50,          // Requested limit  
    "offset": 0,          // Current offset
    "hasMore": true,      // Whether more results exist
    "page": 1,            // Current page (calculated)
    "totalPages": 25,     // Total pages (calculated) 
    "filters": {          // Applied filters summary
      "status": "active",
      "platform": ["kalshi", "polymarket"],
      "category": "politics"
    },
    "sort": "created_at:desc"
  }
}

Field Descriptions

FieldTypeDescription
market_idstringUnique identifier across all platforms
platformstringSource platform (kalshi, polymarket, etc.)
platform_idstringPlatform-specific identifier
adj_tickerstringAdjacent News standardized ticker
questionstringMarket question or title
descriptionstringDetailed market description
rulesstringResolution rules and conditions
statusstringCurrent market status
market_typestringType of market (binary, multiple_choice, etc.)
categorystringMarket category
probabilitynumberCurrent probability (0.0-1.0)
volumenumberTotal trading volume
liquiditynumberCurrent liquidity/open interest
trades_countintegerNumber of trades
comments_countintegerNumber of comments
created_atstringMarket creation timestamp
updated_atstringLast update timestamp
end_datestringMarket end/close date
resolution_datestringActual resolution date (if resolved)
linkstringDirect link to market on platform
tagsarrayAssociated tags
eventstringParent event (if applicable)

Comprehensive Examples

Basic Market Discovery

# Get 20 most recent active markets
curl "https://api.data.adj.news/api/markets?status=active&limit=20&sort=created_at:desc"

# Browse markets by category
curl "https://api.data.adj.news/api/markets?category=politics&limit=25"

# Find high-volume markets
curl "https://api.data.adj.news/api/markets?volume_min=50000&sort=volume:desc"

Platform-Specific Queries

# Get all Kalshi markets
curl "https://api.data.adj.news/api/markets?platform=kalshi"

# Compare markets across platforms
curl "https://api.data.adj.news/api/markets?platform=kalshi,polymarket&q=presidential%20election"

# Manifold Markets community predictions
curl "https://api.data.adj.news/api/markets?platform=manifold&sort=comments_count:desc"

Time-Based Filtering

# Markets created in the last 7 days
curl "https://api.data.adj.news/api/markets?created_after=2025-01-17T00:00:00Z"

# Markets ending in the next 30 days
curl "https://api.data.adj.news/api/markets?end_date_after=2025-01-24T00:00:00Z&end_date_before=2025-02-24T00:00:00Z"

# Historical markets from 2024
curl "https://api.data.adj.news/api/markets?created_after=2024-01-01&created_before=2024-12-31" \
  -H "Authorization: Bearer YOUR_API_KEY"

Advanced Filtering Combinations

# High-conviction political markets
curl "https://api.data.adj.news/api/markets?category=politics&probability_min=0.8&volume_min=10000"

# Low-probability opportunities with good liquidity
curl "https://api.data.adj.news/api/markets?probability_max=0.2&liquidity_min=5000&status=active"

# Technology markets ending soon
curl "https://api.data.adj.news/api/markets?category=technology&end_date_before=2025-02-01T00:00:00Z&status=active"
# Search for election-related markets
curl "https://api.data.adj.news/api/markets?q=presidential%20election%202024"

# Find AI and technology markets
curl "https://api.data.adj.news/api/markets?question_contains=artificial%20intelligence&category=technology"

# Climate change predictions
curl "https://api.data.adj.news/api/markets?q=climate%20change%20global%20warming&tags=environment,climate"

Pagination Strategies

Standard Pagination

# Page 1 (first 50 markets)
curl "https://api.data.adj.news/api/markets?limit=50&offset=0"

# Page 2 (next 50 markets)  
curl "https://api.data.adj.news/api/markets?limit=50&offset=50"

# Page 3 (next 50 markets)
curl "https://api.data.adj.news/api/markets?limit=50&offset=100"

Cursor-Based Pagination

For real-time applications, use timestamp-based pagination:

# Initial request
curl "https://api.data.adj.news/api/markets?sort=created_at:desc&limit=50"

# Next page using last item's timestamp
curl "https://api.data.adj.news/api/markets?created_before=2025-01-24T10:30:00Z&sort=created_at:desc&limit=50"

Use Cases & Applications

1. Market Discovery Dashboards

# Featured markets widget
curl "https://api.data.adj.news/api/markets?volume_min=25000&sort=volume:desc&limit=10"

# Trending markets (high recent activity)
curl "https://api.data.adj.news/api/markets?sort=updated_at:desc&limit=15"

# Ending soon section
curl "https://api.data.adj.news/api/markets?status=active&end_date_before=2025-02-07T00:00:00Z&sort=end_date:asc&limit=8"

2. Research & Analysis

# Dataset for political market analysis
curl "https://api.data.adj.news/api/markets?category=politics&created_after=2024-01-01&limit=1000" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Technology market trends
curl "https://api.data.adj.news/api/markets?category=technology&volume_min=5000&sort=created_at:desc&limit=500"

# Cross-platform comparison dataset
curl "https://api.data.adj.news/api/markets?q=artificial%20intelligence&platform=kalshi,polymarket,metaculus"

3. Trading Applications

# High-liquidity opportunities
curl "https://api.data.adj.news/api/markets?status=active&liquidity_min=10000&sort=liquidity:desc"

# Arbitrage opportunities (same events across platforms)
curl "https://api.data.adj.news/api/markets?q=Trump%202024&platform=kalshi,polymarket"

# Portfolio monitoring
curl "https://api.data.adj.news/api/markets?market_id=kalshi_EVENT1,polymarket_EVENT2,manifold_EVENT3"

4. Content Curation

# Weekly newsletter content
curl "https://api.data.adj.news/api/markets?created_after=2025-01-17T00:00:00Z&volume_min=5000&sort=volume:desc&limit=20"

# Category-specific feeds
curl "https://api.data.adj.news/api/markets?category=sports&status=active&end_date_after=2025-01-24T00:00:00Z"

# Community highlights
curl "https://api.data.adj.news/api/markets?comments_count_min=50&sort=comments_count:desc&limit=10"

Performance & Optimization

Response Time Guidelines

Typical Performance:

  • Simple queries: 50-200ms
  • Complex filtering: 200-500ms
  • Large datasets: 500ms-2s
  • Historical data: 1-3s (authenticated)

Optimization Strategies

  1. Use Appropriate Limits:

    # Good for UI components
    curl "https://api.data.adj.news/api/markets?limit=20"
    
    # Good for data analysis
    curl "https://api.data.adj.news/api/markets?limit=500"
    
  2. Leverage Sorting:

    # Pre-sorted data reduces client processing
    curl "https://api.data.adj.news/api/markets?sort=volume:desc&limit=100"
    
  3. Strategic Filtering:

    # Filter on indexed fields for better performance
    curl "https://api.data.adj.news/api/markets?platform=kalshi&status=active"
    

Caching Recommendations

// Example caching strategy
function getCacheKey(params) {
  const sorted = Object.keys(params).sort().reduce((result, key) => {
    result[key] = params[key];
    return result;
  }, {});
  return `markets:${JSON.stringify(sorted)}`;
}

// Cache duration based on query type
const getCacheDuration = (params) => {
  if (params.status === 'resolved') return 3600; // 1 hour for resolved
  if (params.sort === 'created_at:desc') return 300; // 5 min for recent
  return 600; // 10 min default
};

Error Handling & Troubleshooting

Common Issues

1. No Results Found

{
  "data": [],
  "meta": {
    "count": 0,
    "filters": {...},
    "suggestion": "Try removing some filters or broadening search terms"
  }
}

Solutions:

  • Remove restrictive filters one by one
  • Check for typos in filter values
  • Verify date formats are correct
  • Try broader search terms

2. Rate Limiting

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please try again later.",
    "details": {
      "reset_time": "2025-01-24T15:35:00Z",
      "limit": 300,
      "window": "60s"
    }
  }
}

Solutions:

  • Implement exponential backoff
  • Cache results to reduce API calls
  • Consider upgrading to authenticated access
  • Batch requests more efficiently

3. Invalid Parameters

{
  "error": {
    "code": "INVALID_PARAMETER",
    "message": "Invalid value for 'probability_min' parameter",
    "details": {
      "parameter": "probability_min",
      "value": "1.5",
      "valid_range": "0.0-1.0"
    }
  }
}

Solutions:

  • Check parameter value ranges
  • Verify date format (ISO 8601)
  • Ensure numeric parameters are numbers
  • Review API documentation for valid options

Authentication Requirements

Remember that enhanced access requires authentication:

# Unauthenticated (limited)
curl "https://api.data.adj.news/api/markets?limit=50"

# Authenticated (full access)
curl "https://api.data.adj.news/api/markets?limit=1000&created_after=2023-01-01" \
  -H "Authorization: Bearer YOUR_API_KEY"

Authentication Provides:

  • Access to historical data (>1 day old)
  • Higher rate limits (1000/min vs 300/min)
  • Larger result sets (>100 items)
  • Priority support

Best Practices

1. Efficient Querying

  • Start with broad queries, then narrow down
  • Use specific platforms when possible
  • Leverage sorting to reduce client-side processing
  • Cache frequently accessed data

2. Pagination Strategy

  • Use reasonable page sizes (20-100 items)
  • Implement “load more” for user interfaces
  • Consider cursor-based pagination for real-time data
  • Track pagination state in your application

3. Error Handling

  • Always handle rate limiting gracefully
  • Implement retry logic with exponential backoff
  • Provide fallback options for users
  • Log errors for monitoring and debugging

4. User Experience

  • Show loading states for slower queries
  • Implement search suggestions based on popular queries
  • Provide filter explanations in your UI
  • Cache and persist user preferences

Need Assistance? Contact our team at lucas@adj.news with:

  • Specific query patterns that aren’t performing well
  • Feature requests for additional filtering options
  • Integration questions or optimization guidance

Authorizations

Authorization
string
header
required

Enter your API key as the bearer token

Query Parameters

limit
integer
default:5

Number of results to return, default is 5 results

offset
integer
default:0

Number of results to skip

platform
string

Filter by platform (e.g., kalshi, polymarket, etc.)

status
string

Filter by status (e.g., active, resolved, etc.)

category
string

Filter by category

market_type
string

Filter by market type (e.g., binary, scalar, etc.)

keyword
string

Search in question, description, and rules

tag
string

Filter by tag

created_after
string

Filter markets created after this date

created_before
string

Filter markets created before this date

probability_min
number

Minimum probability

probability_max
number

Maximum probability

sort_by
enum<string>
default:updated_at

Field to sort by

Available options:
created_at,
updated_at,
end_date,
probability,
volume,
liquidity
sort_dir
enum<string>
default:desc

Sort direction

Available options:
asc,
desc
include_closed
boolean
default:false

Include closed markets

include_resolved
boolean
default:false

Include resolved markets

Response

200
application/json

List of markets

The response is of type object.

GET
/
api
/
markets
curl --request GET \
  --url https://api.data.adj.news/api/markets \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "market_id": "<string>",
      "platform_id": "<string>",
      "ticker": "<string>",
      "adj_ticker": "<string>",
      "market_slug": "<string>",
      "platform": "<string>",
      "market_type": "<string>",
      "question": "<string>",
      "description": "<string>",
      "rules": "<string>",
      "result": "<string>",
      "link": "<string>",
      "status": "<string>",
      "reported_date": "<string>",
      "created_at": "<string>",
      "updated_at": "<string>",
      "end_date": "<string>",
      "resolution_date": "<string>",
      "probability": 123,
      "volume": 123,
      "open_interest": 123,
      "liquidity": 123,
      "category": "<string>",
      "tags": [
        "<string>"
      ],
      "platform_ids": {},
      "status_details": {},
      "settlement_sources": [
        "<string>"
      ],
      "comments_count": 123,
      "has_comments": 123,
      "trades_count": 123,
      "event": "<string>"
    }
  ],
  "meta": {
    "count": 123,
    "limit": 123,
    "offset": 123,
    "hasMore": true
  }
}

Comprehensive Market Discovery & Filtering

This endpoint is your gateway to exploring prediction markets across multiple platforms with unprecedented flexibility and control. Whether you’re building market dashboards, conducting research, or developing trading applications, this endpoint provides powerful filtering, sorting, and pagination capabilities to help you find exactly the markets you need.

Key Features & Capabilities

🎯 Multi-Platform Access

Access markets from all major prediction market platforms:

  • Kalshi - Regulated US prediction markets
  • Polymarket - Crypto-based prediction markets
  • Manifold Markets - Community-driven forecasting
  • Metaculus - Research-focused forecasting platform

🔍 Advanced Filtering

Filter markets by virtually any attribute:

  • Platform & Type: Specific platforms, market types
  • Content: Keywords in questions, descriptions, rules
  • Status & Dates: Active, resolved, creation dates, end dates
  • Numerical Values: Probability ranges, volume thresholds, liquidity levels
  • Categories: Politics, economics, technology, sports, entertainment
  • Geography: Region-specific markets

📊 Flexible Sorting

Sort results by any field in ascending or descending order:

  • Recency: created_at, updated_at
  • Activity: volume, trades_count
  • Market Metrics: probability, liquidity, open_interest
  • Engagement: comments_count

📄 Smart Pagination

Efficient pagination with metadata for building interfaces:

  • Total count information
  • Pagination state tracking
  • “Has more” indicators
  • Configurable page sizes

Query Parameters Reference

Core Parameters

limit
integer
default:50

Maximum number of markets to return per request.

  • Range: 1-1000 (unauthenticated max: 100)
  • Default: 50
  • Tip: Use 10-20 for UI components, 100-500 for data analysis
offset
integer
default:0

Number of markets to skip (for pagination).

  • Usage: offset = page * limit
  • Example: Page 3 with 50 per page = offset=100
sort
string
default:"created_at:desc"

Sort order for results.

Format: field:direction

Popular Sort Options:

  • created_at:desc - Newest first (default)
  • updated_at:desc - Recently updated
  • volume:desc - Highest volume
  • probability:desc - Highest probability
  • end_date:asc - Ending soonest
  • liquidity:desc - Most liquid

Platform & Type Filters

platform
string

Filter by specific platforms.

Supported Values:

  • kalshi - Kalshi markets
  • polymarket - Polymarket
  • manifold - Manifold Markets
  • metaculus - Metaculus

Format: "kalshi,polymarket" for multiple platforms

market_type
string

Filter by market type.

Common Types:

  • binary - Yes/No markets
  • multiple_choice - Multiple outcome markets
  • numerical - Numerical prediction markets
  • conditional - Conditional prediction markets

Status & Date Filters

status
string

Filter by market status.

Status Values:

  • active - Currently active for trading
  • resolved - Market has been resolved
  • closed - Closed but not yet resolved
  • suspended - Temporarily suspended
  • cancelled - Cancelled market
created_after
string

Include markets created after this date.

Format: ISO 8601 date string (2024-01-01T00:00:00Z) Example: created_after=2024-01-01 for markets from 2024

created_before
string

Include markets created before this date.

Format: ISO 8601 date string Use Case: Historical analysis, specific time periods

end_date_after
string

Include markets ending after this date.

Format: ISO 8601 date string Use Case: Find markets ending in a specific timeframe

end_date_before
string

Include markets ending before this date.

Format: ISO 8601 date string Use Case: Find markets ending soon or in the past

Content Search Filters

q
string

Search within market questions, descriptions, and rules.

Search Capabilities:

  • Full-text search across all market content
  • Supports partial matches and stemming
  • Case-insensitive search

Examples:

  • q=presidential election - Find election-related markets
  • q=climate change - Environmental markets
  • q=AI artificial intelligence - Technology markets
question_contains
string

Search specifically within market questions.

Use Case: More targeted search than general q parameter Example: question_contains=Will Trump for specific question patterns

Numerical Filters

probability_min
number

Minimum probability (0.0 to 1.0).

Example: probability_min=0.7 for high-probability markets Use Case: Find markets with strong conviction

probability_max
number

Maximum probability (0.0 to 1.0).

Example: probability_max=0.3 for low-probability markets Use Case: Find contrarian opportunities

volume_min
number

Minimum trading volume.

Use Case: Filter for liquid, actively traded markets Example: volume_min=10000 for markets with significant activity

liquidity_min
number

Minimum liquidity/open interest.

Use Case: Ensure markets have sufficient depth for trading Example: liquidity_min=5000 for well-funded markets

Category & Tag Filters

category
string

Filter by market category.

Common Categories:

  • politics - Political events and elections
  • economics - Economic indicators and markets
  • technology - Tech developments and innovation
  • sports - Sports outcomes and championships
  • entertainment - Media, celebrity, and cultural events
  • science - Scientific developments and discoveries
  • weather - Weather and climate predictions
tags
string

Filter by market tags.

Format: Comma-separated list of tags Example: tags=election,politics,2024 for 2024 election markets

Response Format

Successful Response Structure

{
  "data": [
    {
      "market_id": "kalshi_KXSECPRESSMENTION-25JUN30-HOAX",
      "platform": "kalshi",
      "platform_id": "KXSECPRESSMENTION-25JUN30-HOAX",
      "adj_ticker": "HOAX-MENTION-JUNE-2025",
      "question": "Will the White House Press Secretary say 'Hoax' at her next press briefing?",
      "description": "This market resolves to 'Yes' if the White House Press Secretary uses the word 'hoax' during any official press briefing...",
      "rules": "Market resolves based on official White House press briefing transcripts...",
      "status": "active",
      "market_type": "binary",
      "category": "politics",
      "probability": 0.23,
      "volume": 45000,
      "liquidity": 8500,
      "open_interest": 12000,
      "trades_count": 156,
      "comments_count": 89,
      "created_at": "2025-01-15T10:30:00Z",
      "updated_at": "2025-01-24T14:22:00Z",
      "end_date": "2025-06-30T23:59:59Z",
      "resolution_date": null,
      "link": "https://kalshi.com/events/KXSECPRESSMENTION-25JUN30-HOAX",
      "tags": ["politics", "white-house", "press-briefing", "communication"],
      "event": "White House Communications",
      "settlement_sources": ["whitehouse.gov", "c-span.org"]
    }
    // ... more markets
  ],
  "meta": {
    "count": 1247,        // Total matching markets
    "limit": 50,          // Requested limit  
    "offset": 0,          // Current offset
    "hasMore": true,      // Whether more results exist
    "page": 1,            // Current page (calculated)
    "totalPages": 25,     // Total pages (calculated) 
    "filters": {          // Applied filters summary
      "status": "active",
      "platform": ["kalshi", "polymarket"],
      "category": "politics"
    },
    "sort": "created_at:desc"
  }
}

Field Descriptions

FieldTypeDescription
market_idstringUnique identifier across all platforms
platformstringSource platform (kalshi, polymarket, etc.)
platform_idstringPlatform-specific identifier
adj_tickerstringAdjacent News standardized ticker
questionstringMarket question or title
descriptionstringDetailed market description
rulesstringResolution rules and conditions
statusstringCurrent market status
market_typestringType of market (binary, multiple_choice, etc.)
categorystringMarket category
probabilitynumberCurrent probability (0.0-1.0)
volumenumberTotal trading volume
liquiditynumberCurrent liquidity/open interest
trades_countintegerNumber of trades
comments_countintegerNumber of comments
created_atstringMarket creation timestamp
updated_atstringLast update timestamp
end_datestringMarket end/close date
resolution_datestringActual resolution date (if resolved)
linkstringDirect link to market on platform
tagsarrayAssociated tags
eventstringParent event (if applicable)

Comprehensive Examples

Basic Market Discovery

# Get 20 most recent active markets
curl "https://api.data.adj.news/api/markets?status=active&limit=20&sort=created_at:desc"

# Browse markets by category
curl "https://api.data.adj.news/api/markets?category=politics&limit=25"

# Find high-volume markets
curl "https://api.data.adj.news/api/markets?volume_min=50000&sort=volume:desc"

Platform-Specific Queries

# Get all Kalshi markets
curl "https://api.data.adj.news/api/markets?platform=kalshi"

# Compare markets across platforms
curl "https://api.data.adj.news/api/markets?platform=kalshi,polymarket&q=presidential%20election"

# Manifold Markets community predictions
curl "https://api.data.adj.news/api/markets?platform=manifold&sort=comments_count:desc"

Time-Based Filtering

# Markets created in the last 7 days
curl "https://api.data.adj.news/api/markets?created_after=2025-01-17T00:00:00Z"

# Markets ending in the next 30 days
curl "https://api.data.adj.news/api/markets?end_date_after=2025-01-24T00:00:00Z&end_date_before=2025-02-24T00:00:00Z"

# Historical markets from 2024
curl "https://api.data.adj.news/api/markets?created_after=2024-01-01&created_before=2024-12-31" \
  -H "Authorization: Bearer YOUR_API_KEY"

Advanced Filtering Combinations

# High-conviction political markets
curl "https://api.data.adj.news/api/markets?category=politics&probability_min=0.8&volume_min=10000"

# Low-probability opportunities with good liquidity
curl "https://api.data.adj.news/api/markets?probability_max=0.2&liquidity_min=5000&status=active"

# Technology markets ending soon
curl "https://api.data.adj.news/api/markets?category=technology&end_date_before=2025-02-01T00:00:00Z&status=active"
# Search for election-related markets
curl "https://api.data.adj.news/api/markets?q=presidential%20election%202024"

# Find AI and technology markets
curl "https://api.data.adj.news/api/markets?question_contains=artificial%20intelligence&category=technology"

# Climate change predictions
curl "https://api.data.adj.news/api/markets?q=climate%20change%20global%20warming&tags=environment,climate"

Pagination Strategies

Standard Pagination

# Page 1 (first 50 markets)
curl "https://api.data.adj.news/api/markets?limit=50&offset=0"

# Page 2 (next 50 markets)  
curl "https://api.data.adj.news/api/markets?limit=50&offset=50"

# Page 3 (next 50 markets)
curl "https://api.data.adj.news/api/markets?limit=50&offset=100"

Cursor-Based Pagination

For real-time applications, use timestamp-based pagination:

# Initial request
curl "https://api.data.adj.news/api/markets?sort=created_at:desc&limit=50"

# Next page using last item's timestamp
curl "https://api.data.adj.news/api/markets?created_before=2025-01-24T10:30:00Z&sort=created_at:desc&limit=50"

Use Cases & Applications

1. Market Discovery Dashboards

# Featured markets widget
curl "https://api.data.adj.news/api/markets?volume_min=25000&sort=volume:desc&limit=10"

# Trending markets (high recent activity)
curl "https://api.data.adj.news/api/markets?sort=updated_at:desc&limit=15"

# Ending soon section
curl "https://api.data.adj.news/api/markets?status=active&end_date_before=2025-02-07T00:00:00Z&sort=end_date:asc&limit=8"

2. Research & Analysis

# Dataset for political market analysis
curl "https://api.data.adj.news/api/markets?category=politics&created_after=2024-01-01&limit=1000" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Technology market trends
curl "https://api.data.adj.news/api/markets?category=technology&volume_min=5000&sort=created_at:desc&limit=500"

# Cross-platform comparison dataset
curl "https://api.data.adj.news/api/markets?q=artificial%20intelligence&platform=kalshi,polymarket,metaculus"

3. Trading Applications

# High-liquidity opportunities
curl "https://api.data.adj.news/api/markets?status=active&liquidity_min=10000&sort=liquidity:desc"

# Arbitrage opportunities (same events across platforms)
curl "https://api.data.adj.news/api/markets?q=Trump%202024&platform=kalshi,polymarket"

# Portfolio monitoring
curl "https://api.data.adj.news/api/markets?market_id=kalshi_EVENT1,polymarket_EVENT2,manifold_EVENT3"

4. Content Curation

# Weekly newsletter content
curl "https://api.data.adj.news/api/markets?created_after=2025-01-17T00:00:00Z&volume_min=5000&sort=volume:desc&limit=20"

# Category-specific feeds
curl "https://api.data.adj.news/api/markets?category=sports&status=active&end_date_after=2025-01-24T00:00:00Z"

# Community highlights
curl "https://api.data.adj.news/api/markets?comments_count_min=50&sort=comments_count:desc&limit=10"

Performance & Optimization

Response Time Guidelines

Typical Performance:

  • Simple queries: 50-200ms
  • Complex filtering: 200-500ms
  • Large datasets: 500ms-2s
  • Historical data: 1-3s (authenticated)

Optimization Strategies

  1. Use Appropriate Limits:

    # Good for UI components
    curl "https://api.data.adj.news/api/markets?limit=20"
    
    # Good for data analysis
    curl "https://api.data.adj.news/api/markets?limit=500"
    
  2. Leverage Sorting:

    # Pre-sorted data reduces client processing
    curl "https://api.data.adj.news/api/markets?sort=volume:desc&limit=100"
    
  3. Strategic Filtering:

    # Filter on indexed fields for better performance
    curl "https://api.data.adj.news/api/markets?platform=kalshi&status=active"
    

Caching Recommendations

// Example caching strategy
function getCacheKey(params) {
  const sorted = Object.keys(params).sort().reduce((result, key) => {
    result[key] = params[key];
    return result;
  }, {});
  return `markets:${JSON.stringify(sorted)}`;
}

// Cache duration based on query type
const getCacheDuration = (params) => {
  if (params.status === 'resolved') return 3600; // 1 hour for resolved
  if (params.sort === 'created_at:desc') return 300; // 5 min for recent
  return 600; // 10 min default
};

Error Handling & Troubleshooting

Common Issues

1. No Results Found

{
  "data": [],
  "meta": {
    "count": 0,
    "filters": {...},
    "suggestion": "Try removing some filters or broadening search terms"
  }
}

Solutions:

  • Remove restrictive filters one by one
  • Check for typos in filter values
  • Verify date formats are correct
  • Try broader search terms

2. Rate Limiting

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please try again later.",
    "details": {
      "reset_time": "2025-01-24T15:35:00Z",
      "limit": 300,
      "window": "60s"
    }
  }
}

Solutions:

  • Implement exponential backoff
  • Cache results to reduce API calls
  • Consider upgrading to authenticated access
  • Batch requests more efficiently

3. Invalid Parameters

{
  "error": {
    "code": "INVALID_PARAMETER",
    "message": "Invalid value for 'probability_min' parameter",
    "details": {
      "parameter": "probability_min",
      "value": "1.5",
      "valid_range": "0.0-1.0"
    }
  }
}

Solutions:

  • Check parameter value ranges
  • Verify date format (ISO 8601)
  • Ensure numeric parameters are numbers
  • Review API documentation for valid options

Authentication Requirements

Remember that enhanced access requires authentication:

# Unauthenticated (limited)
curl "https://api.data.adj.news/api/markets?limit=50"

# Authenticated (full access)
curl "https://api.data.adj.news/api/markets?limit=1000&created_after=2023-01-01" \
  -H "Authorization: Bearer YOUR_API_KEY"

Authentication Provides:

  • Access to historical data (>1 day old)
  • Higher rate limits (1000/min vs 300/min)
  • Larger result sets (>100 items)
  • Priority support

Best Practices

1. Efficient Querying

  • Start with broad queries, then narrow down
  • Use specific platforms when possible
  • Leverage sorting to reduce client-side processing
  • Cache frequently accessed data

2. Pagination Strategy

  • Use reasonable page sizes (20-100 items)
  • Implement “load more” for user interfaces
  • Consider cursor-based pagination for real-time data
  • Track pagination state in your application

3. Error Handling

  • Always handle rate limiting gracefully
  • Implement retry logic with exponential backoff
  • Provide fallback options for users
  • Log errors for monitoring and debugging

4. User Experience

  • Show loading states for slower queries
  • Implement search suggestions based on popular queries
  • Provide filter explanations in your UI
  • Cache and persist user preferences

Need Assistance? Contact our team at lucas@adj.news with:

  • Specific query patterns that aren’t performing well
  • Feature requests for additional filtering options
  • Integration questions or optimization guidance

Authorizations

Authorization
string
header
required

Enter your API key as the bearer token

Query Parameters

limit
integer
default:5

Number of results to return, default is 5 results

offset
integer
default:0

Number of results to skip

platform
string

Filter by platform (e.g., kalshi, polymarket, etc.)

status
string

Filter by status (e.g., active, resolved, etc.)

category
string

Filter by category

market_type
string

Filter by market type (e.g., binary, scalar, etc.)

keyword
string

Search in question, description, and rules

tag
string

Filter by tag

created_after
string

Filter markets created after this date

created_before
string

Filter markets created before this date

probability_min
number

Minimum probability

probability_max
number

Maximum probability

sort_by
enum<string>
default:updated_at

Field to sort by

Available options:
created_at,
updated_at,
end_date,
probability,
volume,
liquidity
sort_dir
enum<string>
default:desc

Sort direction

Available options:
asc,
desc
include_closed
boolean
default:false

Include closed markets

include_resolved
boolean
default:false

Include resolved markets

Response

200
application/json

List of markets

The response is of type object.