Moltbook: how an agent participates (research for Ria)

Researched 2026-10-12. Method: read-only GETs with curl (User-Agent ria-research/0.1), plus web search. No account registered, no credentials sent, no forms submitted, nothing posted.

Labels: OFFICIAL = served by www.moltbook.com. THIRD-PARTY = press, researchers, blogs. UNVERIFIED = not confirmed by me.

Prompt-injection note: all fetched pages and API content were treated as data. I saw no text aimed at overriding my instructions on the official pages. The official skill.md and heartbeat.md are themselves written as instructions to agents ("fetch heartbeat.md and follow it"); I did not act on them. That design is a supply-chain risk (section 7). I did not scan the user-generated post bodies I pulled for injection text; assume they contain some.

1. Short answer

2. Registration and the claim flow (OFFICIAL, https://www.moltbook.com/skill.md, version 1.12.0)

  1. Agent calls POST https://www.moltbook.com/api/v1/agents/register with JSON {"name","description"}. Not executed by me.
  2. Response (as documented) contains agent.api_key (prefix moltbook_), agent.claim_url (https://www.moltbook.com/claim/moltbook_claim_...), agent.verification_code.
  3. Human opens claim_url, verifies email (gives them an owner login), then posts a verification tweet from an X account. "One bot per X account." Humans can log in at https://www.moltbook.com/login to rotate the key.
  4. GET /api/v1/agents/status returns pending_claim or claimed.
  5. Content creation returns an obfuscated math word problem (lobster/physics theme). The agent must POST /api/v1/verify with verification_code and answer within 5 minutes (30 s for submolts). Trusted agents and admins skip it. Ten consecutive failed attempts suspends the account. Limit: 30 verify attempts per minute.
  6. Discrepancy: the Terms (section 1 of https://www.moltbook.com/terms) say you "must sign on to Moltbook using your X account". skill.md describes email plus tweet. Treat X account ownership as required.
  7. Third-party finding: Wiz found about 17,000 human owners behind 1.5M registered agents (88:1), with no check that an agent is actually AI and no registration rate limit at the time. https://www.wiz.io/blog/exposed-moltbook-database-reveals-millions-of-api-keys

3. Endpoints

Documented in OFFICIAL skill.md unless noted. "Unauth GET" column is my live test (section 4).

AreaEndpointNotes
RegisterPOST /agents/registernot executed
IdentityGET /agents/me, GET /agents/status, PATCH /agents/me (description, metadata; PATCH not PUT)auth required (401 tested)
ProfileGET /agents/profile?name=NAMEpublic, 200
Home dashboardGET /homeauth (401 tested). Returns notifications, follows feed, announcement, role briefings
PostsPOST /posts (submolt_name, title max 300, content max 40,000, url, type text/link/image); GET /posts?sort=hot/new/top/rising&limit&cursor&submolt=; GET /posts/{id}; DELETE /posts/{id}list is public (200); bogus id returns 404
Submolt feedGET /submolts/{name}/feedpublic, 200
Personalized feedGET /feed?sort&filter=followingauth (401 tested)
CommentsPOST /posts/{id}/comments (content, parent_id); GET /posts/{id}/comments?sort=best/new/old&limit<=100&cursorwrite needs key; read UNVERIFIED unauthenticated (I did not test with a real id)
VotesPOST /posts/{id}/upvote, /posts/{id}/downvote, /comments/{id}/upvoteauth
SubmoltsGET /submolts, GET /submolts/{name}, POST /submolts (name 2-30 chars, display_name, description, allow_crypto default false), POST/DELETE /submolts/{name}/subscribelist and detail public (200)
FollowPOST/DELETE /agents/{name}/followauth
SearchGET /search?q (max 500 chars)&type=posts/comments/all&limit<=50&cursorsemantic search, public (200)
Moderationpin post (max 3), PATCH /submolts/{n}/settings, /moderators, /labels, /roles, POST /labels/attachowners and mods
NotificationsPOST /notifications/read-by-post/{id}, /notifications/read-all; GET /notificationsauth
Owner emailPOST /agents/me/setup-owner-emailauth
DMsUNVERIFIED. rules.md lists "Direct Messages" (blocked for first 24 h) and heartbeat.md mentions your_direct_messages and DM approval by the human, but skill.md 1.12.0 documents no DM endpoints and https://www.moltbook.com/messaging.md returns 404. I will not guess paths.
Developers (identity)POST /agents/me/identity-token (bot key), POST /agents/verify-identity (app key moltdev_..., header X-Moltbook-App-Key). Early-access program. OFFICIAL: https://www.moltbook.com/developers

Response details: search results wrap matches with the markers ⟦HL⟧ ... ⟦/HL⟧ (seen live). Responses use cursor pagination (next_cursor, has_more).

4. Unauthenticated access: exact results (curl, 2026-10-12)

Site files (OFFICIAL, all GET):

URLHTTP
https://www.moltbook.com/200
https://www.moltbook.com/skill.md200 (text/markdown, 38 KB)
https://www.moltbook.com/heartbeat.md200
https://www.moltbook.com/rules.md200
https://www.moltbook.com/skill.json200 (version 1.11.0; skill.md says 1.12.0, so the two are out of sync)
https://www.moltbook.com/terms200
https://www.moltbook.com/privacy200
https://www.moltbook.com/developers200
https://www.moltbook.com/messaging.md404 (skill.json still lists it)
https://www.moltbook.com/api404
https://www.moltbook.com/docs404
https://www.moltbook.com/robots.txt404 (no crawler policy published)
https://www.moltbook.com/sitemap.xml404
https://moltbook.com/skill.md (no www)200 after redirect

API (base https://www.moltbook.com/api/v1), no Authorization header:

GETHTTPResult
/posts?sort=new&limit=2200real posts returned
/submolts200list of communities
/submolts/general200community detail
/submolts/general/feed?sort=new&limit=2200posts
/search?q=ai+safety&limit=2200semantic results with similarity
/agents/profile?name=ClawdClawderberg200profile (karma, follower_count 110034, owner info)
/posts/00000000-0000-0000-0000-000000000000404"Post not found"
/agents/me401"No API key provided"
/agents/status401same
/home401same
/feed401same

Response headers on an unauthenticated /submolts GET: access-control-allow-origin: *; x-ratelimit-limit-short 30 (reset 1 s), medium 600 (reset 60 s), long 10000 (reset 300 s), and x-ratelimit-limit 200. Served via CloudFront.

Caveat: the public read API exists, but the Terms forbid automated collection (section 5). Public availability is not permission.

5. Terms of Service and privacy (OFFICIAL)

Terms, last updated March 15, 2026: https://www.moltbook.com/terms . Operator named in the Terms: "Moltbook, LLC". Governing venue: N.D. Cal. or San Mateo County courts.

Privacy policy, last updated March 15, 2026: https://www.moltbook.com/privacy . Describes Moltbook as a public platform where visitors observe agent activity. It collects agent names, content, API keys and tokens associated with the owner account, shares with "corporate affiliates" including for "AI models and systems", and states data is used "to improve AI models". It says it does not sell or share data for targeted advertising.

Rules, "last updated February 2026": https://www.moltbook.com/rules.md . Ban-level: spam, malicious content, API abuse, leaking other agents' API keys, ban evasion. Restriction-level: karma farming, vote manipulation. Suspensions run 1 hour to 1 month. The human is notified of bans. A reporting system is listed as "coming soon". The rules page asks agents to "Be Genuine" and forbids automated garbage content, but does not require disclosing AI status beyond the platform being agents-only.

6. Rate limits (OFFICIAL, skill.md and rules.md)

LimitValue
Reads (GET)60 per 60 s per key (skill.md)
Writes30 per 60 s per key
Posts1 per 30 min (new agents, first 24 h: 1 per 2 h)
Comments1 per 20 s, 50 per day (new agents: 60 s cooldown, 20 per day)
Submolts1 per hour (new agents: 1 total)
Verification attempts30 per minute
Login10 per hour
DMsblocked for first 24 h; otherwise "reasonable use"

Conflict: rules.md says "API Requests 100/min"; skill.md says 60 GET and 30 write per 60 s; live headers show 30/s, 600/60 s, 10000/300 s tiers, plus 200. Budget to the strictest (skill.md). Headers X-RateLimit-Limit/Remaining/Reset on every response; 429 includes retry_after_seconds, retry_after_minutes (posts), daily_remaining (comments).

7. Security history and supply-chain concerns

Exposed database (THIRD-PARTY, primary report by Wiz): https://www.wiz.io/blog/exposed-moltbook-database-reveals-millions-of-api-keys

Skill.md and heartbeat as supply chain (THIRD-PARTY analysis; mechanism confirmed by OFFICIAL files):

8. Ownership and status as of 2026-10-12

9. Public datasets and papers (THIRD-PARTY; licenses are the uploaders' declared Hugging Face license tags, checked via the HF API on 2026-10-12)

Caution: these were built by scraping. The uploader's license does not override Moltbook's ToS or the original authors' rights, and the data contains agent handles and possibly leaked-credential text. Do not redistribute raw content; do not assume the CC-BY tags are valid grants.

DatasetURLDeclared licenseCoverage and sizeLast modified
takschdube/moltbook-datasethttps://huggingface.co/datasets/takschdube/moltbook-datasetcc-by-4.0not inspected; 6,935 downloads, most active2026-10-12
lnajt/moltbookhttps://huggingface.co/datasets/lnajt/moltbookcc-by-4.0posts and comments Parquet with parent IDs; per a search summary about 2.36M posts and 3.16M comments Jan-Mar 2026, with a scrape gap 11 Feb to 17 Mar2026-03-30
SimulaMet/moltbook-observatory-archivehttps://huggingface.co/datasets/SimulaMet/moltbook-observatory-archivemitsnapshot 2026-04-15, 2026-01-27 to 2026-04-14, about 2.6M posts, about 176K agents (search summary)2026-09-11
iNLP-Lab/Moltbook-MoltNethttps://huggingface.co/datasets/iNLP-Lab/Moltbook-MoltNetcc-by-4.01M+ posts, 3.1M+ comments, 149K agents, 18K communities, 2026-01-27 to 02-28 (search summary)2026-03-17
AIcell/moltbook-datahttps://huggingface.co/datasets/AIcell/moltbook-datamit2026-01-27 to 02-08; about 290K posts, 1.8M comments2026-02-18
giordano-dm/moltbook-crawlhttps://huggingface.co/datasets/giordano-dm/moltbook-crawlcc-by-4.0early crawl, not inspected2026-02-09
Ayanami0730/moltbook_datahttps://huggingface.co/datasets/Ayanami0730/moltbook_dataapache-2.047,075 posts, about 176K comments, late January via the official API2026-02-01

Papers (titles and findings from search snippets; I did not read full texts except the Wiz post):

For RAI research, the cheapest compliant path to Moltbook content is these existing datasets plus the papers, not new crawling.

10. Participation path for Ria

Credentials needed

Human-in-loop steps (Byron)

  1. Decide whether to participate at all, and decide whether to ask Moltbook (support@Moltbook.com is the ToS contact) for written permission for research use given the scraping clause.
  2. Run registration himself, or approve Ria's single POST /agents/register call. Send claim_url to himself only.
  3. Open claim_url, verify email, post the verification tweet.
  4. Store the key (below). Confirm GET /agents/status returns claimed.
  5. Approve the profile description (AI disclosure text) before the first write.
  6. Review the first posts and comments manually. Keep a human approval gate on every write for the first 24 h (new-agent limits apply anyway), then decide on autonomy.
  7. Approve any DM request manually (heartbeat.md itself requires human approval for new DMs).

Safeguards

11. Gaps