Skip to main content

featureflow-python-sdk

Python SDK for the featureflow feature management platform

Get your Featureflow account at featureflow.io

Get Started

The easiest way to get started is to follow the Featureflow quick start guides

Installation

The SDK is available on PyPI as featureflow-sdk.

You can either add it as a dependency or install it globally.

python -m pip install featureflow-sdk

Usage

Create one Featureflow client for the lifetime of your application and share it. The constructor starts background threads that poll Featureflow for flag configuration and batch evaluation events back to the server. Constructing a client per request (or per evaluation) spawns new threads and re-downloads your flags every time — create it once at startup, then call evaluate() on that single instance as often as you like; evaluation is local and cheap.

import os

from featureflow import Featureflow, User

# Once, at application startup. Use your server environment key (sdk-srv-env-...).
featureflow = Featureflow(os.environ["FEATUREFLOW_SERVER_KEY"])


def show_my_feature(user_id):
    user = User(key=user_id, attributes={"tier": "gold"})

    if featureflow.evaluate("my-cool-feature", user).isOn():
        print("I'm enabled")

In a web application, create the client at startup and reuse it across requests — see examples/server for how the Flask example does exactly this.

For multivariate flags, check a specific variant or read the evaluated value:

evaluated = featureflow.evaluate("checkout-flow", user)

if evaluated.is_("variant-b"):
    ...

print(evaluated.value())  # e.g. "variant-b", or "off"

Naming your application

Optionally tag this workload with an application name so the Featureflow dashboard can attribute SDK usage and flag evaluations to it (Admin → SDKs, and the "Evaluated by" panel on each feature's statistics tab):

featureflow = Featureflow(
    os.environ["FEATUREFLOW_SERVER_KEY"],
    application="checkout-api",
)

The name is a slug — lowercase letters, numbers, ., _ and -, at most 64 characters. An invalid value is dropped with a warning and no tag is sent. The FEATUREFLOW_APPLICATION environment variable is used when the option is not set in code.

Example server

See examples/server for a small Flask app you can run locally to manually test evaluations against your Featureflow account from a browser.

Release files for featureflow-sdk 0.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 featureflow-sdk 0.3.0
File Size Uploaded
featureflow_sdk-0.3.0.tar.gz 17.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for featureflow-sdk 0.3.0
File Interpreter ABI Platform
featureflow_sdk-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.7 kB

Release files / featureflow_sdk-0.3.0.tar.gz

Download URL featureflow_sdk-0.3.0.tar.gz
Size 17.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f13b0c6ba22a77c6428b1739dc78466046c0c2ab5d3fc84c8a03f42aa474aaf3
BLAKE2b-256 checksum
How to use checksums
85d068e7c8b47f9fb2813a18e7432f90d17b41e6814602faf6a79ef62546e37d
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 Aug 13, 2026.

Transparency log

Release files / featureflow_sdk-0.3.0-py3-none-any.whl

Download URL featureflow_sdk-0.3.0-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ec83d6dc50786d59192237c415b59363cf334ee36cba01623f432991197634d3
BLAKE2b-256 checksum
How to use checksums
1b59efae9864be50276e9ec50ff91db6ef1b929efca749a66acc1715294020fd
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 Aug 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.1

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