Skip to main content

Manifest SDK Architecture

Manifest for Python

The API resilience layer for your Python apps.

CI PyPI version PyPI downloads

What is Manifest

Manifest is the API resilience layer for your apps and agents. It works with every API they call: external services, your internal APIs and MCP tools.

  • 🗺️ See every API your app depends on, and how reliable each one is.
  • 🎯 Repair failed API requests on the fly, so your app keeps working.
  • 🛠️ Know what to fix in your code, with a prompt for your coding agent.

How it works

How the SDK works: every call Manifest does not heal is recorded in the background as metadata (method, URL, status, timing, no body); a failure Manifest can heal is sent with its error, patched, and retried once, returning a 200 OK

Every call your app makes is reported to Manifest as metadata only (method, URL without its query string, status and timing), in the background. A failure Manifest can heal is sent in full, so it can be repaired. What is sent.

Prerequisites

Get started

Start with your agent

"Install Manifest in this app: https://dashboard.manifest.build/prompt-python.md"

Read the prompt →

The prompt finds your entry point and stops to let you paste your key.

Start with code

  1. Create a project in your Manifest dashboard and copy its project key.

  2. Install the SDK:

    pip install mnfst
    
  3. Set your key in the environment of your app, or in the project's .env file:

    export MNFST_KEY='your-project-key'
    
  4. Run your app through the CLI, so Manifest loads before the first request:

    mnfst run uvicorn main:app
    

    mnfst run goes in front of any start command, such as mnfst run gunicorn app:app or mnfst run celery -A tasks worker. Where there is no command to prefix (AWS Lambda, a notebook, or a start command owned by a host dashboard), call manifest() yourself, once at startup, before your first request:

    from mnfst import manifest
    
    manifest()  # Once, at startup.
    # Keep making your API calls as usual.
    
  5. Check the install at any time with mnfst doctor.

Try it

Send a request that fails with a 4xx error, such as a value the API rejects:

import httpx
from mnfst import manifest

manifest(on_heal=lambda e: print(f"[manifest] {e.heal_status} {e.replay_status_code}"))

res = httpx.post(
    "https://api.example.com/orders",
    json={"limit": 500},  # rejected by the API
)
print(res.status_code)

The failed request appears in your Manifest dashboard, grouped with others like it in an issue. Once Manifest has a patch for that error, the next request that fails the same way is repaired and retried: on_heal reports patched or unverified with the retry's status code, and your app receives the answer to the retry.

Choosing which calls reach Manifest

Keep calls out of Manifest entirely: they are neither repaired nor tracked, and nothing about them leaves your app. Each entry is a domain or a domain with a path:

MNFST_ALLOWLIST=stripe.com                       # only Stripe
MNFST_ALLOWLIST=stripe.com/v1/payment_intents    # only this Stripe endpoint
MNFST_DENYLIST=stripe.com/v1/charges,internal.example.com   # never these
  • A domain covers its subdomains, with or without a path: stripe.com and stripe.com/v1/charges both match api.stripe.com.
  • A path matches whole segments: /v1/charges covers /v1/charges/ch_123, not /v1/charges_export. Paths are case-sensitive.
  • A scheme, port, query or fragment in an entry is ignored. * in a path is not supported yet: the entry is skipped with a warning, and an allowlist made only of skipped entries lets nothing through.
  • The denylist wins over the allowlist. With no allowlist, every call is eligible.

Or in code: manifest(denylist=["stripe.com/v1/charges"]). An option overrides its environment variable. With mnfst run, set the environment variables: a later manifest() call cannot change the configuration.

More

Documentation · Configuration, limits & development · API contract · Node.js SDK · PHP SDK · Website

Metadata

Release files for mnfst 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mnfst 1.3.0
File Size Uploaded
mnfst-1.3.0.tar.gz 255.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mnfst 1.3.0
File Interpreter ABI Platform
mnfst-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 293.5 kB

Release files / mnfst-1.3.0.tar.gz

Download URL mnfst-1.3.0.tar.gz
Size 255.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5597f1400b321a6454200c909172b522ef1bd89ff05bc664a667f0e961b80f63
BLAKE2b-256 checksum
How to use checksums
bcdc387788cfa4234fc297738a8117489e70ba69d87d39d5dfc051826aa099f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / mnfst-1.3.0-py3-none-any.whl

Download URL mnfst-1.3.0-py3-none-any.whl
Size 37.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
64436ea459d0d9f093a418000747b1cfd8045bbe3ed0f92be448531b5f369bae
BLAKE2b-256 checksum
How to use checksums
df2de01543466440bfa9a313e2447954ef6f4ac011464a856449b31347bd8570
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page