Skip to main content

Official Python SDK for the FloopFloop API

Project description

floopfloop

PyPI version PyPI downloads Python versions CI License: MIT

Official Python SDK for the FloopFloop API. Build a project, refine it, manage secrets and API keys from any Python 3.10+ codebase.

Install

pip install floopfloop

Quickstart

Grab an API key via the floop CLI (floop keys create my-sdk) or the dashboard → Account → API Keys. Business plan required to mint new keys.

import os
from floopfloop import FloopClient

floop = FloopClient(api_key=os.environ["FLOOP_API_KEY"])

# Create a project and wait for it to go live.
created = floop.projects.create(
    prompt="A landing page for a cat cafe with a sign-up form",
    name="Cat Cafe",
    subdomain="cat-cafe",
    bot_type="site",
)
live = floop.projects.wait_for_live(created["project"]["id"])
print("Live at:", live["url"])

Streaming progress

for event in floop.projects.stream(project_id):
    print(f"{event['status']} ({event['step']}/{event['total_steps']}) — {event['message']}")

Error handling

Every call raises FloopError on non-2xx. Switch on .code:

import time
from floopfloop import FloopClient, FloopError

try:
    floop.projects.create(prompt="...")
except FloopError as err:
    if err.code == "RATE_LIMITED":
        time.sleep((err.retry_after_ms or 5000) / 1000)
    elif err.code == "UNAUTHORIZED":
        print("Check your FLOOP_API_KEY.")
    else:
        print(f"[{err.request_id}] {err.code}: {err}")
    raise

Resources

Namespace Methods
floop.projects create, list, get, status, cancel, reactivate, refine, conversations, stream, wait_for_live
floop.secrets list, set, remove
floop.api_keys list, create, remove
floop.library list, clone
floop.subdomains check, suggest
floop.uploads create (for attaching files to projects.refine)
floop.usage summary
floop.user me

For longer end-to-end patterns — streaming a build, refining mid-deploy, attachment uploads, key rotation, retry-with-backoff — see the cookbook.

Authentication

Two token shapes are accepted on api_key:

Prefix Source Plan gate
flp_… Dashboard → API Keys, floop keys create Business (to mint)
flp_cli_… floop login device token Free (unlimited)

CLI device tokens (flp_cli_…) work here too — handy for local scripts that already logged in through the CLI.

Configuration

floop = FloopClient(
    api_key="flp_...",
    base_url="https://www.floopfloop.com",   # override for staging
    timeout=30.0,                             # seconds
    poll_interval=2.0,                        # for wait_for_live / stream
    user_agent="myapp/1.2.3",                 # appended to User-Agent
)

Use as a context manager to close the underlying httpx.Client:

with FloopClient(api_key="...") as floop:
    floop.projects.list()

Releasing (maintainers only)

This package publishes to PyPI via trusted publishing (OIDC) — no long-lived API token is stored in GitHub Actions.

Before the first release, register the trusted publisher at https://pypi.org/manage/project/floopfloop/settings/publishing/ (or, for a brand-new project, the pending-publisher page):

  • PyPI project name: floopfloop
  • Owner: FloopFloopAI
  • Repository name: floop-python-sdk
  • Workflow name: release.yml
  • Environment name: leave blank

After that, ship a release by bumping pyproject.toml + src/floopfloop/_version.py, pushing a py-v<version> tag. The release workflow will build, test, and publish.

License

MIT. See LICENSE.

Related

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

floopfloop-0.1.0a3.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

floopfloop-0.1.0a3-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file floopfloop-0.1.0a3.tar.gz.

File metadata

  • Download URL: floopfloop-0.1.0a3.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for floopfloop-0.1.0a3.tar.gz
Algorithm Hash digest
SHA256 40907299814ca3a09dddc296fb64a9906edc6734aa903123d280a3450bb40803
MD5 f65ad15d37f940e1f35cd21ebe72ecc7
BLAKE2b-256 98d8f0ca74d461ca1d49d59a1693bdb2010a46e5ee96614dc250ac4c99c2cf88

See more details on using hashes here.

Provenance

The following attestation bundles were made for floopfloop-0.1.0a3.tar.gz:

Publisher: release.yml on FloopFloopAI/floop-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file floopfloop-0.1.0a3-py3-none-any.whl.

File metadata

  • Download URL: floopfloop-0.1.0a3-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for floopfloop-0.1.0a3-py3-none-any.whl
Algorithm Hash digest
SHA256 58532dfc3aaa549ba92ac6a907ae4756b55d97ef5863f33f662630f83fa39639
MD5 8c078355ddd4c11c0a45c0d5f27d905e
BLAKE2b-256 aec4fb3634ae11a8c966a13812ab34f4f6129b53a5eadbc01c3213bf80e62c02

See more details on using hashes here.

Provenance

The following attestation bundles were made for floopfloop-0.1.0a3-py3-none-any.whl:

Publisher: release.yml on FloopFloopAI/floop-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page