Skip to main content

formbridge-sdk

Python SDK for FormBridge — async and sync HTTP client for managing form submissions.

Installation

This SDK is not yet published to PyPI. Install it from source:

git clone https://github.com/agentkitai/formbridge.git
pip install ./formbridge/sdk/python

Quick Start (Async)

import asyncio
from formbridge import FormBridgeClient, Actor

async def main():
    async with FormBridgeClient(
        url="http://localhost:3000",
        api_key="your-api-key",
    ) as client:
        # Create a submission with initial fields
        sub = await client.create_submission(
            "vendor-onboarding",
            fields={"company_name": "Acme Corp"},
            actor=Actor(kind="agent", id="agent-1", name="Onboarding Bot"),
        )
        print(f"Created: {sub.submission_id}, state={sub.state}")
        print(f"Missing fields: {sub.missing_fields}")

        # Add more fields (resume_token rotates on each call)
        result = await client.set_fields(
            sub.intake_id,
            sub.submission_id,
            sub.resume_token,
            {"contact_email": "alice@acme.com", "phone": "+1-555-0100"},
        )
        print(f"Updated: state={result.state}, missing={result.missing_fields}")

        # Submit when all fields are filled
        final = await client.submit(
            sub.intake_id,
            sub.submission_id,
            result.resume_token,
        )
        print(f"Submitted: state={final.state}")

        # Retrieve a submission
        fetched = await client.get_submission(sub.intake_id, sub.submission_id)
        print(f"Fields: {fetched.fields}")

asyncio.run(main())

Quick Start (Sync)

from formbridge import FormBridgeClientSync, Actor

with FormBridgeClientSync(api_key="your-api-key") as client:
    sub = client.create_submission(
        "vendor-onboarding",
        fields={"company_name": "Acme Corp"},
        actor=Actor(kind="agent", id="agent-1"),
    )
    print(f"Created: {sub.submission_id}")

Configuration

Parameter Env Var Default
url FORMBRIDGE_URL http://localhost:3000
api_key FORMBRIDGE_API_KEY
timeout FORMBRIDGE_TIMEOUT 10 (seconds)

Error Handling

from formbridge import FormBridgeClient, FormBridgeError

async with FormBridgeClient() as client:
    try:
        sub = await client.get_submission("intake-1", "sub-123")
    except FormBridgeError as e:
        if e.is_connectivity_error:
            print("Server unreachable — degrade gracefully")
        elif e.status_code == 404:
            print("Not found")
        else:
            print(f"API error: {e.error_type}{e}")

Retry Behavior

  • Retries on: 429 (rate limited), 500, 502, 503, 504
  • Does NOT retry on: 400, 401, 403, 404 (client errors)
  • Backoff: 0.5s → 1.0s → 2.0s (exponential)
  • Max retries: 3 (configurable via max_retries)

License

MIT

Download files

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

Source Distribution

formbridge_sdk-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

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

formbridge_sdk-0.1.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file formbridge_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: formbridge_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for formbridge_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2a6df13dccb0925da085c31913a6d0f2c86375b60ad21133aa5d5a19ce512880
MD5 123125f580c1196a36d323682a2fff90
BLAKE2b-256 36f63ecd53bc6e252a24fbadc567a770f8671add87dfbdb668b8572e966c70c2

See more details on using hashes here.

File details

Details for the file formbridge_sdk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: formbridge_sdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for formbridge_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e002bfd674e420180725c4d0d5bfe0a76480fa4d37c9f883a57b1e94e03154b
MD5 04dbcbfdebe42aa20d6ec37cb236aab2
BLAKE2b-256 357ea106d9fd75a095654876b1d1fc61969202eb9c7c225133903287b237c164

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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