Flat API client for Python
Official client for the Flat REST API, generated from Flat's public OpenAPI specification and kept current automatically.
pip install flat-api
from flat_api import FlatClient
client = FlatClient(access_token="YOUR_TOKEN")
me = client.api_client # generated APIs hang off here
Get a token in seconds with a Personal Access Token; it works exactly like an OAuth access token for your own account.
What this client does for you
- 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.
Pagination
from flat_api import paginate
for score in paginate(api.get_user_scores_with_http_info, user="me"):
print(score.title)
Errors
from flat_api import FlatRateLimitError, FlatNotFoundError
try:
...
except FlatRateLimitError as exc:
print("retry after", exc.reset)
except FlatNotFoundError:
print("no such score")
Asynchronous use
from flat_api import AsyncFlatClient
client = AsyncFlatClient(access_token="YOUR_TOKEN")
# every operation is awaitable
Supported versions
Python 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.
Documentation
- Quickstart, install to first call
- Per-operation reference, generated
- API documentation
- Migrating from 1.1.x
Verifying this package
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-python
Published through PyPI trusted publishing: no long-lived token exists that could publish under this name.
How this client is maintained
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.
License
Apache 2.0. See LICENSE.
Release files for flat-api 2.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flat_api-2.0.3.tar.gz | 373.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flat_api-2.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / flat_api-2.0.3.tar.gz
| Download URL | flat_api-2.0.3.tar.gz |
|---|---|
| Size | 373.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d4f7b05097edb950695a4bc366a1339c6873c7da44042b26890f2cd239b874e7
|
|
BLAKE2b-256 checksum How to use checksums |
b8397305088ca96328badd74922677ef3ba261d4bf16ad8cc1cbd8308cdb1953
|
| 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 Sep 17, 2026.
Transparency logRelease files / flat_api-2.0.3-py3-none-any.whl
| Download URL | flat_api-2.0.3-py3-none-any.whl |
|---|---|
| Size | 1.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e17aa83ce34dcd734121972d2b51911d69754a6ca454c0bab04e5ce0013a9156
|
|
BLAKE2b-256 checksum How to use checksums |
cb1c6890c013efb17857ba21a0bafec50d19b6c1eaa50605765a34c18d4d9f4f
|
| 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 Sep 17, 2026.
Transparency log