Skip to main content

Python SDK for SpatialFlow - Real-time geospatial automation platform

Project description

SpatialFlow Python SDK

The official Python SDK for SpatialFlow - a real-time geospatial automation platform.

Installation

pip install spatialflow

Development Installation

cd sdks/python
pip install -e ".[dev]"

Quick Start

import asyncio
from spatialflow import SpatialFlow

async def main():
    async with SpatialFlow(api_key="sf_xxx") as client:
        # List geofences
        response = await client.geofences.list()
        for geofence in response.geofences:
            print(f"{geofence.name}: {geofence.id}")

        # Get workspace usage
        usage = await client.workspaces.get_usage()
        print(f"Event units: {usage.event_units}")

asyncio.run(main())

Supported Resources

Resource Methods Description
Geofences CRUD, upload, bulk Manage geofence boundaries
Workflows CRUD, execute, monitor, versioning Automation workflows
Webhooks CRUD, deliveries, DLQ, metrics Webhook endpoints and delivery tracking
Devices CRUD, location updates Device management
Account profile, API keys, metrics, onboarding User account management
Workspaces get, update, usage Workspace settings and usage metrics
Locations ingest, batch, stats Public location ingestion API
Integrations CRUD, test Third-party service connections
Storage presigned URLs, files File upload and management

Features

  • Fully async with aiohttp
  • Automatic retry with exponential backoff
  • Pagination helpers
  • Webhook signature verification
  • Workflow builders for common patterns
  • File upload with streaming (memory efficient)

Error Handling

from spatialflow import SpatialFlow, NotFoundError, ValidationError

async with SpatialFlow(api_key="sf_xxx") as client:
    try:
        geofence = await client.geofences.get("invalid-id")
    except NotFoundError as e:
        print(f"Geofence not found: {e}")
    except ValidationError as e:
        print(f"Invalid request: {e.errors}")

Raw API Access

For advanced use cases, access the generated API clients directly:

async with SpatialFlow(api_key="sf_xxx") as client:
    # Use raw generated API
    response = await client.raw.geofences.apps_geofences_api_list_geofences()

Available via client.raw:

  • geofences, workflows, webhooks, devices, storage, locations, integrations, workspaces, account (also wrapped)
  • authentication, admin, billing, subscriptions, tiles (raw only)

Alpha Notice: This SDK is in alpha (v0.2.0). Some generated APIs (email, system, gpx_simulator, public, default, e2e_test) are not yet exposed. Use the generated client directly for those.

Documentation

Full documentation: docs.spatialflow.io/sdks/python

License

MIT

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

spatialflow-1.1.0.tar.gz (233.7 kB view details)

Uploaded Source

Built Distribution

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

spatialflow-1.1.0-py3-none-any.whl (638.4 kB view details)

Uploaded Python 3

File details

Details for the file spatialflow-1.1.0.tar.gz.

File metadata

  • Download URL: spatialflow-1.1.0.tar.gz
  • Upload date:
  • Size: 233.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spatialflow-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9f83e73b8d279c7822a058c83de1f7ae621f617eb2e8e375e97d136005712caa
MD5 efd1580eaea15980c12b8c285a8d6bbc
BLAKE2b-256 174217e757a27e58cd091c7bfb36e3cbc0c3aed65f60729d62fe08bbd63b695e

See more details on using hashes here.

Provenance

The following attestation bundles were made for spatialflow-1.1.0.tar.gz:

Publisher: publish.yml on spatialflow-io/spatialflow-python

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

File details

Details for the file spatialflow-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: spatialflow-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 638.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spatialflow-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 911e4058d659a674d5a17fcb197d53a73c83ba6985182605dafea6abd972d43f
MD5 da81ed9a7314b8eeff5fbcd3b9bb761a
BLAKE2b-256 c28cec3da469f0fd73cee78e54c684f5f401d4d18d1e281c4ae03ba0c69250a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for spatialflow-1.1.0-py3-none-any.whl:

Publisher: publish.yml on spatialflow-io/spatialflow-python

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