Skip to main content

f69-edge (Python SDK)

Small httpx-based client for the f69-edge HTTP API.

Requires Python 3.12+.

Install

pip install f69

Usage

import os

from f69 import F69EdgeClient, F69EdgeError

client = F69EdgeClient(
    base_url=os.environ.get("F69_EDGE_URL", "http://127.0.0.1:8081"),
    # From control plane: POST .../projects/<project>/service-accounts - use bearer_token or `<id>.<secret_key>`.
    # Tokens are reader (evaluate only) or writer (identify + evaluate); each token is bound to one project + environment.
    api_key=os.environ["F69_SERVICE_ACCOUNT_BEARER"],
)

client.health()  # GET /health (no auth)

client.identify(
    type="user",
    external_id="user_42",
    attributes={"plan": "pro", "region": "eu"},
)

flags = client.evaluate(id="user_42", type="user")
# flags → [
#   {"key": "new_checkout", "value": True, "reason": "TARGETING_MATCH", "version": "live"},
#   ...
# ]

client.close()

Evaluate semantics

POST /v1/evaluate takes {"id", "type"} and optional "keys". Omit keys to evaluate every feature in the token's project; pass a non-empty keys list to evaluate only those feature keys. The server looks up the entity in the token's project + environment (it must have been identified first via /v1/identify) and replies with a list of results. Each entry carries key, value, reason (one of TARGETING_MATCH, SPLIT, DEFAULT, FALLBACK, ERROR), and a manifest version string scoped to that project/environment.

Project scope

Service-account tokens now scope to a project + environment, not to a whole workspace. Create a project in control first, then mint tokens under it. After upgrading from a pre-project release, the server invalidates old tokens and returns HTTP 401 token_reissue_required until a new token is issued from the dashboard.

Use as a context manager to close the underlying HTTP client:

with F69EdgeClient(base_url="http://127.0.0.1:8081", api_key="...") as client:
    client.health()

Errors on non-2xx responses raise F69EdgeError with status, url, and parsed body when available.

API surface

Method HTTP Auth
health() GET /health No
identify(*, type, external_id, attributes=None, label=UNSET) POST /v1/identify Authorization: Bearer <serviceAccountId>.<secretKey>
evaluate(*, id, type, keys=None) POST /v1/evaluate Same

Metadata

Release files for f69 0.1.7

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

Source distribution (sdist)

Source distribution for f69 0.1.7
File Size Uploaded Provenance
f69-0.1.7.tar.gz 8.4 kB With provenance Details

Built distribution (wheel)

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

Total release size: 14.0 kB

Release files / f69-0.1.7.tar.gz

Download URL f69-0.1.7.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
26a9dd8aa3e755a3ebf16666726ab695771f7f7f566e930d6da13ad5f4ff8bec
BLAKE2b-256 checksum
How to use checksums
a4dc9f59f5087571e987c18a850834bcb701f68469b4d9beacd0df07ff70a45a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 27, 2026.

Transparency log

Release files / f69-0.1.7-py3-none-any.whl

Download URL f69-0.1.7-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4aa5ba50a8609697506a7b059614436137e162225a444c3e6830a2d8c320b9f6
BLAKE2b-256 checksum
How to use checksums
0397216a0c2b137d8f32d7d1850cfd47375e682b2ca9ea2bef7607630b3cd493
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 27, 2026.

Transparency log

Security for f69 0.1.7

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for f69-0.1.7.tar.gz

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 Apr 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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