Skip to main content
Pods are the individual data units published into datanets on Reppo. Each pod represents a piece of content (article, dataset, social post, PDF, or video) minted as an NFT on Base. The Platform API lets you create pod drafts, record on-chain mints, republish pods across datanets, and retrieve both your own pods and the public pod catalog. Authenticated endpoints require a valid privy-token cookie.

List my pods


Returns all pods created by the authenticated user. Auth: Privy cookie Response 200

Example


Create a pod draft


Creates a new pod draft. The pod is not on-chain until you call the mint endpoint with a valid transaction hash. Auth: Privy cookie

Request body

string
required
ID of the datanet this pod will be published into.
string
required
Display name of the pod. Between 3 and 50 characters.
string (uri)
required
Canonical URL of the content (e.g., the original article or social post).
string
required
Platform the content originates from (e.g., X, Substack, YouTube). Between 2 and 50 characters.
string
required
Category label for the content (e.g., AI Research, DeFi). Between 2 and 50 characters.
string (uri)
URL to the pod’s cover image. Optional.
string (uri)
URL to a thumbnail image. Optional.
string (uri)
URL to a PDF version of the content. Optional.
string (uri)
URL to a video version of the content. Optional.
string
required
Short description of the pod’s content. Between 10 and 200 characters.
boolean
required
Must be true. Confirms the publisher agrees to the Reppo terms of service.
Response 201

Example


Get one of my pods


Returns a single pod owned by the authenticated user, including moderation status and voting volumes. Auth: Privy cookie

Path parameters

string
required
The pod’s internal ID.
Response 200

Mint a pod


Records the on-chain mint of a pod draft. Submit this after the Base transaction has been confirmed. Auth: Privy cookie

Path parameters

string
required
The pod’s internal ID.

Request body

string
required
The pod’s internal ID (must match the path parameter).
string
required
Transaction hash of the on-chain mint.
Response 200

Example


Republish a pod


Records an on-chain republish of an existing pod into a new or the same datanet. Auth: Privy cookie

Path parameters

string
required
The pod’s internal ID.

Request body

string
required
The pod’s internal ID.
string
required
Transaction hash of the on-chain republish transaction.
Response 200

Get pods voted on during an epoch


Returns the list of pods the authenticated user voted on during the specified epoch. Auth: Privy cookie

Path parameters

integer
required
The epoch number to query.
Response 200

List public pods


Returns active public pods across all datanets. No authentication required. Supports pagination, search, and filtering by epoch and datanet.

Query parameters

integer
Page number. Minimum 1. Default 1.
integer
Results per page. Minimum 1. Default 10.
Free-text search against pod name and description.
integer
Filter pods active in a specific epoch number.
string
Filter pods by datanet ID.
Response 200

Example


Get a public pod by ID


Returns a single public pod by its internal ID, including creator info and cumulative vote volumes. No authentication required.

Path parameters

string
required
The pod’s internal ID.
Response 200

Example


Get public pod votes for an epoch


Returns all votes cast for a pod during a specific epoch. No authentication required.

Path parameters

string
required
The pod’s internal ID.
integer
required
The epoch number to query.
Response 200

UserPod schema

Returned by authenticated pod endpoints (/me/pods/*).
string
required
Internal pod ID.
string
required
Display name of the pod.
string
required
Short description of the pod’s content.
integer | null
On-chain NFT token ID. null until the pod is minted.
string
required
Internal ID of the datanet this pod belongs to.
string (uri)
required
Canonical URL of the original content.
string | null
URL to the pod’s cover image.
string | null
URL to the pod’s thumbnail image.
string
required
Current status (e.g., draft, active).
boolean
required
Whether this pod has been banned from the platform.
string | null
Reason for the ban, if applicable.
integer
required
The epoch through which this pod is considered valid for curation rewards.
number
required
Total weighted up-vote volume accumulated across all epochs.
number
required
Total weighted down-vote volume accumulated across all epochs.
string (date-time)
required
ISO 8601 timestamp of when the pod was created.
string (date-time)
required
ISO 8601 timestamp of the last update.

PublicPod schema

Returned by unauthenticated pod endpoints (/public/pods/*). Includes creator info and media URLs.
string
required
Internal pod ID.
string
required
Display name of the pod.
string
required
Short description of the pod’s content.
integer
required
On-chain NFT token ID.
string
required
Internal ID of the datanet this pod belongs to.
string (uri)
required
Canonical URL of the original content.
string | null
URL to the pod’s cover image.
string | null
URL to the pod’s thumbnail.
string | null
URL to a video version of the content.
string | null
URL to a PDF version of the content.
object
required
Object containing the creator’s id (string, required), username (string | null), and avatarUrl (string | null).
string (date-time)
required
ISO 8601 timestamp of when the pod was created.
string (date-time)
required
ISO 8601 timestamp of the last update.
integer
required
The epoch through which this pod is valid for curation rewards.
number
required
Total weighted up-vote volume.
number
required
Total weighted down-vote volume.