{
  "openapi": "3.1.0",
  "info": {
    "title": "Agent Launch Readiness API",
    "version": "0.3.0",
    "summary": "Paid launch readiness and trust audits for agent-payment builders.",
    "description": "A machine-readable paid audit API for builders launching MPP, x402, MCP, and agent-payment services.",
    "contact": {
      "email": "sergo565456@gmail.com"
    },
    "x-guidance": "Call /v1/service-diligence with base_url, goal, depth, and a stable Idempotency-Key. If the server returns 402, pay using the advertised Tempo MPP offer and retry the same request with the same Idempotency-Key. Use GET /v1/reports/{report_id} with the original Idempotency-Key or receipt_id proof to retrieve a paid readiness report."
  },
  "x-discovery": {
    "ownershipProofs": [
      "https://tempo-agent-intel-api.vercel.app",
      "https://tempo-agent-intel-api.vercel.app/llms.txt",
      "https://www.mppscan.com/server/829a2ec0cd95651c49881e21e918a2635f6eea7e9454df284c095821b2f1a893"
    ]
  },
  "x-service-info": {
    "name": "Agent Launch Readiness API",
    "categories": [
      "mpp",
      "x402",
      "readiness",
      "paid-api-audit"
    ],
    "docs_url": "https://tempo-agent-intel-api.vercel.app/openapi.json",
    "llms_url": "https://tempo-agent-intel-api.vercel.app/llms.txt",
    "contact": {
      "email": "sergo565456@gmail.com"
    }
  },
  "externalDocs": {
    "url": "https://tempo-agent-intel-api.vercel.app/llms.txt",
    "description": "Machine-readable service guidance, endpoints, pricing, and readiness-audit retry instructions."
  },
  "servers": [
    {
      "url": "https://tempo-agent-intel-api.vercel.app"
    }
  ],
  "components": {
    "securitySchemes": {
      "reportAccessProof": {
        "type": "apiKey",
        "in": "header",
        "name": "Idempotency-Key",
        "description": "Original paid report Idempotency-Key. A receipt_id query parameter is also accepted for paid report retrieval."
      }
    }
  },
  "paths": {
    "/health": {
      "get": {
        "operationId": "healthCheck",
        "summary": "Check service health.",
        "security": [],
        "responses": {
          "200": {
            "description": "Service is healthy.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "service": {
                      "type": "string"
                    },
                    "payment_mode": {
                      "type": "string"
                    },
                    "payment_rails": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "getOpenApi",
        "summary": "Fetch OpenAPI discovery.",
        "security": [],
        "responses": {
          "200": {
            "description": "OpenAPI document."
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "getLlmsText",
        "summary": "Machine-readable service guidance for LLM agents.",
        "security": [],
        "responses": {
          "200": {
            "description": "Machine-readable service guidance for LLM agents.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/agent-card.json": {
      "get": {
        "summary": "Machine-readable agent card.",
        "security": [],
        "responses": {
          "200": {
            "description": "Machine-readable agent card.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/x402": {
      "get": {
        "summary": "x402-compatible discovery document.",
        "security": [],
        "responses": {
          "200": {
            "description": "x402-compatible discovery document.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/reports/{report_id}": {
      "get": {
        "operationId": "getReport",
        "summary": "Fetch a stored report by id.",
        "security": [
          {
            "reportAccessProof": []
          }
        ],
        "parameters": [
          {
            "name": "report_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Live payment modes require either this original report idempotency key or receipt_id proof."
          },
          {
            "name": "receipt_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Live payment modes require either this payment receipt id or the original Idempotency-Key."
          }
        ],
        "responses": {
          "200": {
            "description": "Stored report record.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "report": {
                      "type": "object",
                      "required": [
                        "report_id",
                        "report_type",
                        "target",
                        "question",
                        "summary",
                        "confidence",
                        "market_signals",
                        "opportunities",
                        "risks",
                        "competitors",
                        "recommended_actions",
                        "sources",
                        "cost_estimate",
                        "payment",
                        "generated_at"
                      ],
                      "properties": {
                        "report_id": {
                          "type": "string"
                        },
                        "report_type": {
                          "type": "string"
                        },
                        "target": {
                          "type": "string"
                        },
                        "question": {
                          "type": "string"
                        },
                        "summary": {
                          "type": "string"
                        },
                        "confidence": {
                          "type": "string",
                          "enum": [
                            "low",
                            "medium",
                            "high"
                          ]
                        },
                        "market_signals": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "opportunities": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "risks": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "competitors": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "recommended_actions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object"
                          }
                        },
                        "cost_estimate": {
                          "type": "object"
                        },
                        "payment": {
                          "type": "object"
                        },
                        "generated_at": {
                          "type": "string"
                        }
                      }
                    },
                    "metadata": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Report access proof is required in live payment modes."
          },
          "404": {
            "description": "Report not found."
          }
        }
      }
    },
    "/v1/analyze": {
      "post": {
        "operationId": "createOpportunityReport",
        "summary": "Create a paid opportunity report.",
        "description": "Evaluates whether a paid agent, MPP, x402, Venice, or MCP service idea is worth building. In local mock mode, retry with X-Mock-Payment: paid.",
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          },
          "protocols": [
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "10000",
              "amount_usd": "0.01",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "receiver": "0xf2479a50952Cb3D85A569Cf3F804A2089BbA97d2",
              "network": "tempo",
              "unitType": "report",
              "description": "Tempo MPP charge for an Agent Launch Readiness report."
            }
          ]
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recommended. Reuse the same key when retrying after payment to avoid duplicate report records."
          },
          {
            "name": "X-Mock-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "paid"
              ]
            },
            "description": "Local mock mode only. Use `paid` to simulate a paid retry."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "target",
                  "question"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Project, service, market, wallet, protocol, or URL to analyze.",
                    "examples": [
                      "Tempo",
                      "https://mppscan.com",
                      "auto.exchange"
                    ]
                  },
                  "question": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1200,
                    "description": "Decision question the report should answer.",
                    "examples": [
                      "Is this niche worth building a paid agent for?"
                    ]
                  },
                  "depth": {
                    "type": "string",
                    "enum": [
                      "quick",
                      "standard",
                      "deep"
                    ],
                    "default": "quick"
                  },
                  "report_type": {
                    "type": "string",
                    "enum": [
                      "opportunity_report"
                    ],
                    "default": "opportunity_report",
                    "description": "Optional for typed endpoints. The route sets this value."
                  },
                  "base_url": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Base URL to check. Alias for target on service-diligence readiness requests.",
                    "examples": [
                      "https://api.example.com"
                    ]
                  },
                  "goal": {
                    "type": "string",
                    "enum": [
                      "mppscan_listing",
                      "agentcash_discovery",
                      "x402_discovery",
                      "mcp_paid_tool",
                      "general_paid_api"
                    ],
                    "default": "mppscan_listing",
                    "description": "Readiness goal for service-diligence checks."
                  },
                  "runtime_probe": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to perform safe unpaid runtime 402 probes."
                  },
                  "max_probe_operations": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10,
                    "default": 3,
                    "description": "Maximum paid operations to runtime probe."
                  },
                  "output_format": {
                    "type": "string",
                    "enum": [
                      "json"
                    ],
                    "default": "json"
                  },
                  "constraints": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Optional constraints such as region, budget, target customer, or launch timeline."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Structured report generated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "report_id",
                    "report_type",
                    "target",
                    "question",
                    "summary",
                    "confidence",
                    "market_signals",
                    "opportunities",
                    "risks",
                    "competitors",
                    "recommended_actions",
                    "sources",
                    "cost_estimate",
                    "payment",
                    "generated_at"
                  ],
                  "properties": {
                    "report_id": {
                      "type": "string"
                    },
                    "report_type": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    },
                    "question": {
                      "type": "string"
                    },
                    "summary": {
                      "type": "string"
                    },
                    "confidence": {
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high"
                      ]
                    },
                    "market_signals": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "opportunities": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "risks": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "competitors": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "recommended_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sources": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "cost_estimate": {
                      "type": "object"
                    },
                    "payment": {
                      "type": "object"
                    },
                    "generated_at": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request."
          },
          "402": {
            "description": "Payment required before report generation."
          },
          "409": {
            "description": "Idempotency key was reused with a different request body."
          },
          "501": {
            "description": "Selected live payment rail is scaffolded but not configured."
          }
        }
      }
    },
    "/v1/launch-readiness": {
      "post": {
        "operationId": "createLaunchReadinessReport",
        "summary": "Create a paid launch readiness report.",
        "description": "Checks whether a paid API or MCP-style service is ready for MPP/x402 discovery and listing. Use /v1/service-diligence for URL-based readiness checks. In local mock mode, retry with X-Mock-Payment: paid.",
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          },
          "protocols": [
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "10000",
              "amount_usd": "0.01",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "receiver": "0xf2479a50952Cb3D85A569Cf3F804A2089BbA97d2",
              "network": "tempo",
              "unitType": "report",
              "description": "Tempo MPP charge for an Agent Launch Readiness report."
            }
          ]
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recommended. Reuse the same key when retrying after payment to avoid duplicate report records."
          },
          {
            "name": "X-Mock-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "paid"
              ]
            },
            "description": "Local mock mode only. Use `paid` to simulate a paid retry."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "target",
                  "question"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Project, service, market, wallet, protocol, or URL to analyze.",
                    "examples": [
                      "Tempo",
                      "https://mppscan.com",
                      "auto.exchange"
                    ]
                  },
                  "question": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1200,
                    "description": "Decision question the report should answer.",
                    "examples": [
                      "Is this niche worth building a paid agent for?"
                    ]
                  },
                  "depth": {
                    "type": "string",
                    "enum": [
                      "quick",
                      "standard",
                      "deep"
                    ],
                    "default": "quick"
                  },
                  "report_type": {
                    "type": "string",
                    "enum": [
                      "launch_readiness_report"
                    ],
                    "default": "launch_readiness_report",
                    "description": "Optional for typed endpoints. The route sets this value."
                  },
                  "base_url": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Base URL to check. Alias for target on service-diligence readiness requests.",
                    "examples": [
                      "https://api.example.com"
                    ]
                  },
                  "goal": {
                    "type": "string",
                    "enum": [
                      "mppscan_listing",
                      "agentcash_discovery",
                      "x402_discovery",
                      "mcp_paid_tool",
                      "general_paid_api"
                    ],
                    "default": "mppscan_listing",
                    "description": "Readiness goal for service-diligence checks."
                  },
                  "runtime_probe": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to perform safe unpaid runtime 402 probes."
                  },
                  "max_probe_operations": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10,
                    "default": 3,
                    "description": "Maximum paid operations to runtime probe."
                  },
                  "output_format": {
                    "type": "string",
                    "enum": [
                      "json"
                    ],
                    "default": "json"
                  },
                  "constraints": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Optional constraints such as region, budget, target customer, or launch timeline."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Structured report generated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "report_id",
                    "report_type",
                    "target",
                    "question",
                    "summary",
                    "confidence",
                    "market_signals",
                    "opportunities",
                    "risks",
                    "competitors",
                    "recommended_actions",
                    "sources",
                    "cost_estimate",
                    "payment",
                    "generated_at"
                  ],
                  "properties": {
                    "report_id": {
                      "type": "string"
                    },
                    "report_type": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    },
                    "question": {
                      "type": "string"
                    },
                    "summary": {
                      "type": "string"
                    },
                    "confidence": {
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high"
                      ]
                    },
                    "market_signals": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "opportunities": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "risks": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "competitors": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "recommended_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sources": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "cost_estimate": {
                      "type": "object"
                    },
                    "payment": {
                      "type": "object"
                    },
                    "generated_at": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request."
          },
          "402": {
            "description": "Payment required before report generation."
          },
          "409": {
            "description": "Idempotency key was reused with a different request body."
          },
          "501": {
            "description": "Selected live payment rail is scaffolded but not configured."
          }
        }
      }
    },
    "/v1/service-diligence": {
      "post": {
        "operationId": "createServiceDiligenceReport",
        "summary": "Create a paid service launch-readiness due diligence report.",
        "description": "Audits an existing paid MPP/x402 service for discovery, 402 behavior, payment metadata, receipts, idempotency, and listing readiness before agents depend on it. In local mock mode, retry with X-Mock-Payment: paid.",
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          },
          "protocols": [
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "10000",
              "amount_usd": "0.01",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "receiver": "0xf2479a50952Cb3D85A569Cf3F804A2089BbA97d2",
              "network": "tempo",
              "unitType": "report",
              "description": "Tempo MPP charge for an Agent Launch Readiness report."
            }
          ]
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recommended. Reuse the same key when retrying after payment to avoid duplicate report records."
          },
          {
            "name": "X-Mock-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "paid"
              ]
            },
            "description": "Local mock mode only. Use `paid` to simulate a paid retry."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "base_url"
                ],
                "properties": {
                  "base_url": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Base URL to check. Alias for target on service-diligence readiness requests.",
                    "examples": [
                      "https://api.example.com"
                    ]
                  },
                  "target": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Optional alias for base_url.",
                    "examples": [
                      "https://api.example.com"
                    ]
                  },
                  "question": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1200,
                    "description": "Optional custom due-diligence question. A readiness-focused question is generated when omitted."
                  },
                  "goal": {
                    "type": "string",
                    "enum": [
                      "mppscan_listing",
                      "agentcash_discovery",
                      "x402_discovery",
                      "mcp_paid_tool",
                      "general_paid_api"
                    ],
                    "default": "mppscan_listing",
                    "description": "Readiness goal for service-diligence checks."
                  },
                  "depth": {
                    "type": "string",
                    "enum": [
                      "quick",
                      "standard",
                      "deep"
                    ],
                    "default": "quick"
                  },
                  "runtime_probe": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to perform safe unpaid runtime 402 probes."
                  },
                  "max_probe_operations": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10,
                    "default": 3,
                    "description": "Maximum paid operations to runtime probe."
                  },
                  "output_format": {
                    "type": "string",
                    "enum": [
                      "json"
                    ],
                    "default": "json"
                  },
                  "constraints": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Optional constraints such as region, budget, target customer, or launch timeline."
                  },
                  "report_type": {
                    "type": "string",
                    "enum": [
                      "service_diligence_report"
                    ],
                    "default": "service_diligence_report",
                    "description": "Optional for typed endpoints. The route sets this value."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Structured report generated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "report_id",
                    "report_type",
                    "target",
                    "question",
                    "summary",
                    "confidence",
                    "market_signals",
                    "opportunities",
                    "risks",
                    "competitors",
                    "recommended_actions",
                    "sources",
                    "cost_estimate",
                    "payment",
                    "generated_at"
                  ],
                  "properties": {
                    "report_id": {
                      "type": "string"
                    },
                    "report_type": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    },
                    "question": {
                      "type": "string"
                    },
                    "summary": {
                      "type": "string"
                    },
                    "confidence": {
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high"
                      ]
                    },
                    "market_signals": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "opportunities": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "risks": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "competitors": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "recommended_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sources": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "cost_estimate": {
                      "type": "object"
                    },
                    "payment": {
                      "type": "object"
                    },
                    "generated_at": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request."
          },
          "402": {
            "description": "Payment required before report generation."
          },
          "409": {
            "description": "Idempotency key was reused with a different request body."
          },
          "501": {
            "description": "Selected live payment rail is scaffolded but not configured."
          }
        }
      }
    },
    "/v1/ecosystem-fit": {
      "post": {
        "operationId": "createEcosystemFitReport",
        "summary": "Create a paid ecosystem fit report.",
        "description": "Compares Tempo MPP, Base x402, Venice, MCP, and agent directories for a launch target. In local mock mode, retry with X-Mock-Payment: paid.",
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          },
          "protocols": [
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "0x20c000000000000000000000b9537d11c60e8b50"
              }
            }
          ],
          "offers": [
            {
              "method": "tempo",
              "intent": "charge",
              "amount": "10000",
              "amount_usd": "0.01",
              "currency": "0x20c000000000000000000000b9537d11c60e8b50",
              "receiver": "0xf2479a50952Cb3D85A569Cf3F804A2089BbA97d2",
              "network": "tempo",
              "unitType": "report",
              "description": "Tempo MPP charge for an Agent Launch Readiness report."
            }
          ]
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recommended. Reuse the same key when retrying after payment to avoid duplicate report records."
          },
          {
            "name": "X-Mock-Payment",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "paid"
              ]
            },
            "description": "Local mock mode only. Use `paid` to simulate a paid retry."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "target",
                  "question"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Project, service, market, wallet, protocol, or URL to analyze.",
                    "examples": [
                      "Tempo",
                      "https://mppscan.com",
                      "auto.exchange"
                    ]
                  },
                  "question": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1200,
                    "description": "Decision question the report should answer.",
                    "examples": [
                      "Is this niche worth building a paid agent for?"
                    ]
                  },
                  "depth": {
                    "type": "string",
                    "enum": [
                      "quick",
                      "standard",
                      "deep"
                    ],
                    "default": "quick"
                  },
                  "report_type": {
                    "type": "string",
                    "enum": [
                      "ecosystem_fit_report"
                    ],
                    "default": "ecosystem_fit_report",
                    "description": "Optional for typed endpoints. The route sets this value."
                  },
                  "base_url": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240,
                    "description": "Base URL to check. Alias for target on service-diligence readiness requests.",
                    "examples": [
                      "https://api.example.com"
                    ]
                  },
                  "goal": {
                    "type": "string",
                    "enum": [
                      "mppscan_listing",
                      "agentcash_discovery",
                      "x402_discovery",
                      "mcp_paid_tool",
                      "general_paid_api"
                    ],
                    "default": "mppscan_listing",
                    "description": "Readiness goal for service-diligence checks."
                  },
                  "runtime_probe": {
                    "type": "boolean",
                    "default": true,
                    "description": "Whether to perform safe unpaid runtime 402 probes."
                  },
                  "max_probe_operations": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10,
                    "default": 3,
                    "description": "Maximum paid operations to runtime probe."
                  },
                  "output_format": {
                    "type": "string",
                    "enum": [
                      "json"
                    ],
                    "default": "json"
                  },
                  "constraints": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Optional constraints such as region, budget, target customer, or launch timeline."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Structured report generated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "report_id",
                    "report_type",
                    "target",
                    "question",
                    "summary",
                    "confidence",
                    "market_signals",
                    "opportunities",
                    "risks",
                    "competitors",
                    "recommended_actions",
                    "sources",
                    "cost_estimate",
                    "payment",
                    "generated_at"
                  ],
                  "properties": {
                    "report_id": {
                      "type": "string"
                    },
                    "report_type": {
                      "type": "string"
                    },
                    "target": {
                      "type": "string"
                    },
                    "question": {
                      "type": "string"
                    },
                    "summary": {
                      "type": "string"
                    },
                    "confidence": {
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high"
                      ]
                    },
                    "market_signals": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "opportunities": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "risks": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "competitors": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "recommended_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sources": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "cost_estimate": {
                      "type": "object"
                    },
                    "payment": {
                      "type": "object"
                    },
                    "generated_at": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request."
          },
          "402": {
            "description": "Payment required before report generation."
          },
          "409": {
            "description": "Idempotency key was reused with a different request body."
          },
          "501": {
            "description": "Selected live payment rail is scaffolded but not configured."
          }
        }
      }
    }
  }
}