Melora for developers and AI agents
Melora publishes a small, read-only public API and a set of machine-readable descriptions of itself. Everything on this page is unauthenticated, needs no key, and describes the product rather than any customer data.
Machine-readable files
- https://melora.app/llms.txt — the whole site described for a language model, in markdown, including when to reach for Melora and when not to.
- https://melora.app/agent.txt — agent instructions: best-fit jobs, the tools available, and the rules for calling them.
- https://melora.app/openapi.json — OpenAPI 3.1 description of the public API. Also served as YAML at /openapi.yaml.
- https://melora.app/mcp.json — the Model Context Protocol manifest. Also at /.well-known/mcp.json.
- https://melora.app/sitemap.xml — every indexable URL, both locales.
- https://melora.app/robots.txt — crawling rules, with AI citation and training agents named explicitly.
The public API
Four GET endpoints, no authentication, JSON only. They describe the plans and the published articles: the facts an assistant needs to answer a question about Melora without guessing. Nothing here reads, writes or exposes a customer gallery.
- GET /api/public/plans — every plan with its price in euro cents, storage cap in bytes, upload window in days, and capability flags.
- GET /api/public/posts — published articles, both locales, with excerpts and URLs.
- GET /api/public/posts/{slug} — one article, full body, as typed blocks and as markdown.
- GET /api/public/site — the page index: every public route, its URL in both locales, and its markdown URL.
curl -s https://melora.app/api/public/plans | jq '.plans[] | {id, priceEur: (.priceCents/100), storageBytes}'Errors
Every route under /api returns JSON on failure, never an HTML page. The body carries a machine-readable code, a human-readable message, a hint describing what to do about it, and a link to this page.
{
"error": "Event not found",
"code": "NOT_FOUND",
"hint": "Check the event code. Codes are 8 characters, letters and digits.",
"docs": "https://melora.app/en/developers"
}Markdown instead of HTML
Every public page on melora.app serves a markdown representation from the same URL, following the acceptmarkdown.com convention. Send Accept: text/markdown and you get markdown with Vary: Accept set; append .md to the path and you get markdown regardless of headers. A request that accepts neither HTML nor markdown gets 406 with the list of what is available.
curl -s -H "Accept: text/markdown" https://melora.app/en/pricing
curl -s https://melora.app/en/pricing.mdMCP server
Melora runs a Model Context Protocol server over Streamable HTTP at https://melora.app/api/mcp. It is read-only and unauthenticated, and exposes the same surface as the public API as four tools: list_plans, recommend_plan, list_articles and get_page. Point any MCP client at that URL; the manifest at /mcp.json describes it.
Limits and etiquette
- No key, no quota published. Be reasonable; sustained heavy polling will be rate-limited by IP at the edge.
- Plan and article data changes rarely. Cache for five minutes rather than fetching per question.
- Guest galleries under /e/ are private, hold other people's wedding photographs, and are noindex. Do not crawl, index or train on them.
- Questions, or a use case the API does not cover: [email protected].