{
 "title": "StockQL \u2014 your own worldwide stock database",
 "description": "StockQL is a self-hosted, error-checked end-of-day stock market database covering 70+ exchanges. Runs in Docker on your machine with your own data-provider keys.",
 "url": "https://stockql.ai/",
 "slug": "index",
 "published": null,
 "site": "StockQL",
 "contact": "hello@stockql.ai",
 "body_text": "Self-hosted market data \u00b7 Launching soon\n\nBacktest the market that actually existed.\n\nStockQL turns EODHD and FMP feeds into a continuously checked, survivorship-bias-aware PostgreSQL database on your own machine \u2014 so you spend research cycles testing ideas, not repairing vendor data.\n\nGet launch pricing\nOne email when StockQL ships, with waitlist-only launch pricing. No spam, unsubscribe anytime.\n\nEvery backtest starts with a data-cleaning detour\n\nIf you've done systematic research on retail-grade data, you already know the failure modes \u2014 because you've lost weeks to them:\n\nSurvivorship bias\nSymbols vanish from vendor feeds when they delist. Your backtest quietly becomes a study of companies that happened to survive.\n\nPartial snapshots\nBulk end-of-day files fetched too early are silently incomplete \u2014 hundreds of symbols missing, no completeness flag, filled in hours later.\n\nCalendar chaos\nZero-volume placeholder rows on market holidays, exchanges mislabeled by the vendor's own metadata, venues that don't trade Monday\u2013Friday.\n\nRented access\nAPI-only vendors meter every query. Your research iterates at the speed of a rate limit, and your history disappears when you stop paying.\n\nWhat StockQL gives you instead\n\nA real database, not an API. Plain PostgreSQL, documented schema, unlimited local queries. Join prices against fundamentals at 2am without watching a quota.\n\nWorldwide coverage. End-of-day prices for 70+ exchanges plus indices and commodities, with corporate-action-coherent adjusted series.\n\nDelisted symbols stay. Symbols that die remain in your database with their full history. Backtests see the market as it was, not as it ended up.\n\nContinuously error-checked. Automated coherence machinery \u2014 trading-calendar validation, completeness re-passes, cross-provider liveness checks \u2014 runs with every ingest. See how it works \u2192\n\nYours to keep. One-time license, runs in Docker on your hardware with your own EODHD and FMP keys. No lock-in \u2014 it's your Postgres instance; take the data anywhere.\n\nUp and running in an afternoon\n\nRun the container. docker compose up on any Linux, macOS, or Windows machine with Docker.\n\nAdd your keys. Bring your own EODHD and FMP API keys \u2014 you pay the data providers directly, at their prices, with no markup from us.\n\nBackfill. StockQL pulls full history for the exchanges you choose, validating as it goes.\n\nStay current. The built-in scheduler ingests each trading day after the close, re-checks recent days for late data, and flags anything incoherent instead of silently storing it.\n\nBuilt for the agent era\n\nClaude Code, Codex, and every other coding agent already speak fluent SQL \u2014 what they can't do is untangle a vendor SDK, a notebook platform, and a deployment matrix standing between them and the data. StockQL removes the middle entirely:\n\nA schema is the best prompt\nHand your agent the documented schema and a Postgres connection string, ask your question in English, and let it write the SQL. No API wrapper for it to hallucinate.\n\nNo platform in the middle\nNo bundled Jupyter, no add-on catalog, no proprietary research environment to learn \u2014 or to teach your agent. A database, and whatever tools you already use on top.\n\nThis isn't a mockup \u2014 it's a real run against a live StockQL database. One English prompt became a tested, saved point-in-time scan: the agent wrote the SQL, kept it with the scan, and reran it in 973\u2009ms over 146 matches. Shown in StockQL Connect, the optional desktop workspace included with the license \u2014 the same query works from psql, a notebook, or your own agent. Full-size results \u00b7 the generated SQL\n\nBuilt by people who run it every day\n\nStockQL isn't a data product designed on a whiteboard. It's the production system behind our own research database \u2014 tens of thousands of symbols ingested daily across 72 exchange calendars \u2014 packaged so you can run it too. Every validator in the product exists because the raw feeds burned us without it. More about us \u2192\n\nCommon questions\n\nIs StockQL a data provider?\n\nNo \u2014 and that's the point. The data comes from providers you contract with directly, under their retail terms. StockQL is the machinery that turns their feeds into one coherent, validated, queryable database. We never touch, resell, or redistribute market data.\n\nWhy bring my own API keys?\n\nRedistribution licensing is what makes market data expensive. By fetching with your own keys, you pay providers their retail price and pay us once for the machinery \u2014 instead of paying a reseller's marked-up subscription forever.\n\nWhat does the data cost me, roughly?\n\nAn EODHD \"EOD Historical Data \u2014 All World\" plan runs about $20/month; FMP has a free tier that covers the cross-checks. StockQL itself is a one-time purchase.\n\nIs my data locked into StockQL?\n\nNo. It's a standard PostgreSQL database with a documented schema. pg_dump works. Every tool that speaks SQL works.\n\nWhat about intraday data?\n\nStockQL is end-of-day by design \u2014 the right resolution for portfolio-level systematic research. Intraday may come later; it isn't in the launch scope.\n\nWhen does it launch?\n\nWe're finishing the packaging now. Join the waitlist and you'll get one email on launch day, with launch pricing that won't be repeated.\n\nOwn your data before your next research cycle\n\nJoin the waitlist"
}
