uranashel developer portal

A public, read-only JSON API describing the uranashel studio, its five iOS and Android apps and every blog post. No sign-up, no API key, open CORS.

On this page

Quickstart

Three requests get you everything. The API is a set of static JSON documents served from the edge, so there is nothing to install and nothing to authenticate.

curl -s https://uranashel.com/api/v1/            # index of every endpoint
curl -s https://uranashel.com/api/v1/apps        # all five apps
curl -s https://uranashel.com/api/v1/apps/wheria # one app

Every response is wrapped in the same envelope: self (the canonical URL of the resource), meta (API version, docs link, item count) and data (the payload). Full schemas are in the API reference and the OpenAPI 3.1 description.

Authentication and API keys

There are none, by design. Everything the API exposes is already public on this website — app descriptions, store links, blog metadata, contact details. Adding a key would gate public information behind an account, so the API is open to anyone, from any origin.

Concretely:

If you need higher throughput than the documented budget, email uralab95@gmail.com rather than working around it.

Endpoints

Base URL: https://uranashel.com/api/v1

EndpointReturns
GET /Index of every endpoint, the rate-limit policy and the versioning policy
GET /studioStudio identity: name, tagline, location, contact, team size, counts
GET /teamThe three people who ship each release
GET /appsAll five apps with platforms, stack, status and store links
GET /apps/{appId}One app by slug — wheria, estua, phyzix, sonarish, stashio
GET /postsEvery blog post with excerpt, tags and Markdown URL
GET /posts/{slug}One post by slug
GET /statsThe homepage counters as structured values
GET /scienceThe seventeen disciplines behind the apps, each with its governing formula
GET /principlesThe product rules the studio holds itself to
GET /timelineDated studio milestones
GET /versionsAPI versions and their lifecycle state
GET /healthLiveness check
GET /openapi.jsonThe OpenAPI 3.1 description of everything above

Rate limits, caching, CORS and error shapes are documented in the API reference.

Command-line tool

uranashel is a zero-dependency Node CLI over the same API. It needs Node 18 or newer and nothing else.

npx uranashel apps                # table of every app
npx uranashel app wheria          # one app in detail
npx uranashel posts --limit 5     # recent writing
npx uranashel post why-gps-lies   # full article as Markdown
npx uranashel studio --json       # raw JSON for piping into jq
npx uranashel open wheria         # open the app page in a browser

Add --json to any command for the unformatted response, and --base <url> to point at a different origin. Source lives in the GitHub organisation.

Markdown instead of HTML

Every page on this site has a Markdown mirror at the same path with a .md extension, and the site honours Accept-header negotiation for it.

curl -sH "Accept: text/markdown" https://uranashel.com/   # -> text/markdown
curl -s https://uranashel.com/index.md                    # the same document
curl -s https://uranashel.com/blog/why-gps-lies.md        # full article text

Responses that can vary this way send Vary: Accept, Accept-Encoding, so a shared cache never hands an agent the HTML variant by mistake. Each HTML page also advertises its mirror with <link rel="alternate" type="text/markdown">.

For AI agents

Two files exist specifically for you:

If you want the entire corpus in one fetch rather than crawling, use llms-full.txt. A 404 on this domain returns a real 404 status with a short Markdown body listing these entry points, so a wrong guess still tells you where to go.

Every machine-readable file

URLWhat it is
/api/v1/API index
/openapi.jsonOpenAPI 3.1 description
/llms.txtStructured site index for language models
/llms-full.txtWhole site as one Markdown document
/agent-instructions.mdWhen to use uranashel, and how
/sitemap.xmlEvery indexable URL with last-modified dates
/robots.txtCrawl policy — everything allowed
/.well-known/security.txtVulnerability reporting contact (RFC 9116)
/humans.txtWho built this

Sandbox

There is no separate sandbox environment, and you do not need one: the API is read-only and unauthenticated, so production is the sandbox. Nothing you can send will create, modify or delete anything.

To develop against a local copy, clone the site and serve the repository root with any static file server — the API is just files on disk under api/v1/. Then point the CLI at it:

npx uranashel apps --base http://localhost:8000

Versioning and deprecation

The version lives in the URL path. v1 is current and nothing is deprecated. When a version is retired you get at least 180 days of notice, announced through Deprecation and Sunset response headers, a Link header pointing at the policy, and a status change on /api/v1/versions.

Full detail: versioning and deprecation policy.

Support

Email uralab95@gmail.com. We answer in English or Vietnamese. Content returned by the API is published under CC BY 4.0 — attribute to uranashel with a link to uranashel.com.