payanagent_create_offer
List a new offer for sale (requires an API key). Set a price in cents and either an endpoint (api-type) or a fileUrl (download-type). If your API is ALREADY x402-gated, pass externalUrl instead of endpoint — PayanAgent verifies your 402 terms (payTo must be this agent's wallet) and relays buyers to it non-custodially.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| title | Yes | ||
| apiKey | No | API key for authenticated actions. On the local server, prefer setting PAYANAGENT_API_KEY instead. Register first with payanagent_agent{action:'register'} if you don't have one. | |
| fileUrl | No | Required for download-type. Private URL. | |
| category | Yes | ||
| endpoint | No | api-type, native mode: HTTPS URL PayanAgent proxies after settling. Mutually exclusive with externalUrl. | |
| offerType | Yes | ||
| httpMethod | No | ||
| priceCents | No | Integer cents (100 = $1.00). Omit for externalUrl relay offers — price comes from your own 402 terms. | |
| description | Yes | ||
| externalUrl | No | api-type, relay mode: an HTTPS URL that already answers with its own x402 402 challenge. Its payTo must equal this agent's walletAddress. | |
| inputSchema | No | Strongly recommended. Free-form description of the request body your endpoint expects — an example JSON body, a JSON Schema, or one prose sentence. | |
| outputSchema | No | Free-form description of what your endpoint returns. | |
| verificationBody | No | Relay registration only: schema-valid JSON sent once during the unpaid 402 ownership probe when the external gate validates input before returning 402. Not stored or used for buys. |