# Preuve AI Developers > Agent API and MCP server documentation for Preuve AI - programmatic startup idea validation. ## Docs - [Enrich an analysis](https://docs.preuve.ai/api-reference/analyses/enrich-an-analysis.md): Idempotently generates the missing core export sections for a COMPLETED run. Optionally starts deep-only modules via body.modules (one successful generation per module per report). founderFit requires founderProfile and runs inline; the other modules run async - poll get. Partial failures return HTT… - [Export an analysis (ideas-json)](https://docs.preuve.ai/api-reference/analyses/export-an-analysis-ideas-json.md): Structured JSON export (schemaVersion 2) for one COMPLETED, export-ready analysis. Deep runs include full sections, pivots, citations, and generated module payloads. - [Poll an analysis](https://docs.preuve.ai/api-reference/analyses/poll-an-analysis.md): Returns run status, readyForExport, enrichment progress, per-module statuses (deep runs), and report/share URLs. Accepts the run id or the report id. Does not return the report payload - use export. - [Start an analysis](https://docs.preuve.ai/api-reference/analyses/start-an-analysis.md): Create one analysis run. Async - poll with GET /api/agent/analyses/{id}. scanType is required and explicit: "free" costs nothing, "deep" consumes paid account quota. clientRunId is your idempotency key: re-POSTing the same value replays the existing run. - [Export a batch (ideas-json)](https://docs.preuve.ai/api-reference/batches/export-a-batch-ideas-json.md): Structured export for a batch. Includes only completed, export-ready items; every skipped item is listed in omittedItems with a reason. A single exportedAt is pinned per export so the same batch state always serializes identically. - [Poll a batch](https://docs.preuve.ai/api-reference/batches/poll-a-batch.md) - [Start a batch](https://docs.preuve.ai/api-reference/batches/start-a-batch.md): Create up to 10 analysis runs in one batch. Idempotent on the batch clientRunId. Each item needs its own unique clientRunId and explicit scanType (mix free and deep intentionally). - [Introduction](https://docs.preuve.ai/api-reference/introduction.md): Seven endpoints: create, poll, enrich, export - for single runs and batches. - [Authentication](https://docs.preuve.ai/authentication.md): Every request is HMAC-SHA256 signed with your key pair. No bearer tokens, no sessions. - [Errors](https://docs.preuve.ai/errors.md): Every error is a stable JSON envelope with a machine-readable code. - [Overview](https://docs.preuve.ai/index.md): Validate startup ideas programmatically. The Preuve Agent API lets CLIs, agents, and automations run full viability analyses and pull structured JSON. - [MCP Server](https://docs.preuve.ai/mcp.md): Use Preuve from Claude, Cursor, or any MCP client. Seven tools, stdio transport, two commands to set up. - [Deep Modules](https://docs.preuve.ai/modules.md): Opt-in analysis modules on paid deep runs: Proof of Demand, Founder Fit, Playbook, and Trends. - [Quickstart](https://docs.preuve.ai/quickstart.md): Run your first analysis in five minutes. - [Quotas and Billing](https://docs.preuve.ai/quotas-and-billing.md): The API consumes your existing Preuve account quotas. No separate API billing. - [Scans and Enrichment](https://docs.preuve.ai/scans-and-enrichment.md): Free vs deep scans, the async run lifecycle, and what the ideas-json export contains. ## OpenAPI Specs - [openapi](https://docs.preuve.ai/api-reference/openapi.yaml)