11 of them, which is every path the client calls. Grouped the way you would read them: your account, then the catalogue, then the files.
GET/v1/whoamiPlanned
Who you are
Returns the account behind the key, which tier it is on, and how much of today's allowance is left. This is the request to make when something has been refused and you want to know why.
Bearer token · Called by whoami
Example response
{
"tier": "starter",
"account": {
"id": "acc_8f2c1d",
"email": "you@example.com",
"name": "Your name"
},
"usage": {
"used": 12,
"limit": 50,
"remaining": 38,
"resets_at": "2026-09-07T00:00:00Z"
}
}
GET/v1/tiersPlanned
The tiers
Returns the 3 tiers and what each one includes. Public, because what you would be buying is not a secret.
No sign-in · Called by upgrade_info
Example response
{
"tiers": [
{ "slug": "starter", "name": "AI OS Starter" },
{ "slug": "pro", "name": "AI OS Pro" },
{ "slug": "max", "name": "AI OS Max" }
]
}
GET/v1/skillsPlanned
Search the catalogue
Searches the skills catalogue and returns what matches, with the tier each one needs. Metadata only. The files behind a skill are a separate request.
No sign-in · Called by skills_search
/v1/skills Parameters| Parameter | What it is |
|---|
| q | What you are looking for, in plain language. |
|---|
| limit | How many to return, 1 to 50. Defaults to 10. |
|---|
| cursor | Continue from where a previous page stopped. |
|---|
Example response
{
"skills": [
{
"slug": "newsletter-writer",
"name": "Newsletter writer",
"summary": "Drafts a newsletter in your voice from a rough outline.",
"required_tier": "starter",
"updated_at": "2026-08-20"
}
],
"next_cursor": null
}
GET/v1/skills/{slug}Planned
One skill
Returns everything about one skill except its files, so you can say what it would add before anything is written.
No sign-in · Called by skills_get
/v1/skills/{slug} Parameters| Parameter | What it is |
|---|
| slug | The skill's slug, from a search. |
|---|
GET/v1/skills/{slug}/filesPlanned
A skill's files
Returns the files that make up a skill, which is what an install actually writes. This is the request that checks your tier, and it refuses with the tier you would need rather than a bare no.
Bearer token · Called by skills_install
/v1/skills/{slug}/files Parameters| Parameter | What it is |
|---|
| slug | The skill's slug. |
|---|
Example response
{
"slug": "newsletter-writer",
"name": "Newsletter writer",
"files": [
{ "path": "SKILL.md", "contents": "---\nname: newsletter-writer\n..." }
]
}
GET/v1/blueprintsPlanned
The blueprints
Returns every writing guide and template: how to write a CLAUDE.md, an AGENTS.md, a voice file, and the rest.
No sign-in · Called by blueprint_list
/v1/blueprints Parameters| Parameter | What it is |
|---|
| kind | Narrow it to one subject, for example voice or writing. |
|---|
GET/v1/blueprints/{slug}Planned
One blueprint
Returns one blueprint in full: the method, a template and worked examples. This is what makes an agent write in your method rather than its own defaults.
Bearer token · Called by blueprint_get
/v1/blueprints/{slug} Parameters| Parameter | What it is |
|---|
| slug | Which blueprint. For example claude-md, voice or anti-slop. |
|---|
GET/v1/content/searchPlanned
Search the guides
Searches everything published on aios.guide and returns ranked excerpts with the page each came from. Public, so an agent can answer from what is written here rather than from memory.
No sign-in · Called by docs_search
/v1/content/search Parameters| Parameter | What it is |
|---|
| q | The question, in plain language. |
|---|
| limit | How many results, 1 to 20. Defaults to 5. |
|---|
Example response
{
"results": [
{
"slug": "context",
"title": "Context",
"excerpt": "A context file holds what your agent should already know...",
"url": "https://aios.guide/context"
}
]
}
GET/v1/content/{slug}Planned
One guide
Returns one page from aios.guide in full, as markdown. Markdown rather than HTML, because an agent asking for a page wants 4KB of text and not 200KB of markup.
No sign-in · Called by docs_get
/v1/content/{slug} Parameters| Parameter | What it is |
|---|
| slug | The page slug, from a search. |
|---|
GET/v1/audit/rulesPlanned
The audit rules
Returns the checks the audit runs. They live here rather than in the package for 2 reasons: the set improves without anybody reinstalling, and it is where a paid tier adds depth. Your files are never sent here. The rules travel to you and the reading happens on your machine.
Bearer token · Called by os_audit
Example response
{
"rules": [
{
"id": "secret-in-context",
"kind": "secret",
"severity": "critical",
"title": "A credential is sitting in a context file",
"next": "Move it into your password manager and rotate it."
}
]
}
GET/v1/releases/currentPlanned
The current release
Returns every file in the release for your tier, each with a hash. An update compares those hashes against what is on your disk and writes only what changed, which is how it can leave your own edits alone instead of overwriting them.
Bearer token · Called by os_update
Example response
{
"tier": "starter",
"version": "1.4.0",
"files": [
{ "path": "CLAUDE.md", "hash": "a1b2c3d4e5f6..." },
{ "path": "context/voice.md", "hash": "9f8e7d6c5b4a..." }
]
}