Skip to main content

Docs ftmq on pypi PyPI Downloads PyPI - Python Version Python test and package pre-commit Coverage Status AGPLv3+ License Pydantic v2

ftmq

This library provides methods to query and filter entities formatted as Follow The Money data, either from a json file/stream or using a statement-based store backend from nomenklatura.

It also provides a Query class that can be used in other libraries to work with SQL store queries or api queries.

ftmq.Query is the central query hub of the OpenAleph ecosystem: one backend-agnostic query object that filters FtM streams and stores, translates to SQL, and bridges to the OpenAleph API.

To get familiar with the Follow The Money ecosystem, you can have a look at this pad here.

Installation

Minimum Python version: 3.11

pip install ftmq

Usage

Command line

cat entities.ftm.json | ftmq -q 'filter:schema=Company&filter:properties.country=de&filter:gte:properties.incorporationDate=2023' -o s3://data/entities-filtered.ftm.json

Python Library

from ftmq import Query, M, P, G, smart_read_proxies

# Legal entities in the `companies` dataset that are based in Germany, or in
# Austria and incorporated since 2020, but never the dissolved ones, return the
# 5 most recent incorporated ones:
q = Query().where(
    M(dataset="companies"),
    M(schemata="LegalEntity"),
    G(countries="de") | (G(countries="at") & P(incorporationDate__gte=2020)),
    ~P(status__ilike="%dissolved%"),
).order_by("incorporationDate", ascending=False)[:5]

for proxy in smart_read_proxies("s3://data/entities.ftm.json"):
    if q.apply(proxy):
        yield proxy

ftmq.search (formerly the standalone ftmq-search package) indexes entities into simple full-text search stores, backed by SQLite FTS5 or Tantivy (pip install ftmq[search]):

cat entities.ftm.json | ftmq search transform | ftmq search --uri sqlite:///ftmqs.db index
ftmq search --uri sqlite:///ftmqs.db "jane doe"

HTTP API

ftmq.api (formerly the standalone ftmq-api package) exposes a store and its search index as a read-only FastAPI application (pip install ftmq[api]), speaking the Aleph filter grammar:

granian --interface asgi ftmq.api.app:app
curl "localhost:8000/entities?filter:schema=Payment&filter:gte:properties.date=2023"

Documentation

https://docs.investigraph.dev/lib/ftmq

Support

This project is part of investigraph

In 2023, development of ftmq was supported by Media Tech Lab Bayern batch #3

ftmq, (C) 2023 Simon Wörpel ftmq, (C) 2024-2025 investigativedata.io ftmq, (C) 2025 Data and Research Center – DARC

ftmq is licensed under the AGPLv3 or later license.

Prior to version 0.8.0, ftmq was released under the MIT license.

see NOTICE and LICENSE

Metadata

Release files for ftmq 5.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ftmq 5.1.1
File Size Uploaded
ftmq-5.1.1.tar.gz 109.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ftmq 5.1.1
File Interpreter ABI Platform
ftmq-5.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 245.0 kB

Release files / ftmq-5.1.1.tar.gz

Download URL ftmq-5.1.1.tar.gz
Size 109.6 kB
Tags Source
SHA-256 checksum
How to use checksums
14e77597ad32f4767270fdd0b0e179ceed61aa5c44c3a0013af11e6476792610
BLAKE2b-256 checksum
How to use checksums
b3f542b80cdfad27e9d041a7d72eaa73226fc614bd29c9f8d60fb5fb99a70ea8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.14.4 Linux/7.0.0-31-generic

Release files / ftmq-5.1.1-py3-none-any.whl

Download URL ftmq-5.1.1-py3-none-any.whl
Size 135.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77ecec2d546c8e311e0004747c8ec67f469423322bbded315f6b367aeb545e48
BLAKE2b-256 checksum
How to use checksums
a9a5ee805bf993d2ed0cdd2c439878a7be97ac7131dc2761899432bc9e17a01c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.14.4 Linux/7.0.0-31-generic

Release history Release notifications | RSS feed

5.2.0

2 release files

This release

5.1.1 This release

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.10.0

2 release files

4.9.2

2 release files

4.9.0

2 release files

4.8.2

2 release files

4.8.1

2 release files

4.8.0

2 release files

4.7.1

2 release files

4.7.0

2 release files

4.6.1

2 release files

4.6.0

2 release files

4.5.7

2 release files

4.5.5

2 release files

4.5.4

2 release files

4.5.3

2 release files

4.5.2

2 release files

4.5.1

2 release files

4.5.0

2 release files

4.3.4

2 release files

4.3.3

2 release files

4.3.2

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.5

2 release files

4.2.4

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.4

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.12

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page