Markdown for Agents
Every item page, creator page, and key site page on RBX Invest is also published as a Markdown document, so an automated reader can get the figures without parsing the HTML application shell.
There is no key, no registration, and no rate-limit tier. The data is aggregated public Roblox data: RAP, lowest reseller price, quantities, ownership counts, and creator catalog rollups. RBX Invest is independent and has no affiliation with Roblox Corporation.
MCP server
For an agent that speaks the Model Context Protocol, the same data is
available as tools rather than documents, at
https://rbxinvest.com/mcp. No key, no registration, and
nothing to install — it is a remote server over Streamable HTTP.
# Claude Desktop / any MCP client: add a remote server
https://rbxinvest.com/mcp
# or drive it directly
curl -X POST https://rbxinvest.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
| Tool | Answers |
|---|---|
search_items | Search the Limited catalog by name, or rank the whole market by RAP, score, growth, volume or stock left. |
get_item_details | One item in depth: RAP and how it has moved, lowest resale listing, stock, creator, score. |
find_deals | Limiteds currently listed below RAP, with the discount and the saving. |
get_new_limiteds | Recent UGC Limited releases, with demand level and predicted profit. |
get_creator | A creator’s track record and biggest items. |
The server is stateless and read-only, and answers both the current
protocol revision (2026-07-28, which carries version and identity as
per-request metadata and implements server/discover) and
the older initialize handshake revisions back to
2025-03-26, which is what most clients still send. It serves the same
public data as the Markdown documents below — no portfolio, no
account data, and no way to write anything.
WebMCP, in the browser
Every page of the site also registers its tools on
navigator.modelContext
as it loads, for an agent that lives in the visitor’s browser
rather than on a server: the twelve MCP tools above (executed against
/mcp), plus get_current_page,
search_site, open_item,
open_creator, open_player,
open_article and open_page, which read or
navigate the page the visitor is looking at. Where the browser provides
no modelContext, the page installs a minimal one, so
navigator.modelContext.getTools() lists them anywhere.
A2A agent
The same twelve tools are also an Agent2Agent
agent at https://rbxinvest.com/a2a (JSON-RPC binding,
protocol version 1.0), described by the Agent Card at
/.well-known/agent-card.json.
Each tool is a skill with the same id and the same arguments as the MCP
tool above. There is no language model behind this endpoint: a message
names the skill and its arguments in a data part, and the task comes
back completed inside the same call with the result as a JSON artifact.
A plain-text message is treated as a search_items query.
The argument names and JSON Schemas are the MCP ones: a tools/list
call to /mcp returns every skill's schema, and the card's per-skill
examples show the common arguments.
No streaming, no push notifications, and no task survives its call, so
GetTask answers TaskNotFound.
curl -X POST https://rbxinvest.com/a2a -H 'Content-Type: application/json' -H 'A2A-Version: 1.0' -d '{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{
"messageId":"m1","role":"ROLE_USER",
"parts":[{"data":{"skill":"find_deals","arguments":{"limit":5}}}]}}}'
Two ways to ask for Markdown
Both return the same document.
# 1. append .md to the path
curl https://rbxinvest.com/item/1365767.md
# 2. send an Accept header
curl -H 'Accept: text/markdown' https://rbxinvest.com/item/1365767
Header negotiation works on /item/:assetId and
/creator/:creatorId, which are generated per request. The
fixed site pages are written at build time, so for those you need the
.md path.
Endpoints
| Path | Returns |
|---|---|
/item/:assetId.md |
One Roblox Limited: RAP, lowest resale price, total quantity, copies remaining, favourites, creator, collection membership, and links to related items. |
/creator/:creatorId.md |
One creator: catalog value, item count, and the tracked Limiteds they made. A creator whose Roblox account is gone keeps its page, with a deletion notice. |
/player/:userId.md |
One public portfolio: value at RAP, copies, unique items, growth, leaderboard rank, and the most valuable holdings. |
/articles/:slug.md |
One article: title, description, category, tags, author and dates in the front matter, then the full body as Markdown. |
/index.md |
The home page. Fixed pages use their own slug, for example /items-leaderboard.md or /about.md. |
/llms.txt |
A site index in the llmstxt.org format: what the platform is, the vocabulary it uses, and a map of key pages and articles. |
/llms-full.txt |
Every key page and every article as Markdown, concatenated into one document. |
/feed.xml |
RSS 2.0 of the latest articles, full text, newest first. |
Fixed pages with a Markdown twin: /index.md,
/about.md, /membership.md,
/items-leaderboard.md, /players-leaderboard.md,
/creators-leaderboard.md, /community-favorites.md,
/search.md, /resell.md, /deals.md,
/new-ugc-limiteds.md, /articles.md,
/terms.md and /privacy.md. Collection pages
are HTML only. Every HTML page that has a twin names it in a
<link rel="alternate" type="text/markdown"> tag.
What a document looks like
Each one opens with a YAML front matter block of machine-readable figures, then prose, then link lists into sibling items, price neighbours, and the collections the item belongs to. Those links are what make the catalog walkable: an agent that lands on any item can reach the rest of it without a search index.
Response headers
| Header | Meaning |
|---|---|
x-markdown-tokens | Estimated token count of the body, so you can budget context before spending it. Send a HEAD request to read it without downloading the document. |
vary: Accept | The same URL can answer with HTML or with Markdown. |
x-robots-tag: noindex | These documents duplicate pages that are already indexed. The tag is aimed at search crawlers, not at you. Fetching them is the intended use. |
cache-control | public, max-age=900 on generated documents. |
Errors
An id that names no tracked item or creator returns 404
with a plain-text body rather than a Markdown one, so an error can never
be mistaken for a document. One thing to watch: a .md path
that has no twin falls through to the single-page-app and answers
200 with HTML. Check that the content type is
text/markdown before treating a body as a document.
Discovery
- /.well-known/api-catalog: the RFC 9727 catalog, which points at everything below.
- /mcp: the MCP server, for agents that would rather call tools than read documents.
- WebMCP: the same tools registered on
navigator.modelContextby every page, for agents running inside the visitor’s browser. - /.well-known/agent-card.json: the A2A Agent Card, describing the /a2a agent and its twelve skills.
- /.well-known/mcp/server-card.json: the MCP Server Card (SEP-2127), the server’s identity, endpoint and protocol revisions for a client deciding whether to connect. /.well-known/ai-catalog.json is the AI Catalog that lists it.
- /.well-known/agent-skills/index.json: the Agent Skills Discovery index, two SKILL.md documents (using the MCP server, and reading these Markdown pages) with SHA-256 digests.
- /openapi.json: the OpenAPI 3.1 description of these endpoints.
- /llms.txt: the site index for language models.
- /robots.txt: crawl policy and the full sitemap list. AI crawlers are allowed, and the content signals permit search indexing, retrieval at answer time, and training.
Scope
This is a read surface for published analytics. RBX Invest does not execute trades, list items, or reprice anything on your behalf, and there is no write endpoint. Portfolio data for a signed-in account is not part of it: only pages that are already public are served here, and a player who hides their portfolio is hidden from this too.