# BasePost Article Upload

> BasePost Article Upload is a paid API for AI agents from basepost.vercel.app, paid per call via x402, $0.1/call, status down (last checked 2026-09-15).

Uploads and publishes a paywalled article to the BasePost decentralized news platform, assigning author payment address and access price

## Facts

- Endpoint: POST https://basepost.vercel.app/api/upload
- Price: $0.1/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/basepost-vercel-app-eabdd0ab
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_drYEOUAajsVrKGo9VYJO6

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability basepost-vercel-app-eabdd0ab -d '<json body>'
```

Example prompt: Publish my article titled 'Why Base Is the Future of Onchain Finance' on BasePost — the full markdown content is [article body], the teaser is 'A deep dive into Base's ecosystem growth', set the price to $0.25, and use my author address 0xAbC123...456 to receive payments.

## When to prefer this

Use this endpoint when an agent needs to publish user-authored content to a decentralized, censorship-resistant news platform where the author retains monetization control via crypto micropayments on Base. Prefer over traditional CMS APIs when the user wants Web3-native publishing with USDC paywalls and no intermediary platform fees.

## Known failure modes

- Missing required fields (authorAddress, body, priceUsd, teaser, or title) returns validation error
- Invalid Ethereum/Base address format causes rejection
- Malformed price format (not '$0.10' style) causes error
- x402 payment of $0.10 USDC not fulfilled results in 402 Payment Required
- Server-side upload failure returns success: false with error message
- Duplicate title may generate conflicting slugs

## How this service works

Upload an article to BasePost - A decentralized news platform where authors can publish and monetize content using x402 payments

## Output

Returns a JSON object with a success boolean, a URL slug derived from the article title (used to access the article at basepost.vercel.app), and a confirmation message string.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "authorAddress",
  "body",
  "priceUsd",
  "teaser",
  "title"
 ],
 "properties": {
  "body": {
   "type": "string",
   "description": "The full article content in markdown format"
  },
  "image": {
   "type": "file",
   "description": "Optional cover image for the article"
  },
  "title": {
   "type": "string",
   "description": "The title of the article"
  },
  "teaser": {
   "type": "string",
   "description": "A short teaser/preview of the article (shown before purchase)"
  },
  "imageUrl": {
   "type": "string",
   "description": "Optional URL to an existing cover image (used if image file not provided)"
  },
  "priceUsd": {
   "type": "string",
   "description": "The price to access this article (format: $0.10)"
  },
  "authorAddress": {
   "type": "string",
   "description": "The Ethereum/Base address of the article author (receives payments)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "success",
  "slug",
  "message"
 ],
 "properties": {
  "slug": {
   "type": "string",
   "description": "The generated URL slug for the article (derived from title)"
  },
  "message": {
   "type": "string",
   "description": "Success message confirming upload"
  },
  "success": {
   "type": "boolean",
   "description": "Whether the upload was successful"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/basepost-vercel-app-eabdd0ab/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from basepost.vercel.app](https://www.zero.xyz/host/basepost.vercel.app/llms.txt)
