> ## Documentation Index
> Fetch the complete documentation index at: https://docs.delphimarkets.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Download Dataset by Date

> Download RFQ or MVE trades data for a specific date as presigned S3 URLs. Returns a finalized daily Parquet file if the day is complete, or live hourly JSONL parts if the day is still in progress.

Requires a Max or Admin plan.

## What you get

- Presigned S3 download URLs (valid for 5 minutes)
- Automatic detection of finalized vs live data
- Full daily Parquet file for completed days
- Hourly JSONL parts for the current day

## Use cases

- Bulk download historical data for backtesting
- Build local analytics pipelines
- Feed data into Pandas, Polars, or DuckDB
- Stream today's data hour-by-hour for near-real-time analytics

## Datasets

- rfq: Kalshi Request for Quote events (same schema as the /klsi/{id}/rfq endpoint)
- mve_trades: Kalshi Multi-Value Event parlay trades (same schema as the /klsi/{id}/mve_trades endpoint)

## Example

- Request: `GET /api/v1/data/rfq?date=2026-02-25`
- Header: `X-API-Key: YOUR_API_KEY`



## OpenAPI

````yaml /openapi-parlays.json get /api/v1/data/{dataset}
openapi: 3.0.3
info:
  title: Delphi Markets Parlays API
  description: >-
    Kalshi RFQ (Request for Quote) and MVE (Multi-Value Event) parlay trade
    data, plus bulk data export endpoints.
  version: 1.0.0
  contact:
    name: Delphi Markets
    url: https://delphimarkets.com
servers:
  - url: https://api.delphiterminal.co
    description: Delphi Markets API
security:
  - ApiKeyAuth: []
tags:
  - name: Parlays
    description: >-
      Kalshi RFQ (Request for Quote) and MVE (Multi-Value Event) parlay trade
      data. Includes individual RFQ lookups, parlay trade history, and bulk data
      export in Parquet/JSONL format.
paths:
  /api/v1/data/{dataset}:
    get:
      tags:
        - Parlays
      summary: Download Dataset by Date
      description: >-
        Download RFQ or MVE trades data for a specific date as presigned S3
        URLs. Returns a finalized daily Parquet file if the day is complete, or
        live hourly JSONL parts if the day is still in progress.


        Requires a Max or Admin plan.


        ## What you get


        - Presigned S3 download URLs (valid for 5 minutes)

        - Automatic detection of finalized vs live data

        - Full daily Parquet file for completed days

        - Hourly JSONL parts for the current day


        ## Use cases


        - Bulk download historical data for backtesting

        - Build local analytics pipelines

        - Feed data into Pandas, Polars, or DuckDB

        - Stream today's data hour-by-hour for near-real-time analytics


        ## Datasets


        - rfq: Kalshi Request for Quote events (same schema as the
        /klsi/{id}/rfq endpoint)

        - mve_trades: Kalshi Multi-Value Event parlay trades (same schema as the
        /klsi/{id}/mve_trades endpoint)


        ## Example


        - Request: `GET /api/v1/data/rfq?date=2026-02-25`

        - Header: `X-API-Key: YOUR_API_KEY`
      parameters:
        - name: dataset
          in: path
          required: true
          schema:
            type: string
            enum:
              - rfq
              - mve_trades
          description: Dataset to download
          example: rfq
        - name: date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Date in YYYY-MM-DD format. Defaults to today (UTC).
          example: '2026-02-25'
        - name: hour
          in: query
          required: false
          schema:
            type: string
          description: >-
            Hour filter (00-23). Only applies to live (non-finalized) days.
            Returns only parts for that specific hour.
          example: '14'
      responses:
        '200':
          description: Data export with presigned download URLs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataExportResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          description: Forbidden - requires Max or Admin plan
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    DataExportResponse:
      type: object
      description: >-
        Response containing presigned S3 download URLs for a dataset export. The
        status field indicates whether this is a finalized daily Parquet or live
        hourly JSONL parts.
      properties:
        dataset:
          type: string
          description: Dataset name (rfq or mve_trades)
          example: rfq
        date:
          type: string
          format: date
          description: Date of the data (YYYY-MM-DD)
          example: '2026-02-25'
        status:
          type: string
          enum:
            - final
            - live
          description: >-
            Whether the data is finalized (full daily Parquet) or live (hourly
            JSONL parts)
        format:
          type: string
          enum:
            - parquet
            - jsonl.gz
          description: File format of the downloadable parts
        hour:
          type: string
          description: Hour filter applied (only present when filtering live data by hour)
          example: '14'
        parts:
          type: array
          items:
            $ref: '#/components/schemas/DataExportPart'
          description: List of downloadable file parts with presigned URLs
    DataExportPart:
      type: object
      description: A single downloadable file part with a presigned S3 URL.
      properties:
        key:
          type: string
          description: S3 object key
          example: parquet_exports/rfq/dt=2026-02-25/daily.parquet
        url:
          type: string
          description: Presigned download URL (valid for 5 minutes)
        size_bytes:
          type: integer
          description: File size in bytes
        last_modified:
          type: string
          format: date-time
          description: Last modified timestamp
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: 7c883300-dac6-45b5-8d4b-ec6633419325
    NotFound:
      description: Not found
      content:
        application/json:
          schema:
            $ref: 7c883300-dac6-45b5-8d4b-ec6633419325
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your API key (get one from the test-key endpoint above)

````