{
  "name": "Preuve Agent API",
  "description": "Startup idea validation for AI agents and scripts: a 0-100 viability score, competitors, market sizing and source-linked evidence, from 60+ live sources.",
  "version": "2.0",
  "baseUrl": "https://preuve.ai/api/agent",
  "openapi": {
    "json": "https://preuve.ai/openapi.json",
    "yaml": "https://preuve.ai/openapi.yaml"
  },
  "apiCatalog": "https://preuve.ai/.well-known/api-catalog",
  "docs": {
    "index": "https://docs.preuve.ai/",
    "llmsTxt": "https://docs.preuve.ai/llms.txt",
    "authentication": "https://docs.preuve.ai/authentication",
    "errors": "https://docs.preuve.ai/errors",
    "forAgents": "https://docs.preuve.ai/for-ai-agents.md",
    "agentSkill": "https://docs.preuve.ai/agent-skill"
  },
  "authentication": {
    "type": "apiKey",
    "header": "x-preuve-key",
    "keyPrefix": "prv_",
    "selfServe": "https://preuve.ai/app?settings=apiKeys",
    "oauth": "https://mcp.preuve.ai/mcp",
    "note": "One header, no signing. Connecting the MCP server from claude.ai mints a key on a free account by OAuth; creating one by hand is self-serve on a paid plan or in an active Consultant or Agency workspace."
  },
  "pricing": {
    "starterScan": "free",
    "deepScan": "consumes the account’s existing paid quota; no separate API billing",
    "sandbox": "scanType \"starter\" is the sandbox: it never spends money and returns a real report"
  },
  "rateLimits": {
    "runCreation": "10 per minute per account",
    "concurrency": "3 starter and 2 deep analyses in flight per account, for standalone runs only; batch items are exempt and bounded by the 5-item batch cap instead",
    "daily": "rolling 24h creation ceiling per account (429 DAILY_LIMIT_REACHED, resetAt in the body)",
    "retryAfter": "429 RATE_LIMITED carries a Retry-After header in seconds"
  },
  "errors": {
    "envelope": {
      "error": "Human-readable message",
      "code": "MACHINE_READABLE_CODE"
    },
    "note": "Every error, unknown routes included, is JSON. Branch on code, never on error.",
    "reference": "https://docs.preuve.ai/errors"
  },
  "endpoints": [
    {
      "method": "POST",
      "path": "/api/agent/analyses",
      "operationId": "createAnalysis"
    },
    {
      "method": "GET",
      "path": "/api/agent/analyses/{id}",
      "operationId": "getAnalysis"
    },
    {
      "method": "POST",
      "path": "/api/agent/analyses/{id}/enrich",
      "operationId": "enrichAnalysis"
    },
    {
      "method": "GET",
      "path": "/api/agent/analyses/{id}/export",
      "operationId": "exportAnalysis"
    },
    {
      "method": "POST",
      "path": "/api/agent/analysis-batches",
      "operationId": "createBatch"
    },
    {
      "method": "GET",
      "path": "/api/agent/analysis-batches/{batchId}",
      "operationId": "getBatch"
    },
    {
      "method": "GET",
      "path": "/api/agent/analysis-batches/{batchId}/export",
      "operationId": "exportBatch"
    },
    {
      "method": "POST",
      "path": "/api/agent/tools/idea-generator",
      "operationId": "generateIdeas"
    },
    {
      "method": "GET",
      "path": "/api/agent/agency",
      "operationId": "getAgency"
    },
    {
      "method": "POST",
      "path": "/api/agent/agency/analyses",
      "operationId": "createAgencyAnalysis"
    },
    {
      "method": "GET",
      "path": "/api/agent/agency/reports",
      "operationId": "listAgencyReports"
    },
    {
      "method": "GET",
      "path": "/api/agent/agency/reports/{id}",
      "operationId": "getAgencyReport"
    },
    {
      "method": "GET",
      "path": "/api/agent/agency/reports/{id}/export",
      "operationId": "exportAgencyReport"
    }
  ],
  "mcp": {
    "url": "https://mcp.preuve.ai/mcp",
    "transport": "streamable-http",
    "connectorsDirectory": "https://claude.ai/directory/preuve-ai",
    "overview": "https://preuve.ai/mcp"
  }
}