Skip to main content

Python SDK for the Manifest API — structured action manifests for AI agents

Project description

manifest-api

Stop guessing selectors. Manifest tells your agent what's clickable, fillable, and submittable on any page.

Python SDK for the Manifest API — extracts structured action manifests from web pages so AI agents know what they can do, not just what's on screen.

Raw browser access Content extraction Manifest
Gives agents a browser
Returns page content
Returns available actions
Required fields, input types
Survives UI redesigns

Install

pip install manifest-api

Quickstart

Sync

from manifest_api import ManifestClient

client = ManifestClient(api_key="your-key")  # or set MANIFEST_API_KEY env var
manifest = client.get("https://example.com")

print(manifest.current_page_state)
print(manifest.actions)

# Convenience helpers
action = manifest.action("submit-form")
inputs = manifest.actions_of_type("input")
required = manifest.required_actions

Async

import asyncio
from manifest_api import AsyncManifestClient

async def main():
    async with AsyncManifestClient(api_key="your-key") as client:
        manifest = await client.get("https://example.com")
        print(manifest.current_page_state)

asyncio.run(main())

LangChain

pip install "manifest-api[langchain]"
from manifest_api.integrations.langchain import create_manifest_tool

tool = create_manifest_tool()  # reads MANIFEST_API_KEY from env
# or: create_manifest_tool(api_key="...")

# use with an agent, e.g.:
from langchain.agents import create_agent
agent = create_agent(model=..., tools=[tool])

create_manifest_tool wraps AsyncManifestClient as a get_manifest(url) StructuredTool — the API key is bound at creation time, so the LLM never sees it.

All methods

# Both ManifestClient and AsyncManifestClient expose:
manifest = client.get("https://example.com")   # POST /manifest → Manifest
health   = client.health()                      # GET  /health → dict
valid    = client.session_valid()               # GET  /session-status → bool

Manifest helpers

manifest.action("id")              # → Action | None
manifest.actions_of_type("input")  # → list[Action]
manifest.required_actions          # → list[Action]

Action types

button · input · textarea · select · checkbox · radio · other

Error handling

from manifest_api import AuthenticationError, RateLimitError, APIError

try:
    manifest = client.get("https://example.com")
except AuthenticationError:
    print("Check your API key")
except RateLimitError:
    print("Slow down — rate limit hit")
except APIError as e:
    print(f"Server error {e.status_code}")

Docs

https://omfang.io/docs

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

manifest_api-0.1.2.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

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

manifest_api-0.1.2-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file manifest_api-0.1.2.tar.gz.

File metadata

  • Download URL: manifest_api-0.1.2.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for manifest_api-0.1.2.tar.gz
Algorithm Hash digest
SHA256 37e6e7ace18fc0d8fa67a640072782d5517b9e14440e07824002bf7ac4dd49a9
MD5 2f19cc705bbd4c7963946e24c2033fc2
BLAKE2b-256 8d40e509b8fd4ab6151649316e9966c33230fc4614f463be1f79a5e125204943

See more details on using hashes here.

File details

Details for the file manifest_api-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: manifest_api-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for manifest_api-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 baa886b81b23973e5c21db67e37ff7f93a01683b44234a18092959fd60350991
MD5 46780154b773ca285e618e4440e34cf7
BLAKE2b-256 786e79127c047c43c72da9e845ca73c106a225aa97d4d0ca9b058c1229130290

See more details on using hashes here.

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