Official client for the Flat REST API, generated from Flat's public OpenAPI specification and kept current automatically.
pip install flat-apifrom flat_api import FlatClient
client = FlatClient(access_token="YOUR_TOKEN")
me = client.api_client # generated APIs hang off hereGet a token in seconds with a Personal Access Token; it works exactly like an OAuth access token for your own account.
- Typed errors. Branch on the error, not the status code. Flat returns HTTP 403 for both rate limiting and authorization failures, so status alone cannot tell them apart.
- Automatic retries. Rate limits and server errors are retried with backoff. Flat sends no
Retry-After, so the client readsX-RateLimit-Resetinstead. - Automatic pagination. Eight collection endpoints are cursor-paginated with the cursor in a
Linkheader. You get an iterator; you never touch a cursor. - OAuth2 built in. Authorization URLs, code exchange and transparent token refresh.
- Full type information, so your editor and your coding assistant both know the API.
from flat_api import paginate
for score in paginate(api.get_user_scores_with_http_info, user="me"):
print(score.title)from flat_api import FlatRateLimitError, FlatNotFoundError
try:
...
except FlatRateLimitError as exc:
print("retry after", exc.reset)
except FlatNotFoundError:
print("no such score")from flat_api import AsyncFlatClient
client = AsyncFlatClient(access_token="YOUR_TOKEN")
# every operation is awaitablePython 3.11, 3.12 and 3.13. Versions past their upstream end of life are not supported; see MIGRATION.md if you are on an older runtime.
- Quickstart, install to first call
- Per-operation reference, generated
- API documentation
- Migrating from 1.1.x
Every release carries a signed provenance attestation linking the package back to the commit, the workflow run that built it, and the API specification version it was generated from.
pip download --no-deps flat-api
gh attestation verify flat_api-*.whl --repo FlatIO/api-client-pythonPublished through PyPI trusted publishing: no long-lived token exists that could publish under this name.
Generated from the public specification published at FlatIO/api-reference. A new specification release regenerates, validates and publishes this package automatically, so it never drifts from the API.
Files under docs/reference/ and the client sources are generated: edit the generator configuration
in tools/, not the output.
Apache 2.0. See LICENSE.