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

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.0a2.tar.gz (16.0 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.0a2-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: floopfloop-0.1.0a2.tar.gz
  • Upload date:
  • Size: 16.0 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.0a2.tar.gz
Algorithm Hash digest
SHA256 93f80e56ccf3180fea8fc38f5647ab5a81703e00257c3c4603140a56bbe3b965
MD5 2606a5426e0b1900ba37560d5ed642c3
BLAKE2b-256 9857475b43b6b48a3e6be3279915e2b96f0fb9e5ca7aeba8c9a134add2ec72c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for floopfloop-0.1.0a2.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.0a2-py3-none-any.whl.

File metadata

  • Download URL: floopfloop-0.1.0a2-py3-none-any.whl
  • Upload date:
  • Size: 18.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.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 c12d008adbd23f1b13e8130b78b9e0c494c0933f3c566370d0109786507d2041
MD5 e912ccdd4174273455aa089eb2b99a2e
BLAKE2b-256 b377d537f24bb251bc107a95a3434badd93166c458103d0b1a793aba6c30a0e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for floopfloop-0.1.0a2-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