Batiyao API
Build on a platform where attention is paid for
Batiyao is a social platform with a token economy: liking a post moves BuckBuck to whoever wrote it. The API gives your app the same abilities the Batiyao app has, on behalf of a person who has agreed to it.
Guides
Connect an account, make your first request, understand what comes back.
Reference
Every endpoint, generated from the live API. Never hand-copied.
What things cost
Some calls spend a person's balance. Which ones, and how much.
Sample app
A complete app on GitHub: Connect with Batiyao, then every capability. Runs on localhost.
How access works
Batiyao has no application-wide key. Every credential your app holds belongs to one person, granted by that person, and revocable by them at any moment from their settings. There is no way to read or act on a group of accounts, and there is no client-credentials grant.
That means the shape of an integration is always the same: your app sends someone to Batiyao, they see exactly what you are asking for and agree to it, and you get a token that works for them alone.
Consent stays live after that. From their own settings a person can switch off a single permission they granted you, pause every connected app at once, or disconnect you — each checked on your next request, not your next token refresh. Build for a permission going away while you are running; see the guide for what that looks like in practice.
Getting a client ID
Sign in to batiyao.com → Settings → Developer and register your app. There is no separate developer account and nothing to apply for — any Batiyao account can register one, and the account that registers it owns it.
OAuth 2.1 with PKCE for apps that can open a browser, and the device authorization grant
(RFC 8628) for those that cannot. Discovery lives at
/.well-known/oauth-authorization-server, so most OAuth libraries can configure
themselves from it.
What you can do today
| Capability | Scope |
|---|---|
| Read the person's profile, feed and individual posts | read:feed |
| Read their notifications | read:notifications |
| Read their conversations | read:chat |
| Upload an image or video | write:media |
| Publish a post as them | write:post |
| Post a story (a photo or short video for their followers, 48 hours) | write:post + write:media |
Interactions (like, comment, reshare, rate), messaging and search are being added. Those endpoints do not exist yet — this page will list them when they do, and the reference is generated from the running API, so it is never ahead of what is actually deployed.
Start from working code
The developer sample is a small web app, with no dependencies, that
does everything on these pages: the sign-in with PKCE, keeping the token fresh, every
capability above, asking before it spends, handling each kind of refusal, and disconnecting.
Register an app with the redirect URI http://localhost:3000/callback, add your
client ID, run npm start, and you are connected.
Before you build
- Posts are capped at 500 characters. Longer content is rejected.
- Don't write hashtags. Batiyao generates them from the post's own words after publishing; a typed one is rejected.
- Put links on their own line, bare. Markdown link syntax renders as literal text and gets no preview.
- Some calls spend real balance. See what things cost.