Datasette
Datasette site metadata as JSON
Datasette publishes SQLite databases as read-only JSON APIs. The project site exposes its own table-of-contents JSON at /content.json — a lightweight health check for the ecosystem.
GET https://datasette.io/content.json
{
"database": "content",
"private": false,
"path": "/content",
"size": 21413888,
"tables": [
{
"name": "assets",
"columns": [
"url",
"id"
],
"primary_keys": [
"id"
],
"count": 1612,
"hidden": false,
"fts_table": null,
"foreign_keys": {
"incoming": [],
"outgoing": [
{
"other_table": "releases",
"column": "release",
"other_column": "id"
},
{
"other_table": "users",
"column": "uploader",
"other_column": "id"
}
]
},
"private": false
},
{
"name": "blog_posts",
"columns": [
"path",
"year"
],
"primary_keys": [
"path"
],
"count": 6,
"hidden": false,
"fts_table": null,
"foreign_keys": {
"incoming": [],
"outgoing": []
},
"private": false
}
],
"hidden_count": 20,
"views": [
{
"name": "plugins",
"private": false
},
{
"name": "recent_releases",
"private": false
}
],
"queries": [
{
"title": "Datasette News and Blog",
"sql": "with feed_items as (\n select\n 'tag:datasette.io,' || date as atom_id,\n 'Datasette News: ' || date as atom_title,\n date || 'T00:00:00-08:00' as atom_updated,\n 'https://datasette.io/news/' || date as atom_link,\n render_markdown(group_concat(body, char(10) || char(10))) as atom_content_html,\n 'Simon Willison' as atom_author_name,\n 'https://simonwillison.net/' as atom_author_uri,\n date || 'T00:00:00' as sort_datetime\n from\n news\n group by\n date\n union all\n select\n 'tag:datasette.io,' || trim(path, '/') as atom_id,\n title as atom_title,\n replace(datetime_utc, ' ', 'T') || 'Z' as atom_updated,\n 'https://datasette.io' || path as atom_link,\n html as atom_content_html,\n author as atom_author_name,\n author_url as atom_author_uri,\n datetime_utc as sort_datetime\n from\n blog_posts\n)\nselect\n atom_id,\n atom_title,\n atom_updated,\n atom_link,\n atom_content_html,\n atom_author_name,\n atom_author_uri\nfrom\n feed_items\norder by\n sort_datetime desc\nlimit\n 20",
"name": "feed",
"private": false
}
]
}curl "https://datasette.io/content.json"const res = await fetch("https://datasette.io/content.json");
const data = await res.json();
console.log(data);import requests
res = requests.get("https://datasette.io/content.json")
print(res.json())/content.jsonPROBEDDatasette site metadata as JSON
/content.json?limit=5Paginated variant with limit parameter.
/<&Lt — documented GET route.
We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.
Stable. No schema drift observed since monitoring began — the response shape has not changed under our checks.
Datasette: common questions
Is Datasette free to use?
Yes — Datasette is a free open data API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.
Does Datasette need an API key?
No — Datasette needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).
Can I call Datasette from the browser?
Yes — Datasette returns CORS headers over HTTPS, so front-end code can fetch it directly with no backend proxy. Use the fetch snippet on this page, or hit "Run live" to try it now.
Is Datasette up right now?
As of our last scheduled check, Datasette is healthy with 100% uptime over 90 days and a 290 ms median response. We re-probe it every sweep — the status badge and uptime chart above always show the latest.