Skip to main content

finra-py: An Unofficial FINRA API Client

https://github.com/hawkberry/finra-py/actions/workflows/run-tests.yml/badge.svg https://codecov.io/gh/hawkberry/finra-py/branch/main/graph/badge.svg https://app.readthedocs.org/projects/finra-py/badge/?version=latest https://badge.fury.io/py/finra-py.svg https://img.shields.io/pypi/pyversions/finra-py.svg https://img.shields.io/pypi/l/finra-py.svg https://img.shields.io/badge/open%20source-support-blue

What is finra-py?

finra-py is an unofficial, open-source Python client library for the FINRA API Platform. It provides a lightweight, unopinionated Python interface for the FINRA API while preserving direct access to the API’s responses and full functionality for every supported endpoint and dataset.

The core features include:

  • OAuth 2.0 authentication, client creation, token management, and custom token storage

  • Equity, Fixed Income, FINRA, Firm, Registration and TRACE Report Card datasets via the Query API

  • FINRA notification event datasets via the Notification API

  • Submission of regulatory filings and other data to FINRA, including creation, validation, submission, update, and retrieval operations for Form U4, Form U5, Form BR, Create Individual and Non-Registered Fingerprint filings via the Submission API

  • Support for all credential types

  • Support for Mock datasets

  • Support for the QA Test Environment API

  • Support for asynchronous requests (server-side)

  • Support for asyncio (client-side)

Installing finra-py

finra-py requires Python 3.11 or later.

Install the package using pip:

python -m pip install finra-py

Import the package in Python:

import finra

For detailed instructions on how to get started with finra-py, see Getting Started.

You can find a full description of the finra-py library in the documentation.

Why use finra-py?

finra-py is FINRA-specific on the way in, and standard HTTPX on the way out.

  1. OAuth 2.0 Authentication: The FINRA API uses OAuth 2.0 for authentication and authorization. Implementing the OAuth 2.0 authentication flow yourself can introduce unnecessary complexity and security risks. finra-py handles token acquisition and lifecycle management for you, and provides flexible options for loading and storing tokens, including support for custom token storage.

  2. Direct API Access: finra-py keeps the client layer deliberately thin. It maps requests to the FINRA API and returns the raw httpx.Response objects directly to you, without imposing a custom response format or data model. You get the convenience of a dedicated FINRA client with all of the API’s features, without giving up the control available through direct HTTP requests.

  3. All API Endpoints: The finra-py library is designed to provide complete coverage of the FINRA API Platform. It implements full functionality for every dataset and regulatory filing supported by the FINRA API and described in the documentation. It also provides comprehensive test coverage for Windows, macOS, and Linux.

Limitations

Even though finra-py strives to provide coverage of all documented datasets for the FINRA API, there are some datasets and services available through FINRA that may not be available through their API.

finra-py provides full functionality for the documented datasets supported by the FINRA API, however some datasets and services available from FINRA may not be available through the API. See FINRA Data for information about FINRA’s available datasets.

  • finra-py does not currently support FINRA’s fileX API

Help and Development

For troubleshooting guidance and answers to common questions, see the Getting Help page.

Submit bug reports on the finra-py Issues Page on GitHub.

If you need a dataset or feature that is not currently supported by the client, please file a Feature Request. Pull requests are not currently accepted.

Security

Please report security vulnerabilities privately using GitHub’s Private Vulnerability Reporting, rather than as a normal bug report. See the Security Policy for more information.

The policy includes additional security information specific to finra-py, including credential and token handling, sensitive data, diagnostic logging, dependency security, and supported releases.

FINRA API Consulting

Need help with a custom integration?

As the author and maintainer of finra-py, I provide consulting on FINRA API integrations, Web EFT migrations, regulatory filing and compliance workflows, and market data systems.

See the consulting page for more information.

Metadata

Release files for finra-py 1.3.0

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

Source distribution (sdist)

Source distribution for finra-py 1.3.0
File Size Uploaded
finra_py-1.3.0.tar.gz 109.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for finra-py 1.3.0
File Interpreter ABI Platform
finra_py-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 198.1 kB

Release files / finra_py-1.3.0.tar.gz

Download URL finra_py-1.3.0.tar.gz
Size 109.6 kB
Tags Source
SHA-256 checksum
How to use checksums
518dcfcb33314d02c6603503ec23991c22a39ab9669b6f092eea3ba9c3c5e651
BLAKE2b-256 checksum
How to use checksums
ed9480929249c240269e0b1d21eb7db8b19044f4f1438047fb9ecd5414a52361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / finra_py-1.3.0-py3-none-any.whl

Download URL finra_py-1.3.0-py3-none-any.whl
Size 88.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01bc1ee3a3245d068d44d262271daee6370357d3f0c0e1fe2a6ed735ab8ca61f
BLAKE2b-256 checksum
How to use checksums
e2169b3585b0d14c1f074d688be9633881488746c02ccf301f65693a9d0eef89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.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