GET
/
fee-schedule-results
List fee schedule results
curl --request GET \
  --url https://api.rulebook.company/api/v1/fee-schedule-results/ \
  --header 'x-rulebook-api-access-key: <api-key>'
{
  "message": "You are not authorized to perform this action. Invalid API key.",
  "data": [],
  "query_time": null,
  "success": false,
  "disable_jsonable_encoder": false,
  "status_code": 401
}

Overview

Returns a paginated list of fee schedule results with comprehensive filtering. Each result represents a single fee or rebate line item extracted from an exchange’s fee schedule document. Results are automatically scoped to exchanges associated with your API key.
Authorization Required - Include your API key in the x-rulebook-api-access-key header. Contact sales@rulebook.company to obtain access.
Use Get Available Filters or Get Exchange Details to discover valid filter values before querying.

Query Parameters

Filters

All filter parameters accept multiple values using repeated query parameters (e.g., ?exchange_name=Nasdaq&exchange_name=fee_cboe_us_options). Multiple values are combined with OR logic.
exchange_name
string[]
Filter by exchange identifier(s) — use values from the exchange_names field returned by Get Available FiltersExample: ?exchange_name=fee_cboe_us_options&exchange_name=Nasdaq
fee_type
string[]
Filter by fee type(s) - Option — Options trading fees - Equity — Equity trading fees
fee_category
string[]
Filter by fee category(s) - Fee And Rebates - Legal Regulatory Fees - Market Data Fees - Participant Fee - Port Fees And Other Services
fee_action
string[]
Filter by trading action(s) - Make — Liquidity providing - Take — Liquidity removing - Open — Opening transactions - Routed — Routed orders
  • Other — Other actions
fee_participant
string[]
Filter by participant type(s) - Customer, Firm, Broker Dealer, Market Maker, Away Market Maker, Professional, Other, All
fee_symbol_classification
string[]
Filter by symbol classification(s) - ETF, ETN, Equity, Index, N/A, All
fee_symbol_type
string[]
Filter by symbol type(s) - Penny, Non Penny, N/A, Both
fee_trade_type
string[]
Filter by trade type(s) - Index Options, Multiply Traded Options, Simple Order, Complex Order

Date Range

start_date
string
Filter results scraped on or after this date (format: YYYY-MM-DD)
end_date
string
Filter results scraped on or before this date (format: YYYY-MM-DD)

Versioning

latest_only
boolean
default:"false"
When true, returns only the most recent version per unique (supplier, fee_type) combination. Use this to get only the current fee data without historical versions.

Sorting

order_by
string
default:"created_on"
Field to sort by: created_on, scraped_time, supplier_name, fee_type, fee_category
order_dir
string
default:"desc"
Sort direction: asc or desc

Pagination

page_size
integer
default:"20"
Records per page (1–100)
page_number
integer
default:"0"
Page number (0-indexed)

Request Examples

Basic request — latest Nasdaq options fees:
curl -X GET "https://api.rulebook.company/api/v1/fee-schedule-results?exchange_name=fee_cboe_us_options&fee_type=Option&latest_only=true" \
  -H "x-rulebook-api-access-key: YOUR_API_KEY"
Multi-exchange Market Maker Make fees:
curl -X GET "https://api.rulebook.company/api/v1/fee-schedule-results?exchange_name=NYSE&exchange_name=fee_cboe_us_options&fee_action=Make&fee_participant=Market%20Maker&latest_only=true&page_size=50" \
  -H "x-rulebook-api-access-key: YOUR_API_KEY"
Penny ETF fees scraped in 2025:
curl -X GET "http://localhost:8000/api/v1/fee-schedule-results/?fee_symbol_classification=ETF&fee_symbol_type=Penny&start_date=2025-01-01&end_date=2025-12-31" \
  -H "x-rulebook-api-access-key: YOUR_API_KEY"

Response

success
boolean
Whether the request was successful
message
string
Human-readable status message
data
array
Array of fee schedule result objects
total_records
integer
Total records matching the filter criteria (across all pages)
page_size
integer
Records per page
total_pages
integer
Total number of pages
current_page
integer
Current page number (0-indexed)
query_time
number
Query execution time in seconds

Example Response

{
  "message": "Operation completed successfully.",
  "data": [
    {
      "id": "0a34cf73-e89e-45ef-b6bc-2614d4975363",
      "exchange_name": "Nasdaq",
      "fee_type": "OPTION",
      "fee_category": "Fees And Rebates",
      "fee_charge_type": "Rebate to Add Liquidity in Non-Penny Symbols",
      "fee_amount": "($0.10)",
      "fee_action": "Make",
      "fee_action_details": null,
      "fee_basis": null,
      "fee_notes": null,
      "fee_reference": "12",
      "fee_participant": "Customer",
      "fee_participant_details": null,
      "fee_monthly_volume": "Tiers 2, 3, 4, or 5",
      "fee_monthly_volume_criteria": "Qualifies for Customer or Professional Penny Symbol Rebate to Add Liquidity Tiers 2, 3, 4, or 5 in a month",
      "fee_symbol_classification": "All",
      "fee_symbol_type": "Non Penny",
      "fee_trade_type": null,
      "fee_symbol": "All",
      "fee_excluded_symbols": null,
      "fee_conditions": "A Participant that qualifies for Customer or Professional Penny Symbol Rebate to Add Liquidity Tiers 2, 3, 4, or 5 in a month",
      "fee_exclusions": null,
      "fee_extra_info": null,
      "version_id": "3996c6d1-4b89-4d1d-8abb-a8fd485c224d",
      "scraped_time": "2026-02-16T07:03:33.109403+00:00",
      "created_on": "2026-02-18T08:28:53.411953"
    }
  ],
  "query_time": 0.569,
  "success": true,
  "disable_jsonable_encoder": false,
  "total_records": 389,
  "page_size": 1,
  "total_pages": 389,
  "current_page": 0
}

Pagination

1

Make your first request

The response includes total_records and total_pages so you know the full dataset size.
2

Iterate through pages

Increment page_number from 0 to total_pages - 1:
  • Page 1: ?page_number=0&page_size=50
  • Page 2: ?page_number=1&page_size=50
  • Page 3: ?page_number=2&page_size=50

Error Responses

{
  "message": "You are not authorized to perform this action. Invalid API key.",
  "data": [],
  "query_time": null,
  "success": false,
  "disable_jsonable_encoder": false,
  "status_code": 401
}

Authorizations

x-rulebook-api-access-key
string
header
required

API access key provided by Rulebook Company. Contact sales@rulebook.company to obtain one.

Query Parameters

supplier_name
string[]

Filter by exchange name(s). Repeat for multiple: ?supplier_name=CBOE&supplier_name=NYSE

fee_type
string[]

Filter by fee type(s): Option, Equity

fee_category
string[]

Filter by fee category(s)

fee_action
enum<string>[]

Filter by trading action(s)

Available options:
Make,
Take,
Open,
Routed,
Other
fee_participant
enum<string>[]

Filter by participant type(s)

Available options:
Customer,
Firm,
Broker Dealer,
Market Maker,
Away Market Maker,
Professional,
Other,
All
fee_symbol_classification
enum<string>[]

Filter by symbol classification(s)

Available options:
ETF,
ETN,
Equity,
Index,
N/A,
All
fee_symbol_type
enum<string>[]

Filter by symbol type(s)

Available options:
Penny,
Non Penny,
N/A,
Both
fee_trade_type
enum<string>[]

Filter by trade type(s)

Available options:
Index Options,
Multiply Traded Options,
Simple Order,
Complex Order
start_date
string<date>

Filter results scraped on or after this date (YYYY-MM-DD)

end_date
string<date>

Filter results scraped on or before this date (YYYY-MM-DD)

latest_only
boolean
default:false

When true, returns only the latest version per unique (supplier, fee_type) combination. Useful for getting only current fee data.

order_by
enum<string>
default:created_on

Field to sort results by

Available options:
created_on,
scraped_time,
supplier_name,
fee_type,
fee_category
order_dir
enum<string>
default:desc

Sort direction

Available options:
asc,
desc
page_size
integer
default:20

Number of records per page (1-100)

Required range: 1 <= x <= 100
page_number
integer
default:0

Page number (0-indexed)

Required range: x >= 0

Response

Paginated fee schedule results

success
boolean
Example:

true

message
string
Example:

"Operation completed successfully."

data
object[]
total_records
integer

Total matching records across all pages

Example:

500

page_size
integer

Records per page

Example:

20

total_pages
integer

Total number of pages

Example:

25

current_page
integer

Current page (0-indexed)

Example:

0

query_time
number

Query execution time in seconds

Example:

0.123