- GET /v1/quote returns symbol, bid, ask, spread, spread_pips and timestamp only. Every other response field is removed, and every other query parameter is ignored.
- GET /v1/indicator no longer accepts a source parameter.
- Economic calendar id and series_id values are now opaque 16-character keys. Each changes value once.
- GET /v1/symbols/{symbol} no longer returns contract_size, min_volume, max_volume, volume_step, swap_long, swap_short, margin_currency or trading_hours.
- GET /v1/symbols search matches canonical symbol names only.
- Symbols are answered by their canonical name only, for example EURUSD. Any other name gets the answer an unknown symbol gets.
- Screener results and Market Insights cards carry canonical symbol names.
- server_time on GET /v1/indicator and /demo/indicator, and the timestamp of POST /v1/quotes, are ISO-8601 UTC, for example 2024-03-27T14:00:00+00:00, instead of dotted date strings.
- The playground on each indicator API reference page shows the documented example response, labelled as illustrative values, instead of generated numbers.
- The indicator API reference pages show the response with its success and data envelope, as the API returns it.
- Each indicator API reference page shows the example value its learn page shows, with updated_at and server_time at the same instant.
- POST /v1/quotes returns an empty data.timestamp, instead of the time of the response, when the time of the latest data update is not available.
- The polling example on the real-time data page detects new quotes from each quote's own timestamp.
See exactly what changed.
Follow every TickAtlas release in one place. New endpoints, platform features, security hardening, documentation work and breaking changes are organized chronologically and searchable by version or capability.
18 Jul 13 Jun 23 May 25 Apr 21 Feb 15 Jan v3.26 — API changes: quotes, calendar ids, symbols
GET /v1/quote returns symbol, bid, ask, spread, spread_pips and timestamp only. Every other response field is removed, and every other query parameter is ignored.
GET /v1/indicator no longer accepts a source parameter.
Economic calendar id and series_id values are now opaque 16-character keys. Each changes value once.
GET /v1/symbols/{symbol} no longer returns contract_size, min_volume, max_volume, volume_step, swap_long, swap_short, margin_currency or trading_hours.
GET /v1/symbols search matches canonical symbol names only.
Symbols are answered by their canonical name only, for example EURUSD. Any other name gets the answer an unknown symbol gets.
Screener results and Market Insights cards carry canonical symbol names.
server_time on GET /v1/indicator and /demo/indicator, and the timestamp of POST /v1/quotes, are ISO-8601 UTC, for example 2024-03-27T14:00:00+00:00, instead of dotted date strings.
The playground on each indicator API reference page shows the documented example response, labelled as illustrative values, instead of generated numbers.
The indicator API reference pages show the response with its success and data envelope, as the API returns it.
Each indicator API reference page shows the example value its learn page shows, with updated_at and server_time at the same instant.
POST /v1/quotes returns an empty data.timestamp, instead of the time of the response, when the time of the latest data update is not available.
The polling example on the real-time data page detects new quotes from each quote's own timestamp.
Filter by the kind of change you care about.
Search versions, endpoints or product capabilities, then narrow the timeline to features, improvements, security work or documentation changes.
API changes: quotes, calendar ids, symbols
- GET /v1/quote returns symbol, bid, ask, spread, spread_pips and timestamp only. Every other response field is removed, and every other query parameter is ignored.
- GET /v1/indicator no longer accepts a source parameter.
- Economic calendar id and series_id values are now opaque 16-character keys. Each changes value once.
- GET /v1/symbols/{symbol} no longer returns contract_size, min_volume, max_volume, volume_step, swap_long, swap_short, margin_currency or trading_hours.
- GET /v1/symbols search matches canonical symbol names only.
- Symbols are answered by their canonical name only, for example EURUSD. Any other name gets the answer an unknown symbol gets.
- Screener results and Market Insights cards carry canonical symbol names.
- server_time on GET /v1/indicator and /demo/indicator, and the timestamp of POST /v1/quotes, are ISO-8601 UTC, for example 2024-03-27T14:00:00+00:00, instead of dotted date strings.
- The playground on each indicator API reference page shows the documented example response, labelled as illustrative values, instead of generated numbers.
- The indicator API reference pages show the response with its success and data envelope, as the API returns it.
- Each indicator API reference page shows the example value its learn page shows, with updated_at and server_time at the same instant.
- POST /v1/quotes returns an empty data.timestamp, instead of the time of the response, when the time of the latest data update is not available.
- The polling example on the real-time data page detects new quotes from each quote's own timestamp.
New TickAtlas website
- Full public-site redesign: new look across every page, dark mode, faster load, and corrected product information throughout.
Simpler, honest pricing
- Pay-as-you-go became the starting point: every new account begins with $2.50 of prepaid API credit, with no card and no trial. The monthly plans (Starter, Pro, Enterprise) remain for a flat monthly price with a daily request quota, and three capabilities still depend on plan: raw tick data is Pro and Enterprise only, while WebSocket streaming and released economic-calendar actuals start at Starter. (Corrected 2026-09-19: this entry originally said there were no tiers and that every plan feature was available to everyone. Neither was accurate.)
Documentation accuracy pass
- Full review of published API docs and specs, correcting rate-limit, quota, and endpoint details to exactly match live behavior.
Duplicate calendar entries resolved
- Corrected a data-feed issue that could surface duplicate economic-calendar events.
Faster, clearer error responses
- Added a dedicated error page and unified API error codes for more consistent handling.
More accurate screener results
- Fixed a rare case where a filtered query with no matches could return cached, unfiltered data. Screener results are now always filter-accurate.
Stronger abuse protections
- Hardened endpoint access controls to protect service quality for all users.
Account activity reminders
- Added automated activity and usage reminders for account holders.
Expanded indicator coverage
- Rolled out a data-engine update broadening indicator and symbol availability.
Economic calendar API
- Launched a real-time economic calendar endpoint.
Unified error codes
- Unified error codes (breaking change, pre-launch — no external consumers): empty-symbols now returns NO_SYMBOLS (renamed from INVALID_REQUEST on /v1/quotes and /v1/indicators); bad time ranges return INVALID_TIME_RANGE (renamed from INVALID_RANGE on /v1/ticks); retention rejections return OUTSIDE_RETENTION (renamed from DATA_OUTSIDE_RETENTION on /v1/ohlc). INVALID_REQUEST remains the generic malformed-request code.
Accessibility, SEO & performance pass
- Accessibility — WCAG 2.1 AA pass: high-contrast code samples, corrected heading hierarchy, and keyboard-accessible regions (0 automated violations)
- SEO — concise per-page titles, canonical URLs, Open Graph / Twitter cards, JSON-LD, and a complete sitemap
- Performance — optimized font and asset loading; Lighthouse Accessibility 100 and Performance 95–100 on key pages
- Docs — expanded API reference, integration guides, and troubleshooting
Brand engine & platform hardening
- Whitelabel Brand Engine — brand and domain are now configuration; GET /api/brand exposes the active identity
- Mail Relay — dedicated transactional email pipeline for verification, alerts, and invoices
- Hardened Security Headers — Content-Security-Policy, Referrer-Policy, Permissions-Policy, and X-Frame-Options
- Media Kit — regenerated favicons, PWA icons, and social-share assets
Developer documentation platform
- Documentation Hub — quickstart, full REST + WebSocket reference, and SDK guides
- Interactive API Playground — run authenticated requests and inspect live responses in-browser
- Developer Content — blog, indicator deep-dives, glossary, and integration guides (n8n, Zapier, Google Sheets, Slack)
- Auto-generated Open Graph social cards for every page
Usage-based billing & controls
- Pay-As-You-Go — usage-based tiered pricing with per-endpoint credit weights
- Spending Controls — monthly spending caps and overage settings per account
- Invoicing — automatic monthly invoices and full billing history
- Usage Export — download usage analytics (CSV) by key, endpoint, and day
- Prepaid credit balance support
Crypto-native billing & subscriptions
- Crypto-Native Billing — subscriptions in BTC, ETH, USDT, USDC and 40+ assets via NOWPayments
- IPN Webhooks — HMAC-verified payment callbacks with timestamp replay protection
- Stripe Card Payments — optional card checkout alongside crypto
- Subscription Plans — Starter, Pro, and Enterprise tiers, monthly or annual
Account & API-key security controls
- Two-Factor Authentication — TOTP with QR enrollment and single-use backup codes
- API Key Management v2 — multiple keys per account with per-key IP whitelisting
- Key Rotation — scheduled rotation policy and per-key last-used tracking
- Dashboard — dedicated account security settings panel
Authentication hardening & observability
- Password Hashing — bcrypt with automatic upgrade of legacy hashes on next login
- Auth Rate Limiting — fail-closed per-IP limits plus per-account lockout against credential stuffing
- Docs Access Control — IP-gated OpenAPI and ReDoc specification
- Observability — Sentry runtime error tracking and pre-commit black/flake8/bandit quality gates
Security baseline & error guidance
- Password Complexity Requirements — Enforced uppercase, lowercase, and number requirements
- Session Management — Added 8-hour idle timeout with automatic cleanup
- CSRF Protection — Token-based CSRF protection for all state-changing requests
- Rate Limiting — Redis-based rate limiting on authentication endpoints
- Input Validation — Comprehensive sanitization and bounds checking across all endpoints
- Error Handling — Enhanced with retry logic and user-friendly messages
- Loading States — Added consistent loading indicators across the dashboard
- Error Codes — Complete error documentation with troubleshooting guides
Automated data backfill system
- Automated Backfill System — Backend detects gaps and backfills our data automatically
- Gap Detector — Background thread scans price_data every 5 min for missing candles
- Backfill Tracker — Redis-based request lifecycle with priority queue, retry logic, email alerts
- Data-Driven Trading Hours — Per-symbol trading profiles learned from actual candle data
- No-Data Feedback — Backend suppresses re-requests for 24h
- POST /ingest/backfill — New endpoint receives historical bars + all 42 indicator series
Metadata, alerts & webhooks
- Batch Info — Our data includes its metadata with each batch
- Symbol Metadata — currency_base, currency_profit, contract_size, symbol_type
- Alert Evaluator — Background thread evaluates user alerts every 5 min
- Webhook Manager — CRUD for webhook endpoints with testing
- User Dashboard — Complete client portal with API key management, usage analytics
- Market Insights Engine — rule-based snapshots every 6 hours
Resilience & tick-data capture
- Hybrid Retry Queue — Failed batches automatically retried (max 3 attempts)
- Circuit Breaker — Pauses retries after 5 consecutive failures
- GMT Timestamps — Timezone-agnostic data storage
- Tick Data Capture — Bid/ask snapshots stored in database
- Bulk Upsert — Optimized database writes for high throughput
- Staggered Updates — 70% less update traffic into our backend
WebSocket streaming & bulk quotes
- WebSocket Streaming — /ws/v1/quotes real-time push for Pro and Enterprise
- Bulk Quotes — POST /v1/quotes accepts up to 100 symbols per request
- Atomic per-plan WebSocket connection limits via Redis Lua scripts
- X-RateLimit-* headers returned on every response
Market Summary & screener
- Market Summary — /v1/summary returns bias, confidence, per-category signals, key levels, and an LLM-ready summary string
- Market Screener — filter instruments by live indicator conditions
- Daily market-insight snapshots refreshed throughout the session
Heatmap, correlation & economic calendar
- Currency Strength Heatmap — 8-major-currency strength scores
- Correlation Matrix — true Pearson correlation over log-returns of all 28 major pairs
- Economic Calendar — /v1/calendar with impact, forecast, and previous fields (15-minute refresh)
- Market Sessions — /v1/sessions trading-session clock for Sydney, Tokyo, London, and New York
Symbol normalization & spread endpoint
- Symbol Resolution Engine — one canonical name per instrument
- Symbol Catalog — GET /v1/symbols searchable instrument list with metadata
- Spread Endpoint — GET /v1/spread live bid/ask spread per symbol
- Admin-managed base/quote currency mappings for crypto and CFD instruments
Historical OHLC & indicator history
- Historical OHLC — GET /v1/ohlc across M1–D1 with published retention windows
- Indicator History — GET /v1/indicator/history time-series (Starter and above)
- Consistent response envelope { success, data } across all endpoints
- OUTSIDE_RETENTION errors return the earliest available timestamp instead of an empty result
Major Release — production API foundation
- PostgreSQL backend replacing SQLite for production scalability
- Redis caching layer for faster cached responses
- 12 REST API endpoints including /summary market analysis
- 42 technical indicators across 7 timeframes
- Per-plan rate limiting and usage tracking
- Admin dashboard with user management and monitoring
No releases match this filter. Try another category or search term.
A changelog should tell developers what kind of attention a release needs.
The labels are deliberately operational: they help readers scan for implementation work, security changes, documentation updates and changes that could affect client code.
Feature
New endpoints, billing capabilities, security controls, integrations or developer-facing product surface.
Ask: what can I build now that I could not build before?Improvement
Changes to reliability, performance, developer experience, accessibility, observability or existing behavior.
Ask: does my current integration become easier or behave differently?Security
Authentication, headers, rate limiting, password handling, payment verification and other hardening work.
Ask: do I need to update account or deployment practices?Documentation
Reference expansions, troubleshooting, examples, API playgrounds and integration guidance.
Ask: is there now a clearer supported path for this workflow?From API foundation to a full developer platform.
The release history tells a broader product story. January established the core data platform. February expanded analysis and streaming. March hardened ingestion, automation and security. April added account and billing controls. May and June built out the developer experience and documentation surface.
This is useful context for developers because it shows which parts of the system are foundational and which were layered on later.
JANFEBMARAPRMAY–JUNJULFrom “what changed” to “how do I use it?”
The changelog should always connect back to the live contract, implementation guidance and troubleshooting path.
Release notes explain the change. The reference defines the contract.
Use the changelog to understand what moved, then verify the exact request and response shape in the API reference before updating production code.