Skip to main content

Financial Times (markets.ft.com) data source for Python

Project description

py-ftmarkets

Financial Times (markets.ft.com) data source for Python. Provides a high-level API and CLI to search for securities, fetch historical data, and validate prices.

Installation

uv add py-ftmarkets
# or
pip install py-ftmarkets

CLI Usage

The package provides a CLI tool named ftmarkets.

Lookup a Ticker

Resolve an ISIN or Symbol to the Financial Times ticker format (e.g., AAPL:NSQ).

# Basic lookup by ISIN
ftmarkets lookup --isin DE000A0S9GB0

# Lookup with price and date validation (Returns 1 best matching ticker)
ftmarkets lookup --isin DE000A0S9GB0 --price 117.81 --date 2025-12-12 --limit 1

# Lookup with filters (currency, country, asset-class)
ftmarkets lookup --isin DE000A0S9GB0 --currency EUR --country DE --asset-class ETF

# Return all matching results in JSON format
ftmarkets lookup --isin DE000A0S9GB0 --limit 0 --format json

Fetch History and Validate

Fetch historical data for a resolved ticker and optionally validate a trade price on a specific date.

# Fetch 1 month of history for an ISIN
ftmarkets history --isin DE000A0S9GB0

# Fetch 1 year of history and validate a price
ftmarkets history --isin DE000A0S9GB0 --period 1y --price 120.50 --date 2025-01-15

Library Usage

py-ftmarkets implements the DataSource interface from pydantic-market-data.

from ftmarkets.api import FTDataSource
from pydantic_market_data.models import SecurityCriteria

source = FTDataSource()

# Resolve a security
criteria = SecurityCriteria(isin="DE000A0S9GB0")
symbol = source.resolve(criteria)
print(f"Ticker: {symbol.ticker}")

# Fetch history
history = source.history(symbol.ticker, period="1mo")
df = history.to_pandas()
print(df.tail())

# Validate price
is_valid = source.validate(symbol.ticker, target_date="2025-01-15", target_price=120.50)
print(f"Price valid: {is_valid}")

Features

  • Robust Resolution: Searches by ISIN, Symbol, or Description.
  • Smart Mapping: Prioritizes results based on preferred exchanges and currency.
  • Price Validation: Verifies if a security traded within a range or near a specific price on a given date.
  • Pandas Integration: Historical data is easily convertible to Pandas DataFrames.
  • Modern Python: Built with Pydantic v2 and async-ready architecture (though currently synchronous).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_ftmarkets-0.1.3.tar.gz (48.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_ftmarkets-0.1.3-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file py_ftmarkets-0.1.3.tar.gz.

File metadata

  • Download URL: py_ftmarkets-0.1.3.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for py_ftmarkets-0.1.3.tar.gz
Algorithm Hash digest
SHA256 8a27a8adfc7c709fd8023e58867378c8e8a61abddbf00a217e04b2e556d018d9
MD5 69727059a96bca850555073e37aaf5e9
BLAKE2b-256 16fc119b31b9dcee8f547d30c0213aabe13578d662c3715b12b51640f1738318

See more details on using hashes here.

File details

Details for the file py_ftmarkets-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: py_ftmarkets-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for py_ftmarkets-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1dc9a23c7fa99abe9753f66f3f1cc5a52bd3535bd4af69fdf2ded2333a0f4b8c
MD5 6b7200beb6d03445be8e6235817840c4
BLAKE2b-256 e7ca67f1e360f9a338c326717e48cb5ae71dfe3b469664913b0f8fd66a68a944

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page