/api/datasets
Live datasets, most downloaded first.
- search
- match the title
- limit
- 1–100, default 50
- page
- page number
Developers
Read-only JSON over everything published here: datasets, models, skills, courses, guides, news and one search endpoint. No key, no sign-up, and nothing to agree to beyond each item's own licence.
curl https://glitchdata.com/api/courses?topic=generative-ai&limit=5
/api/datasets
Live datasets, most downloaded first.
/api/datasets/{namespace}/{name}
One dataset, with its card and every file link.
/api/models
Live models, most downloaded first.
/api/models/{namespace}/{name}
One model, with its card and every file link.
/api/skills
Live skills — instructions written for an agent.
/api/skills/{namespace}/{name}
One skill, with its full instructions as Markdown.
/api/courses
Published courses.
/api/courses/{slug}
One course with its lessons. Free preview lessons include their Markdown; the rest need enrolment.
/api/guides
Published guides.
/api/guides/{slug}
One guide, with its Markdown body.
/api/topics
Every topic, with how many courses and guides it holds.
/api/news
Published news posts, newest first.
/api/news/{slug}
One post, with its Markdown body and key takeaways.
/api/search
Titles matching a term, grouped by kind.
The API is open: everything it returns is public, and no key is needed to read any of it. A key identifies you, which raises your limit to your plan's and lets you see your own usage. Create one in Settings → API keys.
curl -H "Authorization: Bearer gd_your_key_here" https://glitchdata.com/api/datasets?limit=5
X-API-Key: gd_… works too. A key that is unknown or expired does
not fail the request — the response carries X-API-Key-Status and
you are served as an anonymous caller, so a script reading public data never breaks on a stale key.
| Plan | Requests a minute | Keyed by |
|---|---|---|
| Free | 120 | Your address, or your account with a key |
| Member | 600 | Your account |
| Team | 1,200 | Your account |
| Partner | 3,000 | Your account |
Keys are stored as a hash, shown once when created, and can be given an expiry. Revoking one takes effect immediately. If a key leaks, revoke it — we cannot read it back to you either.
Listings return data, total and
next — follow next until it is
null. A single item comes back as a bare object.
{
"data": [
{
"slug": "how-machine-learning-works",
"title": "How machine learning works",
"summary": "What a model actually learns from data…",
"topic": "ai-foundations",
"level": "beginner",
"lessons": 4,
"minutes": 56,
"free": true,
"provider": null,
"external_url": null,
"published_at": "2026-06-27T00:00:00+00:00",
"url": "https://glitchdata.com/courses/how-machine-learning-works"
}
],
"total": 33,
"next": "https://glitchdata.com/api/courses?page=2"
}
120 requests a minute without a key, more with one — see the table above. Cache what you fetch, and if you need more than a plan offers, tell us what you are building.
Every file link points at the publisher that hosts it, and each dataset carries its own licence —
check the license field before you redistribute anything.
Drafts, submissions awaiting review and the lessons that need enrolment are never returned, signed in or not.
sitemap.xml, the news and guide feeds, and schema.org JSON-LD on every dataset page.