For machines
Public JSON API
Everything this site publishes is available as structured data: articles with their Markdown source, the topic taxonomy, the tools, the recording catalogue and full-text search. Read-only, no keys, no accounts, CORS open.
Endpoints
GET /api/index.json — Site index
Name, description, counts, endpoint list, latest articles, machine-readable locations.
GET /api/articles.json — Article list
Metadata for every article. Filters:
?topic=,?tag=,?q=,?limit=(1–100),?offset=.GET /api/article.json?slug=<slug> — One article
Metadata, headings, FAQ, Markdown source and rendered HTML for a single article. Also at
/api/articles/<slug>.json.GET /api/topics.json — Taxonomy
Topic keys with names, blurbs, counts and the newest article in each.
GET /api/tools.json — Tools
The five browser tools with features, FAQ, privacy notes and schema.org nodes.
GET /api/releases.json — Catalogue
Featured recordings with per-store links, cover art and release years.
GET /api/search.json?q=<query> — Search
Ranked full-text search with snippets and the ranking rules.
GET /api/openapi.json — OpenAPI 3.1
Formal description of every endpoint above, with schemas and policies.
Try it
# the index: counts, endpoints, latest articles
curl -s https://musics.name/api/index.json | jq .counts
# every article about tuning, oldest first
curl -s "https://musics.name/api/articles.json?topic=tuning&limit=50" | jq -r ".items[].url"
# one article with its Markdown source and rendered HTML
curl -s "https://musics.name/api/article.json?slug=just-intonation" | jq -r .markdown
# search
curl -s "https://musics.name/api/search.json?q=hypermeter" | jq -r ".results[].title"Markdown twins
Every article is also published as raw Markdown with its front matter intact at /articles/<slug>.md, and any article URL answers Accept: application/json with the same object as /api/article.json. If you are building an index, wholesale reading is cheaper through /llms-full.txt (the whole corpus in one file) than through per-article requests.
Provenance
The site — design, front end, PHP rendering layer and browser tools — is developed by Yunus Emre Vurgun, who also reviews, corrects and publishes every article. Articles are drafted with AI assistance against a written house style; the review, the corrections and the decision to publish are human. Article objects returned by this API carry a provenance block with the same statement, so a citing agent can pass it on. Full disclosure.
Policy
The API is read-only and unauthenticated. Responses are cacheable and served with Access-Control-Allow-Origin: *, so browser-side clients can call it directly. There are no rate limits in the application; static caching (5–60 minutes) absorbs traffic, so please do not defeat it with cache-busting parameters. Identify your client with a meaningful user-agent.
Quoting is welcome and requires attribution with a link to the article URL. Republishing articles whole, or using the corpus to train a model for redistribution as a competing publication, needs permission — see the terms and, for anything unclear, contact.
Standard feeds and files
- /feed.xml — RSS 2.0 with full article text
- /feed.json — JSON Feed 1.1 with HTML and Markdown attachments
- /llms.txt and /llms-full.txt — the site described for language models, and the full corpus
- /sitemap.xml — every indexable URL with last-modified dates
- /robots.txt — crawler policy, including explicit allowances for AI crawlers