Quickstart
From zero to your first authenticated API call and registered app.
Prerequisites
- A Feeef account — create one at accounts.feeef.org.
- Node.js 18+ (for the JavaScript SDK / CLI) or Dart 3.11+ (for the Dart SDK).
1. Get an access token
Every API call is authenticated with an opaque bearer token. The fastest way to get one for personal experimentation is the first-party sign-in endpoint:
curl -X POST https://api.feeef.org/v1/users/auth/signin \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "your-password"}'The response contains user and token; the token.token field is the bearer value:
{
"user": { "id": "...", "name": "...", "email": "you@example.com" },
"token": { "type": "bearer", "token": "oat_...", "abilities": ["*"], "expiresAt": "..." }
}First-party tokens carry ["*"] abilities (full access) and live for 90 days. For anything
user-facing or distributed, use OAuth instead so tokens carry only the scopes the
user consented to.
2. Make your first API call
curl https://api.feeef.org/v1/users/auth \
-H "Authorization: Bearer oat_..."3. Register your first app
Apps are OAuth clients — the identity your integration presents to users.
Create the app
Open the dashboard, sign in, and press New app. Pick:
- a name users will recognize on the consent screen,
- at least one redirect URI (exact match —
http://localhost:3000/oauth/callbackis fine for dev), - the scopes your integration needs (start with
authfor sign-in only), - the client type: confidential (server-side) or public with PKCE (SPA, mobile, CLI).
Save the credentials
The client secret is shown once. Store it in your secret manager. The client ID is public.
Run the OAuth flow
Send users to the authorize URL, then exchange the callback code for a token:
https://accounts.feeef.org/oauth/authorize
?client_id=YOUR_CLIENT_ID
&redirect_uri=http://localhost:3000/oauth/callback
&response_type=code
&scope=auth
&state=RANDOM_STATEFull walkthrough with PKCE, error handling and SDK helpers: Authorization code flow.
Where next
Authentication model
Tokens, abilities, sessions, sign-in methods and lifetimes.
API conventions
Pagination, filterator queries, batch operations, error shapes.
JavaScript SDK
Skip hand-rolled HTTP — typed repositories for every resource.
Build a theme
The storefront template system, from data model to marketplace.