Skip to main content

FeatureJet Python SDK

Official synchronous Python client for the FeatureJet public developer API.

Install

pip install featurejet

Quickstart

API keys are minted in the FeatureJet dashboard and begin with fj_live_. The SDK sends the key as an Authorization: Bearer header.

from featurejet import (
    ApiPostCreateRequest,
    FeatureJetClient,
    FeatureJetClientConfig,
)

with FeatureJetClient(
    FeatureJetClientConfig(api_key="fj_live_REPLACE_ME"),
) as client:
    posts = client.list_posts("feedback", limit=25, offset=0)
    for post in posts.posts:
        print(post.title, post.vote_count)

    created = client.create_post(
        "feedback",
        ApiPostCreateRequest(
            title="Dark mode",
            body="Please add a system theme",
            tags=["UI"],
        ),
    )
    print(created.id)

The default base URL is https://api.featurejet.com. Configure a different host by passing base_url to FeatureJetClientConfig.

Endpoints

API endpoint SDK method
GET /api/v1/boards list_boards()
GET /api/v1/boards/{slug} get_board(slug)
GET /api/v1/boards/{slug}/posts list_posts(slug, ...)
POST /api/v1/boards/{slug}/posts create_post(slug, request)
GET /api/v1/boards/{slug}/posts/{id} get_post(slug, post_id)
PATCH /api/v1/boards/{slug}/posts/{id} update_post(slug, post_id, request)
DELETE /api/v1/boards/{slug}/posts/{id} delete_post(slug, post_id)
GET /api/v1/boards/{slug}/posts/{id}/votes list_votes(slug, post_id)
GET /api/v1/boards/{slug}/posts/{id}/comments list_comments(slug, post_id)
GET /api/v1/boards/{slug}/roadmap get_roadmap(slug)
GET /api/v1/boards/{slug}/changelog get_changelog(slug, ...)
GET /api/v1/boards/{slug}/ship-stats get_ship_stats(slug, ...)
GET /api/v1/boards/{slug}/analytics get_analytics(slug, ...)

Pagination is explicit: list_posts and get_changelog accept limit and offset. The API defaults to 100 results and permits at most 500.

Errors and rate limits

API error envelopes raise FeatureJetApiError. HTTP 429 responses raise the FeatureJetRateLimitError subclass; its retry_after attribute contains the integer Retry-After value when the response includes one. The public API is limited to 120 requests per minute per API key. The SDK does not retry requests automatically.

Metadata

Release files for featurejet 0.2.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 featurejet 0.2.0
File Size Uploaded
featurejet-0.2.0.tar.gz 65.8 kB Details

Built distribution (wheel)

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

Total release size: 74.6 kB

Release files / featurejet-0.2.0.tar.gz

Download URL featurejet-0.2.0.tar.gz
Size 65.8 kB
Tags Source
SHA-256 checksum
How to use checksums
89d4b6b87644292483e51380732c8715470079f97eaa67da83ce35cac350ceae
BLAKE2b-256 checksum
How to use checksums
cd8c1b352f540f89afb066dfa4dcb3d702aa4ec36cc3067f8152a6d38ae0bea6
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 Jul 19, 2026.

Transparency log

Release files / featurejet-0.2.0-py3-none-any.whl

Download URL featurejet-0.2.0-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
903fe6292d500ec1065ad5034c0660282f0740f635848d45bb145a448d1ebc8a
BLAKE2b-256 checksum
How to use checksums
d17ad14296b279fdd9e39b0f6e1692950d03a14c3b8cbe24b7fd123d007a10a5
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 Jul 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

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